-
Notifications
You must be signed in to change notification settings - Fork 0
Home
huni edited this page Jan 27, 2023
·
4 revisions
Welcome to the ft_transcendence wiki! 👋
- Conventional Commits 확장 사용
- incho 의 추천으로 사용하기 시작, 깃모지나 커밋 컨벤션을 지켜주기 때문에 매우매우 편리하다
- ycha: 어... 그... 어... 크크흠.... 어... feat, fix prefix만 붙여도 괜찮지 않나요?
- 확장을 깔아야 한다는 불편함이 있다
- vscode를 설치해야만 쓸 수 있다는 문제가 있다 (터미널에서도 쓰고 싶어요)
- 컨벤셔널 커밋의 옵션들이 너무 많아서 고민이 좀 된다
-
Conventional Commits를 사용하되, 접두사는 필수, 깃모지는 선택.
- 단
style
은 설명에 적혀있는 것처럼 코드 관련 변경사항이 아니라, 디자인 (CSS 등) 관련 변경 사항일 때 사용한다.
- 단
- ycha: dev, main 브랜치가 필요한 시점은 프로덕트 배포 이후이다.
- 프로젝트 국룰이긴 한데 굳이? 싶다
- main만 해도 상관없을 것 같다
- jiychoi: 솔직히 dev만 해도 이미 작동을 잘 하는 (버그 없는) 코드를 올리기 때문에 굳이 매번 dev->main PR을 올릴 필요가 없어보인다
-
main
만 둔다 - 하위 브랜치의 접두사는
Conventional Commits
의 접두사를 따름 (style
포함)-
[접두사]/[기능명 (자율)]
형식을 따르고, kebab-case 를 따른다. - 예시:
feat/profile-page
- 프론트엔드와 백엔드가 같은 레포에 있기 때문에 브랜치명이 겹칠 수 있지만, 유의하고 알아서 잘 짓는다.
-
-
파일당 함수 하나를 견지합시다.
-
컴포넌트, 컴포넌트 파일 (일반 컴포넌트, 페이지)
- 대문자 시작 (
PascalCase
) - 화살표 함수
- 대문자 시작 (
-
커스텀 훅, 커스텀 훅 파일
- 소문자 시작 (
camelCase
) -
use
로 시작하게끔 하기 (기존 훅 들과 컨벤션을 맞추기 위함) - 선언형 함수
- 소문자 시작 (
-
콜백 함수 (함수 안에 인자로 넘기는 함수)
- 소문자 시작 (
camelCase
) -
use
로 시작하지 않게 하기 (커스텀 훅과 겹칠 우려 있음) - 함수 안에 인자로 바로 정의할 경우에는 화살표 함수, 그 외에는 선언형 함수
- 소문자 시작 (
-
일반 변수, 상태값, 등등...
- 소문자 시작 (
camelCase
)
- 소문자 시작 (
-
유틸 파일 (그외 함수들)
- 소문자 시작 (
camelCase
) -
use
로 시작하지 않게 하기 (커스텀 훅과 겹칠 우려 있음) - 함수는 모두 선언형
- 소문자 시작 (
-
스타일 파일 (emotion 사용)
- 소문자 시작 (
camelCase
) - 지최 습관대로 하기 (
[컴포넌트명].styles.ts
확장자로 저장 및 한 파일에 여러 스타일 상수 저장, 클래스명은kebab-case
) - Emotion은 템플릿 리터럴형으로 진행
- 소문자 시작 (
-
타입, 인터페이스
- 대문자 시작 (
PascalCase
)
- 대문자 시작 (
-
타입 파일
- 소문자 시작 (
camelCase
) - 한 파일에 여러 개의 타입 / 인터페이스를 선언해도 상관없다
-
d.ts
확장자로 저장 (ycha 불만있을 경우 레포 분리하겠음)
- 소문자 시작 (
-
전역 상태값 관련 파일 (
src/store
)- 소문자 시작 (
camelCase
) - 파일 및 전역 상태값 atom 변수의 이름은
State
로 끝나도록 하기
- 소문자 시작 (
-
전역 상수
- 대문자,
SNAKE_CASE
- 디렉토리나 파일명은 자유롭게 하세요
_
- 대문자,
- 파일 하나
- export 웬만하면 하나
- 클래스 하나, 함수 하나, type 하나씩 만 들어가도록 하는게 "권고" 사항
- 클래스인데 param type같은건 같이 export 해도 괜찮
export type Param = {
name: string;
}
export function hello(option: Param) {...}
- 클래스
- 함수
- API 정의와 영역이 상당히 겹친다
- 지금 당장은 정하기 조금 애매하다
- TODO
-
camelCase
로 짓기는 확정
- 배열의 이름은 복수형으로 만듭니다.
// 예시 chatArray // X chatList // X chats // O
- 반환 값이
boolean
형인 함수나 변수는is
또는has
로 시작합니다. - 매직넘버 사용 금지(변수나 상수로 분리)
-
const
는let
보다 상단에 작성합니다. - 변수는 사용 시점에 선언 및 할당합니다.
- 선언과 할당을 동시에 하는 변수를 선언만 하는 변수보다 먼저 선언합니다.
- import 순서
- 외부모듈 -> 내부모듈 -> style -> assets 순서로 작성합니다.
// 예시 import React from 'react' import Main from './Main' import colors from './style' import icons from './assets'
- 선언 그룹 사이에 공백을 둡니다.
- 지윤님이 쓰시던 규칙 사용
- 선언형 (
function foo() {}
)- Hook 등의 로직
- 유틸 함수 등, 통상적인 함수들
- 화살표 함수 (
foo = () ⇒ {}
)- 컴포넌트
- 콜백 함수
- 클래스 (
class Foo {}
)- 생성자로 인스턴스를 만들어야 할 때 (this가 필요할 때)
- 핸들러 함수
handle + 동사 + 목적어
- 예시:
handleClickButton
,handleSubmitForm
- 컴포넌트 안에서 사용되는 핸들러 함수의 경우, 컴포넌트 안에 선언하되
useCallback
으로 감싸줄 것 (재선언 방지) -
setStateAction
을 호출하는 핸들러 외의, 기타 유틸 함수들은 컴포넌트 밖에 선언할 것
<Route path='/auth'>
<Route path='/github' />
<Route path='login' />
</Route>
- 부모-자식 라우터가 생길 것을 고려하여 컴포넌트 형식으로 작성
-
createBrowserRouter
을 사용하면 부모-자식간 상관관계가 직관적이지 않을 우려 있음?
-
- 제목은 확실히 적어줍니다.
- 본문은 optional.
# <타입>: <제목> (#1)
##### 제목은 최대 50 글자까지만 입력 ############## -> |
# 본문은 위에 작성
######## 본문은 한 줄에 최대 72 글자까지만 입력 ########################### -> |
# --- COMMIT END ---
# <타입> 리스트
# feat : 기능 (새로운 기능)
# fix : 버그 (버그 수정)
# refactor : 리팩토링
# style : 스타일 (코드 형식, 세미콜론 추가: 비즈니스 로직에 변경 없음)
# docs : 문서 (문서 추가, 수정, 삭제)
# test : 테스트 (테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없음)
# chore : 기타 변경사항 (빌드 스크립트 수정 등)
# structure : 공통 구조 작업
# ------------------
# 타입은 영어로 작성하고 제목과 본문은 한글로 작성한다.
# 제목 끝에 마침표(.) 금지
# 제목과 본문을 한 줄 띄워 분리하기
# 본문은 "어떻게" 보다 "무엇을", "왜"를 설명한다.
# 본문에 여러줄의 메시지를 작성할 땐 "-"로 구분
# 관련된 이슈번호는 제목 맨 뒤에 추가한다. ex. (#1)
# ------------------
# 그라운드 룰
1. 의견 제시 했을 때 마다 박수치기
2. `any` 쓰면 사형 → [#42seoul_global_random](https://42born2code.slack.com/archives/CU6MTFBNH)에 애니 추천하기(다른 사람이 애니 정해주기)
3. 최소 맡은 것에 대한 책임을 저야함 (특정 분야의 선택은 그 사람이!)
4. prettier, eslint 안지키면 → 사형
5. 오후 10시 ~ 다음날 오전 10시 (스크럼 시간 시작 직전) 까지, 슬랙 털기 금지 (12시간동안 임시 휴전)
6. 스크럼 안오면 애니 추천하기 (빠질 때마다)
- 현재 누적횟수 ycha 1회, jasong 1회 -> 지최한테 덤핑함. 지최는 이를 기억할 것입니다