실용주의 프로그래머를 읽고 느낀점을 써보려고 합니다. 제가 느낀바로는 이러한 내용이다 하는 방향으로 기술할 것 같습니다.
이 장에서는 소프트웨어 개발에 있어 반드시 적용되는 아이디어나 보편화된 프로세스에 대해 소개한다.
중복의 해악과 직교성(Orthogonality):
가역성(Reversibility):
예광탄(Tracer bullets):
프로토타입과 포스트잇:
도메인 언어(Domain Language):
추정(Estimating):
지식은 변화한다. 요구사항이 바뀔 수도 있고 알고리즘이 안돌아가서 변경될 수 있고 그에 맞게 기능도 바뀐다. 한마디로 하자면 유지보수는 개발과 이어지는 부분이다 라고할 수 있다. 유지보수를 하려면 사물의 표현방식을 바꿔야함. 객체화한 것들, 캡슐화한 부분들 등… 그렇지만 개발할 때 명세와 프로세스에 지식을 중복해서 넣기 쉽다는 점이다. 이것을 방지하기 위한 원칙은 DRY 원칙이다. 정의는 다음과 같다.
모든 지식은 시스템 내에서 단일하고, 애매하지 않고, 믿을만한 표현양식을 가져야 한다.
Tip 11. DRY - Don’t Repeat Yourself
DRY를 따르지 않는다: 똑같은 것이 여러곳에 반복된다는 것이다. -> 지옥의 유지보수
중복이 어떻게 생기는가?
강요된 중복: 필요한 지식을 한곳에 두도록 하는 기법들