실용주의 프로그래머 pt. 3

읽기에 앞서...

실용주의 프로그래머를 읽고 느낀점을 써보려고 합니다. 제가 느낀바로는 이러한 내용이다 하는 방향으로 기술할 것 같습니다.

제 2장. 실용주의 접근법

이 장에서는 소프트웨어 개발에 있어 반드시 적용되는 아이디어나 보편화된 프로세스에 대해 소개한다.

중복의 해악과 직교성(Orthogonality):

가역성(Reversibility):

예광탄(Tracer bullets):

프로토타입과 포스트잇:

도메인 언어(Domain Language):

추정(Estimating):

7. 중복의 해악

지식은 변화한다. 요구사항이 바뀔 수도 있고 알고리즘이 안돌아가서 변경될 수 있고 그에 맞게 기능도 바뀐다. 한마디로 하자면 유지보수는 개발과 이어지는 부분이다 라고할 수 있다.
유지보수를 하려면 사물의 표현방식을 바꿔야함. 객체화한 것들, 캡슐화한 부분들 등... 그렇지만 개발할 때 명세와 프로세스에 지식을 중복해서 넣기 쉽다는 점이다. 이것을 방지하기 위한 원칙은 DRY 원칙이다. 정의는 다음과 같다.

모든 지식은 시스템 내에서 단일하고, 애매하지 않고, 믿을만한 표현양식을 가져야 한다.

Tip 11. DRY - Don't Repeat Yourself

DRY를 따르지 않는다: 똑같은 것이 여러곳에 반복된다는 것이다. -> 지옥의 유지보수

중복이 어떻게 생기는가?

강요된 중복:
필요한 지식을 한곳에 두도록 하는 기법들