상세 컨텐츠

본문 제목

프로그래머가 알아야 할 97가지

Programming/디지로그

by 남수만 Ph.D. 2021. 3. 13. 21:45

본문

728x90

당신은 사용자가 아니다
사람들은 다른 사람도 자기처럼 생각한다고 가정하는 경향이 있다.
그러나 다른 사람은 다르게 생각할 수 있다.
심리학자들은 이것을 허구적 일치성 편향(false consensus bias)이라고 한다.
사람들이 우리와 다르게 생각하고 행동할 때, 우리는 그들에게 결점이 있다고 치부하기 쉽다(6).

코딩 표준을 자동화하라(8)

아름다움은 단순함에 있다
모든 소프트웨어 개발자들이 알아야 하고 마음에 간직해야 할 명언이 있다.
스타일, 조화, 세련, 좋은 리듬감의 아름다움은 단순함에 달려 있다 - 플라토(Plato)
이 한 문장은 우리가 소프트웨어 개발자로서 추구해야 할 가치를 요약하고 있다.
우리는 코드에서 많은 것을 얻으려고 노력한다.
- 가독성
- 유지보수서
- 개발속도
- 정의하기 어려운 아름다움에 대한 품질
플라토는 이런 특성들을 모두 가능하게 해 주는 요소가 단순함이라고 이야기한다(10).

리팩토링하기 전에
- 리팩토링할 때 가장 좋은 접근법은 기존 코드와 그와 관련된 테스트를 평가하면서 시작하는 것이다.
- 모든 것을 새로 작성하려는 유혹을 피해야 한다.
- 한 번의 크 ㄴ변화보다는 여러 번의 점진적인 변화가 더 좋다.
- 각각의 반복 이후에 기존 테스트를 통과하는 것이 중요하다.
- 개인적인 선호와 자기 생각이 개입되어서는 안 된다.
- 새로운 기술의 등장이 리팩토링을 해야 하는 이유가 될 수 없다.
- 인간은 실수를 범한다는 것을 꼭 기억하라(13).

다른 사람을 비난하기 전에 먼저 자신의 코드를 리뷰하라(18)

코드 리뷰
코드 리뷰의 목적은 단순히 코드상의 실수를 고치는 것이 아니라,
지식을 공유하고 공통의 코딩 가이드라인을 구축하는 데 있다.
다른 프로그래머들과 코드를 공유하면 단체로 코드를 소유할 수 있게 된다(28).

단지 코드가 말하지 않는 것을 주석으로 추가하라(34)
□ 코드을 수행한 이유를 반드시 적어라.

상황에 맞는 예외처리가 필요하다(42)
응용프로그램이 실행 도중 중단되는 이유는 크게 두 가지이다.
- 기술 문제
- 비즈니스 로직 문제

에러는 발견 즉시 고쳐라(52)

중복을 제거하라
- 중복은 낭비이다
- 프로세스의 중복은 자동화를 필요로 한다
- 로직의 중복은 추상화를 필요로 한다
* 중복 제거 원칙의 중요성(63)
- 데이터베이스 스키마의 정규화 등의 구조체 등에도 적용될 수 있다
- 소프트웨어는 확장에는 개방되어야 하지만 수정에는 폐쇄되어야 한다.
- 하나의 클래스가 너무 많은 역할을 가지는 것보다, 변화에 대한 한 가지 이유를 가지는 개별의 class로 나눠어야 한다.
- 단일 책임 원칙(Single Responsibility Principle(SRP) 역시 중복 제거 원칙에 의존하는 것이다.

728x90

관련글 더보기

댓글 영역