Skip to content

Convention

hyojekim edited this page Mar 18, 2022 · 1 revision

코드 작성 규칙

폴더 구성

/root
├── include
├── src
|   ├── 범주별로 폴더화
|   └── ...
└── Makefile

.h

minishell.h

  • src의 .c 파일들이 불러올 헤더파일
  • 사용하는 모든 헤더 파일을 #include

src 폴더별 .h

  • 분류된 폴더별 전용 헤더파일
  • 해당 폴더에서만 사용하는 상수나 구조체 정의
  • 폴더별 static 함수를 제외한 함수의 프로토타입 선언
  • minishell.h에서 include를 담당하기에 정말 특별한 케이스(오로지 여기에서만 쓰는 헤더가 있다?!)가 아니라면 include는 지양

type.h

  • 공통으로 사용하는 상수나 구조체 정의

접두사 | 접미사

  • 동적할당과 관련된 경우 new_del_로 시작
  • bool 함수의 경우 is_로 시작
  • libft에 속하는 함수는 모두 ft_로 시작
    • 단, 이 안에서도 동적할당, bool 함수의 경우 위의 규칙을 따름
  • 함수포인터는 _f로 종료

함수명 | 변수명

  • libft는 기존에 있는 함수를 모방한 것들이 대부분이라 단어 사이의 _가 생략되어있지만 그 외의 함수명은 단어 사이에 _를 사용하여 작성 ex) logo_print()
  • 동사가 뒤에 오도록 작성 ex) struct_init(), num_count()
    • 단, new_, del_, is_는 그대로 앞에 사용
  • 단어는 최대한 그대로 사용하고, 줄여서 사용할 단어는 협의해서 사용
    • sh == shell
    • num == number
    • str == string
    • arr == array
    • len == length
    • res == result
    • i, idx == index

커밋메세지 작성 규칙

conventional commit extension 사용

type & gitmoji

  • feat:✨ 새로운 코드 추가
  • fix:🐛 버그 수정
  • docs:📝 문서 수정
  • style:🚨 norm 수정
  • refactor:♻️ 코드 리팩토링
  • test:🧪 테스트 코드
  • build:🏗️ 빌드 시스템 (=make)
  • ci:👷 github action
  • chore:🩹 자잘한 수정
  • revert:⏪️ 커밋 되돌리기

title

  • 제목은 영어로 작성
  • 동사 원형으로 시작
  • 첫 글자는 대문자로 작성
    • Add, Fix, Remove ...

body

  • 상대방이 이해할 수 있도록 충분히 자세하게 작성하기
  • 이해할 수 있다는 것은 이 커밋이 왜 필요했는지, 어떤식으로 수정되었는지, 어떤 결과가 나왔는지를 담고 있음을 의미

footer

  • 연관된 github issue 번호 기입하기

허용 함수

  • Directory
  • Errors
  • File Descriptor
  • Process
  • Readline
  • Signal
  • Terminal
  • Wait

구조

  • 문법
  • Lexer: 구문 분석 (1) - |, <, >
  • Lexer: 구문 분석 (2) - ", ', $
  • Parser: AST 구조

규칙

  • 코딩 규칙
  • 커밋 규칙
Clone this wiki locally