회사에서는 어떻게 진행하는가?
- 로드맵 회의(팀장급)
- 컨셉 회의
- 개발 시작
- 폴리싱
- 테스트
- QA
- 정식출시
현실
- 회의 내용 기록 x
- 코드에 버그있는지 알 수 없음
- 코드 컴파일 및 빌드 안됨
1. 소스 코드 관리
- git을 쓰자!
rogerdudler.github.io/git-guide/index.ko.html
단점 : 파일의 개수가 많아지면 답이 없다
2. 이슈 관리
- 새로 개발하는 기능, 버그 수정 등 모든 사항 반드시 기록
- 이슈관리 서비스 : JIRA, Redmine, Trac, Mantis
→ 붙이는 것도 일이라 github issues 사용해도 괜찮다.
3. 코드 스타일
- Google C++ Style Guide
- C++ Core Guidelines
- CMV C++ Coding Standard
- ROS C++ Style Guide
C++은 clang-format으로 코드 스타일 지정이 가능하다.
4. 지속적인 통합
- A가 작업완료하기 전 커밋한 걸 B가 내려받으면 B는 A가 완료되기전까지는 작업 불가
- 나는 되는데 다른데서 안되는 문제들 조기발견 가능
- AppCenter, TravisCI, CircleCI, AppVeyor, Jenkins 등의 서비스
- 빌드머신? 이라고 생각. 여러 os마다 빌드되는지 테스트해주는 서비스
5. 테스트
- 내가 원했던 동작과 실제 동작이 일치하는지 확인
- 나중에 코드가 수정되었을 시 나머지 동작에 영향이 없는지
- 비정상적인 데이터 입력되었을때 어덯게 처리할지 고려
- Unit Test, Integration, System, Acceptance
- Boost Test, googletest, catch 등의 서비스
6. 코드 커버리지
- 테스트 진행시 코드가 얼마나 실행되었는 지 나타내는 지표
- Cobertura, CppUnit, lcov/gcov, pytest
7. 코드 리뷰
- 코드 리뷰를 하더라도 세부사항 보기에는 한계가 있음.
- 보통 크래시날 수 있는 부분이나 null 포인터 체크 위주
- 새로운 컨텐츠 개발시 담당자가 책임지는경우 많음.
- 내가 짠 코드는 잘 짠 코드인가?? 코드 품질 툴이 많음
- Resharper Ultimate, CodeClimate, Codebgeat, Codacy, LGTM
- 사이트마다 다르니 2개이상의 툴 사용 권장
8. 문서화
- 내가 새로 만든 기능을 나중에 다른 사람이 사용 가능성있음
- 작업내용 정리한 문서 필요.
- 가독성 있는 코드.
- 구현 이해를 돕기위한 주석
- 주석을 모아 문서로 만들어주는 툴도 있음
- Doxygen, Sphirex 등..
'프로그래밍 공부 > 특강' 카테고리의 다른 글
포폴 면접 취업준비 (0) | 2018.12.04 |
---|---|
면접과 수습에서 살아남기 (0) | 2018.12.04 |
게임엔진 다루기 (0) | 2018.12.03 |
서버 프로그래머에 관한 이야기 (0) | 2018.12.03 |
BIC 컨퍼런스 오후 세션 (0) | 2018.10.06 |