관점 - 프로그래머가 보는 시각
직교성
코드에 변경은 다른코드에 영향을 주면 안된다. 즉 코드간에 독립성과 분리성을 갖도록 하자.
직교성을 가진 코드는 견고하다. 변경이 국소화 되면 생산성이 향상된다.
문제가 생겨다 해당부분을 격리 가능해서 코드가 더 견고해진다.
모듈간에 결합도를 최소화 시키자 불필요한 정보는 다른 모듈에 공개하지 말자
결합도를 최소화 하는데 계층화라는 접근이 유효한 방법
가역성
어떤 변화가 발생해도 특정 조건을 가하면 원래 상태로 돌아오는 성질
실세계의 상황은 항상 변화하므로 유연하고 적응력이 있는 가역적인 코드를 작성해 두어야 한다.
변경에 견디기 위해 초기화가 가능한 설계를 해 두자.
코드의 구린내
코드의 구린내 징후
- 자주보인다.
- 너무 길다.
- 너무 크다
- 너무 많다.
- 이름이 맞지 않는다.
기술적 부채
문제가 있는 코드는 빚이다. 기술적 부채는 악순환을 낳는다.
문제가 있는 코드의 원인
- 경험이 부족한 프로그래머
- 전문화된 코드
- 마감 압박
- 읽기 어려운 코드
- 그냥 나쁜설계
- 불필요하게 복잡한 코드
팀분위기와도 상관이 있다.