Skip to content

Commit 847992d

Browse files
authored
Add component file name style (#44)
* Add component, file name style * Apply prettier * Remove 'Do'
1 parent dad00cc commit 847992d

File tree

1 file changed

+70
-57
lines changed

1 file changed

+70
-57
lines changed

web/README.md

+70-57
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Banksalad Web Style Guide
22

3-
Banksalad 웹팀 구성원을 위한 전반적인 코드 스타일 가이드입니다.
4-
JavaScript 코드 작성 규칙과 네이밍 규칙, 파일 import 규칙 등을 포함하고 있습니다.
3+
Banksalad 웹팀 구성원을 위한 전반적인 코드 스타일 가이드입니다.
4+
JavaScript 코드 작성 규칙과 네이밍 규칙, 파일 import 규칙 등을 포함하고 있습니다.
55

66

77
## 규칙 정의
@@ -12,50 +12,53 @@ JavaScript 코드 작성 규칙과 네이밍 규칙, 파일 import 규칙 등을
1212

1313

1414
## 목차
15-
- [General Rules](#general-rules)
16-
- [Files should end with a trailing newline](#files-should-end-with-a-trailing-newline)
17-
- [No Empty File](#no-empty-file)
18-
- [Indentation](#indentation)
19-
- [Single quotes](#single-quotes)
20-
- [JavaScript Rules](#javascript-rules)
21-
- [Trailing commas](#trailing-commas)
22-
- [Line length 100](#line-length-100)
23-
- [No multiple empty lines](#no-multiple-empty-lines)
24-
- [Line break](#line-break)
25-
- [Conditional statements](#conditional-statements)
26-
- [If-else](#if-else)
27-
- [Ternary operator](#ternary-operator)
28-
- [Array & Object](#array-&-Object)
29-
- [Arrays bracket newline](#arrays-bracket-newline)
30-
- [Function Parameters](#function-parameters)
31-
- [Semicolon](#semicolon)
32-
- [Padding lines between statements](#padding-lines-between-statements)
33-
- [Comma spacing](#comma-spacing)
34-
- [Object curly spacing](#object-curly-spacing)
35-
- [Spacing around infix operators](#spacing-around-infix-operators)
36-
- [Function declaration](#function-declaration)
37-
- [React Rules](#react-rules)
38-
- [Whitespace in and around the JSX opening and closing brackets](#whitespace-in-and-around-the-jsx-opening-and-closing-brackets)
39-
- [CSS Rules](#css-rules)
40-
- [CSS Shorthand](#css-shorthand)
41-
- [CSS Sort](#css-sort)
42-
- [Naming Rules](#naming-rules)
43-
- [Variables](#variables)
44-
- [Name attribute](#name-attribute)
45-
- [Id](#id)
46-
- [Class Name](#class-name)
47-
- [Constants](#constants)
48-
- [Enum](#enum)
49-
- [Interface](#interface)
50-
- [Folder/File Name](#folderfile-name)
51-
- [Url path](#url-path)
52-
- [Abbreviation](#abbreviation)
53-
- [File Import Rules](#file-import-rules)
54-
- [Absolute path import](#absolute-path-import)
55-
- [Newline after import](#newline-after-import)
56-
- [Import order](#import-order)
57-
- [Style import](#style-import)
58-
- [Image import](#image-import)
15+
- [Banksalad Web Style Guide](#banksalad-web-style-guide)
16+
- [규칙 정의](#규칙-정의)
17+
- [목차](#목차)
18+
- [General Rules](#general-rules)
19+
- [Files should end with a trailing newline](#files-should-end-with-a-trailing-newline)
20+
- [No Empty File](#no-empty-file)
21+
- [Indentation](#indentation)
22+
- [Single quotes](#single-quotes)
23+
- [JavaScript Rules](#javascript-rules)
24+
- [Trailing commas](#trailing-commas)
25+
- [Line length 100](#line-length-100)
26+
- [No multiple empty lines](#no-multiple-empty-lines)
27+
- [Line break](#line-break)
28+
- [Conditional statements](#conditional-statements)
29+
- [If-else](#if-else)
30+
- [Ternary operator](#ternary-operator)
31+
- [Array & Object](#array--object)
32+
- [Arrays Bracket Newline](#arrays-bracket-newline)
33+
- [Function Parameters](#function-parameters)
34+
- [Semicolon](#semicolon)
35+
- [Padding lines between statements](#padding-lines-between-statements)
36+
- [Comma spacing](#comma-spacing)
37+
- [Object curly spacing](#object-curly-spacing)
38+
- [Spacing around infix operators](#spacing-around-infix-operators)
39+
- [Function declaration](#function-declaration)
40+
- [React Rules](#react-rules)
41+
- [Whitespace in and around the JSX opening and closing brackets](#whitespace-in-and-around-the-jsx-opening-and-closing-brackets)
42+
- [CSS Rules](#css-rules)
43+
- [CSS Shorthand](#css-shorthand)
44+
- [CSS Sort](#css-sort)
45+
- [Naming Rules](#naming-rules)
46+
- [Variables](#variables)
47+
- [Name attribute](#name-attribute)
48+
- [Id](#id)
49+
- [Class Name](#class-name)
50+
- [Constants](#constants)
51+
- [Enum](#enum)
52+
- [Interface](#interface)
53+
- [Folder/File Name](#folderfile-name)
54+
- [Url path](#url-path)
55+
- [Abbreviation](#abbreviation)
56+
- [File Import Rules](#file-import-rules)
57+
- [Import order](#import-order)
58+
- [Newline after import](#newline-after-import)
59+
- [Absolute path import](#absolute-path-import)
60+
- [Style import](#style-import)
61+
- [Image import](#image-import)
5962

6063
----------------------
6164

@@ -107,7 +110,7 @@ function foo() {
107110

108111
### Single quotes
109112

110-
모든 경우에 single quotation(')을 사용한다. backtick(`)은 [Template literal](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Template_literals)을 사용하는 경우에만 허용된다.
113+
모든 경우에 single quotation(')을 사용한다. backtick(`)은 [Template literal](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Template_literals)을 사용하는 경우에만 허용된다.
111114

112115
```javascript
113116
// bad
@@ -197,7 +200,7 @@ var arr = [
197200

198201
### Line length 100
199202

200-
코드는 주석을 포함하여 한 줄 당 최대 100자 이하로 작성한다. (url은 제외한다.)
203+
코드는 주석을 포함하여 한 줄 당 최대 100자 이하로 작성한다. (url은 제외한다.)
201204
너무 긴 변수명과 함수명을 지양하며, 한 줄에 길게 쓰는 대신 여러 줄로 분리하여 코드의 가독성을 높인다.
202205

203206
```javascript
@@ -208,7 +211,7 @@ if (thisIsLongVariableName !== HelloWorld.longName.longName && thisIsLongVariabl
208211

209212
### No multiple empty lines
210213

211-
코드내에서 한 줄 이상의 여백을 허용하지 않습니다.
214+
코드내에서 한 줄 이상의 여백을 허용하지 않습니다.
212215

213216
```javascript
214217
// bad
@@ -231,7 +234,7 @@ var b = 2;
231234

232235
#### Conditional statements
233236

234-
조건식이 100자를 초과하거나 가독성이 떨어진다고 생각된다면, 조건식을 변수에 담고 아래 예시와 같이 줄바꿈하여 사용한다.
237+
조건식이 100자를 초과하거나 가독성이 떨어진다고 생각된다면, 조건식을 변수에 담고 아래 예시와 같이 줄바꿈하여 사용한다.
235238

236239
```javascript
237240
// bad
@@ -479,7 +482,7 @@ var arr = [1, 2];
479482

480483
### Object curly spacing
481484

482-
Object literal이나 destructuring assignments, import/export specifiers에 쓰이는 괄호(curly braces: `{}`) 안에 space를 꼭 넣는다.
485+
Object literal이나 destructuring assignments, import/export specifiers에 쓰이는 괄호(curly braces: `{}`) 안에 space를 꼭 넣는다.
483486
다만 괄호가 중복되는 경우 space를 제거한다.
484487

485488
```javascript
@@ -770,7 +773,7 @@ CSS 속성 정렬은 다음과 같은 순서를 따른다.
770773
- ::after
771774

772775

773-
> Box model 범주에 속하는 속성들은 밖에서 안으로 향하는 순서(From outside in)로 나열한다.
776+
> Box model 범주에 속하는 속성들은 밖에서 안으로 향하는 순서(From outside in)로 나열한다.
774777
> 원래대로라면 border 속성도 Box model 범주에 포함시켜야하겠지만, border 영역은 두께만 단독으로 선언하지 않고 색상(Color)을 함께 선언하는 경우가 대부분이므로 Color 범주로 포함시킨다.
775778
776779
----------------------
@@ -809,7 +812,7 @@ let targetName = 'hello';
809812

810813
### Class Name
811814

812-
Class name은 Camel case를 따른다.
815+
Class name은 Camel case를 따른다.
813816

814817
```jsx
815818
<div className={ s.headerData }></div>
@@ -835,7 +838,7 @@ const COLOR_THEME = {
835838

836839
### Enum
837840

838-
Enum은 Pascal case를 따른다.
841+
Enum은 Pascal case를 따른다.
839842
Enum으로 선언된 각 constant도 Pascal case를 따른다.
840843

841844
```javascript
@@ -864,7 +867,7 @@ interface ExampleProps {
864867

865868
### Folder/File Name
866869

867-
폴더와 파일 이름은 하이픈`-`과 함께 Kebab case를 따르며 영문 소문자만 사용한다.
870+
폴더와 파일 이름은 하이픈`-`과 함께 Kebab case를 따르며 영문 소문자만 사용한다.
868871
Test파일 폴더 이름은 예외적으로 `__tests__`를 사용한다.
869872

870873
```
@@ -880,6 +883,16 @@ left-arrow.png
880883
icon-home.jpg
881884
```
882885

886+
컴포넌트의 이름은 fully하게 작성하고 그 파일명은 디렉터리 이름에 따라 축약한다.
887+
888+
```
889+
# file name
890+
salad/finance/dashboard/button.tsx
891+
892+
# component name
893+
export const SaladFinanceDashboardButton = () => { ... };
894+
```
895+
883896
### Url path
884897

885898
url path는 Kebab case를 따른다.
@@ -912,7 +925,7 @@ const sendUIEvent = function() {
912925
## File Import Rules
913926
### Import order
914927

915-
파일을 import할 때는 `npm packages/Node.js builtins``절대 경로 import`, `상대 경로 import`를 group화하여 분류하고 사이 사이에 빈 줄로 구분한다.
928+
파일을 import할 때는 `npm packages/Node.js builtins``절대 경로 import`, `상대 경로 import`를 group화하여 분류하고 사이 사이에 빈 줄로 구분한다.
916929

917930
이 부분은 [eslint-plugin-simple-import-sort](https://www.npmjs.com/package/eslint-plugin-simple-import-sort) 플러그인 설치 후 lint 설정으로 적용 가능하며 [web-template-pizza](https://github.com/Rainist/web-template-pizza) 템플릿에 기본 설정되어있다.
918931

@@ -964,7 +977,7 @@ var a = 1;
964977
965978
### Absolute path import
966979
967-
2-depth를 넘어가는 경우 반드시 webpack alias 설정을 통해 절대 경로로 import한다.
980+
2-depth를 넘어가는 경우 반드시 webpack alias 설정을 통해 절대 경로로 import한다.
968981
(webpack 설정 예시)
969982
970983
```javascript

0 commit comments

Comments
 (0)