Best Practices Ever for Software Development라는 글이 트위터에 올라와서 독자 여러분을 위해 간단하게 번역해봤다.
- 컴퓨터가 아니라 사람을 위해 프로그램을 작성하라.
- 독자들에게 한번에 머리에 들어오는 사실을 넘어 더 많은 것을 기억하게 요구해서는 안 된다.
- 이름은 일관성이 있고, 독특하고, 의미가 있어야 한다.
- 코딩 스타일은 일관성이 있어야 한다.
- 소프트웨어 개발의 모든 측면은 대략 한 시간짜리 과업 여러 개로 나눠야 한다.
- 반복적인 작업을 자동화하라.
- 반복적인 작업을 컴퓨터에 의존하라.
- 재사용을 위해 파일에 최근 명령을 저장하라.
- 과학적인 작업 흐름을 자동화하기 위해 빌드 도구를 사용하라.
- 컴퓨터를 사용해 이력을 기록하라.
- 계산 작업을 자동으로 추적하기 위해 소프트웨어 도구를 사용하라.
- 점진적인 변경을 가하라.
- 잦은 피드백과 중간 궤도 변경을 곁들여 작은 단계로 나눠 일을 진행하라.
- 버전 관리 시스템을 사용하라.
- 버전 관리를 사용하라.
- 버전 관리 시스템을 사용하라.
- 수동으로 생성하는 것은 뭐든지 버전 관리 시스템에 넣어라.
- 반복하지 마라(DRY).
- 모든 자료는 시스템에서 단일 책임을 표현해야 한다.
- 코드를 복사해서 붙이는 대신 모듈화하라.
- 코드를 재작성하는 대신 재사용하라.
- 실수에 대한 계획을 세워라.
- 연산을 점검하기 위해 프로그램에 assert를 추가하라.
- 시중에 나와 있는 단위 테스트 라이브러리를 사용하라.
- 프로그램을 테스트할 때 가능한 모든 수단을 사용하라.
- 버그를 테스트 케이스로 전환하라.
- 심벌릭 디버거를 사용하라.
- 제대로 동작하고 난 다음에야 소프트웨어를 최적화하라.
- 프로파일러를 사용해 병목을 파악하라.
- 가능한 고차원 언어를 사용해 코드를 작성하라.
- 동작 방식이 아니라 설계와 목적을 문서화하라.
- 구현이 아니라 인터페이스와 이유를 문서화하라.
- 동작 방식을 설명하는 대신 코드를 리펙터링하라.
- 소프트웨어 내부에 소프트웨어 일부로 문서를 내장하라.
- 공동으로 작업하라.
- 합치기 전에 코드 검토를 수행하라.
- 곤란한 특정 문제를 추적하거나 새로운 신입의 속력을 높이려 할 때는 짝 프로그래밍 기법을 사용하라.
- 낡은 코드를 유지보수하고 개선하라.
독자 여러분들께서 추천하는 관례는 무엇인가? 공유를 위해 댓글로 달아주시면 좋겠다.
EOB