728x90
코드리뷰에 대해
- 꼭 한번은 들어보면 좋을 것같은 강의 추천추천~
- 코드리뷰가 왜 중요할까? 이걸 어떻게 해야할까? 코드리뷰는 어떤식으로 진행되고 뭐가 필요할까 많은 고민을 해결해 줄 수 있었다.
TEST-Drive Development - 테스트가 기본이다.
- 요구사항과 구현을 분리하라
- 테스트는 언제나 코드와 싱크되어 있다.
- no test, no source code
- 자잘하게 많이 커밋해라
Pair Programming - 선배 어깨 너머로 배우기
- 둘이 나란히 한 컴퓨터로 프로그래밍
- 실력이 정말 빠르게 증가한다.
Code Review - 이해하기 쉽고, 유지보수하기 쉽게
- 꼭 필요한 한 단계이다.
- 당신의 동료로 부터 내 코드를 피드백 받는 것을 의미한다.
It is not about code review
- 소프트웨어 설계를 어떻게 할까 - 이런것은 화이트보드에. 코드리뷰는 코드 체인징에 관해서
- 소프트웨어에 요구 계획 추가나 프로젝트 추가.
Step
- LGTM가 나올때까지 코드리뷰
- 코드리뷰는 읽는 사람을 위한 것이다. - 한달 후 내가 될 수도 있다.
왜 why 필요한가?
- 당신의 CL(Change List)를 이해하기 쉽게 만든다.
- 당신의 동료가 당신의 코드를 이해할 수 있어야 한다.
- 당신의 CL에 동료가 남긴 의견으로 부터 tip&lessons을 배운다.
- 숙련된 개발자로부터 코딩스타일과 팁을 배운다
- 당신의 팀이 공통된 코딩스타일을 공유할 수 있다.
- 결함을 줄일 수 있다.
- 당신의 coding decision에 대한 개발 역사를 보관한다.
- 동료의 의견은 코드 설계와 결정사항에 대해 이해하는데 매우 큰 도움이 된다.
- 새로운 개발자는 committed log와 의견으로부터 코드의 구조와 결정사항을 이해할 수 있다.
- 당신의 코드에 일관적인 코딩스타일을 유지할 수 있다.
- 새로 온 개발자가 기존의 코딩 스타일을 따를 수 있도록 도와준다.
- 일관적인 코딩 스타일은 이후에 코드를 refactoring 하거나 디버깅할 때 큰 도움이 된다.
- 이러 이러한 이유로 이렇게 바꾸면 좋습니다 , 레퍼런스는 여기를 참조하시면 좋을것같습니다 << 이런식으로 코드리뷰를 하면 매우 좋다.
- 남의 코드를 보면서 자기가 생각하는 것을 말하면서 많이 배울 수 있다.
- 코드 리뷰를 통해서 대화
- 코드리뷰를 하다보면 코드가 투명해지고, 확장성이 생긴다.
- 코드의 표준이 올라간다.
Possible Downsides of Code Review
- 거칠고 무례한 의견 때문에 CL owners may get discouraged
- 리뷰가 늘어지면 개발기간이 늦어진다.
- 코드 리뷰를 제대로 하려면 시간이 걸린다.
- 경험이 부족한 개발자의 잘못된 CL을 리뷰하느라 숙련된 개발자의 시간이 허비될 수 있다.
- 코드리뷰를 위해서는 어느정도 숙련된 개발자가 필요하다.
Google C++ Style Guide
코드리뷰를 위한 것
- 묵시적인 것으로 에러가 발생한다면 나중에 디버깅하기 매우 힘들기 때문에 명시적으로 선언
- 새로운 기술보다 기본에 충실하라. 하지만 최적화 부분이나, 속도가 차이난다면 속도를 우선시해라.
- 도구가 할 수 있는것은 도구에게 맡겨라.
- 함수는 최소한 작게 구현해라 - 함수는 하나의 일만 해야한다.
- 함수의 이름에서 무슨 역할을 수행하는 함수인지 들어나야한다.
당신의 팀에는 일관적인 스타일이 있는것이 좋다.
Testing
- Testing Rocks! Debug Sucks
- 디버깅은 보통 문제를 찾는데 오랜 시간이 걸린다.
- 테스팅은 새로 작성한 코드에서도 결합을 검출 할 수 있다.
- 테스팅은 테스트 코드를 필요로 하기 때문에, 유지보수 부담을 줄인다.
- unit testing : 함수 하나 하나를 테스팅
- integration testing : 서로 다른 시스템들의 상호작용이 잘 이뤄지는지 테스트하는 것
Project Scalability
- 새로운 개발자도 테스트 코드를 잘 작성해서 프로젝트에 기여할 수 있다.
- 동료나 외부 기여자에게서 도움을 받기에 가장 적합하다.
Code Refactoring
- Refactoring은 SW의 동작을 바꾸지 않으면서 내부 구조를 개선하는 것이다. 즉, 코드의 구조를 잘 정해진 규정대로 수정하는 기술이다.
- SW를 더 이해하기 쉽게 만들고, 수정하는 비율을 줄인다.
- Why
- SW 설계 개선
- Refactoring이 없으면 프로그램의 설계가 낡아진다.
- 설계가 좋지 않은 코드는 보통 같은 일을 하는데 코드가 길고, 같은 일을 여러곳에서 한다.
- 이해하기 쉽다.
- 대부분의 SW 개발 환경에서, 누군가 언젠가는 당신의 코드를 읽어야 할 때가 오기 때문에, 그들을 위해 이해하기 쉬운 코드를 작성해야 한다.
- 결함을 검출 할 때도 있다.
- 프로그램의 속도를 향상 시킬 수 있다.
- 프로그램에 대해 더 잘 이해할 수 있기 때문에
728x90
'잡담' 카테고리의 다른 글
크래프톤 정글 - CSAPP를 읽어야 하는 이유 (5) | 2024.02.28 |
---|---|
크래프톤 정글 - 천천히 나를 돌아보는 시간 (0) | 2024.01.12 |