클린 코드 책으로 유명한 로버트 마틴의 책 클린 코더에 대한 독서 노트이다.
최근 클린 아키텍처라는 책도 나오면서 클린 트릴로지?(클린 코드, 클린 코더, 클린 아키텍처)가 완성되는 듯하다.
소프트웨어는 너무 복잡해서 오류가 생길 수 밖에 없다. 안타깝지만 너무 복잡하다는 이유로 책임이 사라지진 않는다.
완벽하지 않다는 사실에 책임을 져야한다. 완벽한 소프트웨어를 만드는 것이 사실상 불가능하다는 것이지 완벽하지 않아도 괜찮다는 뜻은 아니다.
경력을 쌓아가면서 오류를 만드는 비율을 0에 가깝게 만들어야 한다.
코드에 결함이 있는걸 알면서도 QA에게 코드를 보내는 일은 매우 프로답지 못한 행동이다.
반성하게 되는 부분이다..
제대로 작동하는지 아닌지 알아야 한다.
알려면 어떻게 해야할까? 테스트하고 또 테스트하라.
테스트하는데 시간이 많이 걸린다면 자동화해야 한다. 모든 코드에 대해서 자동화한 단위 테스트로 테스트하고 자주 돌려라.
자동화된 테스트가 제대로 관리된다면 정말 좋겠지만, 이 또한 일이며 테스트 코드가 제대로 검증을 하고 있다는 것은 또 어떻게 믿을 수 있을지? 실천하기는 참으로 힘든 부분이다.
구조에 해를 끼치지 마라
구조를 유연하게 해서 변경할 때 터무니없는 비용을 치르지 않아도 되게 해야한다.
모듈을 살펴볼 때마다 작고 가벼운 변화를 줘서 구조를 개선해야 한다. (보이스카웃 규칙)
잘 동작 중인 소프트웨어를 변경하는게 위험하다고 생각들 한다. 아니다! 정말 위험한 것은 고정된 상태로 두는 일이다.
프로개발자는 코드와 테스트에 확신이 넘치기 때문에 이리 저리 코드를 바꿔도 마음이 평안하다.
다음은 프로 개발자라면 알아야하는 최소한의 기술 목록이다.
- 디자인 패턴 : GOF패턴, POSA패턴
- 설계 원칙 : SOLID, 컴포넌트 개념
- 방법론 : XP, 스크럼, 린, 칸반
- 원칙 : TDD, 객체지향 설계, 구조적 프로그래밍, CI, 페어 코딩
- 도구 : UML, DFD, 상태 전이 다이어그램, 흐름도, 결정 테이블
연습을 해라. 품새(KATA)를 해라.
업무 지식을 익혀라. 프로답지 못한 행동 중 최악은 스펙이 사업 진행 이치에 맞는지 따져보지도 않고 스펙에 따라 코딩하는 일이다. 오류가 있는지 알아보고 이의 제기할 수 있을만큼 업무를 알아야 한다.
뜨끔
프로는 자신이 웃음거리가 됐을 때, 가장 먼저 웃는다.
'개발' 카테고리의 다른 글
카프카, 데이터 플랫폼의 최강자 - 1장 카프카란 무엇인가 (0) | 2020.08.24 |
---|---|
모바일 API 디자인 참고 사항 (0) | 2018.04.04 |
실용주의 디버깅 - 2부 큰 그림 (2) | 2016.10.18 |
실용주의 디버깅 - 1부 문제의 핵심 (2) | 2016.10.17 |
객체 지향 설계 원칙 5가지 (0) | 2016.07.10 |