프로젝트를 진행하는 데, 알아두면 좋다고 생각하는 것들을 총 망라했다.
함수(클래스) 정의하기
함수나 클래스를 만들 때, 다음의 항목을 고려해서 만든다.
- 함수(클래스) 이름
- 책임(responsibilities) - 함수(클래스)는 무슨 일을 해야 하는가
- 협력자(collaborators) - 작업을 완료하기 위해서 어떤 다른 객체와 같이 작업하는가
백로그(backlog)를 사용하기
프로젝트가 나아가는 도로 앞쪽을 잘 보이게 유지하여 진척상황을 측정하는 가장 좋은 방법은 백로그(backlog)를 사용하는 것이다.
백로그는 완료해야 하는 작업 목록일 뿐이다. 작업을 완료했을 때, 이 작업을 백로긍서 삭제한다. 새로운 작업들이 생기면, 작업들에 우선순위를 부여해서 백로그에 추가한다. 개인용 블로그, 현재 주기에 해당하는 백로그, 프로젝트 전체의 백로그를 도입할 수도 있다.
백로그를 사용하면, 항상 다음에 해야 할 가장 중요한 작업을 알 수 있다. 시간이 흐르고 예측 기술이 향상되면서, 작업이 얼마나 걸릴지 더 나은 아이디어도 얻을 것이다.
함수에 주석 달기
함수에 주석을 달 때, 다음의 항목을 위주로 달면 효율적이다.
- 목적 : 이 함수는 왜 존재하는가?
- 필요조건(선행조건) : 이 함수를 작동하기 위해서 어떤 입력이 필요하고, 객체 내부의 상태는 어떠해야 하는가?
- 계약 사항(후행조건) : 이 함수가 성공적으로 완료되었을 때 객체 내부의 상태는 어떻고, 어떤 값을 돌려주는가?
- 예외 : 무엇이 잘못될 수 있고, 어떤 예외를 던지는가?
해결책 로그 사용하기
문제를 해결했던 내용을 로그로 남기면, 나중에 같은 문제가 발생했을 때 신속하게 디버깅 할 수 있다.
로그를 남길 때, 다음의 항목을 포함한다.
- 문제 발생일
- 문제나 쟁점의 간단한 설명
- 해결책의 상세한 설명
- 더 많은 상세 내용과 관련된 정보를 담은 기사나 URL 의 참조
- 해결책의 일부나, 상세 내용을 깊게 이해하는 데 도움이 될 만한 코드 일부, 설정, 다이얼로그 스냅샷