프로그래밍

프로그래밍 안티 패턴 9가지

bomoto 2022. 6. 14. 06:49

1. Brook's law

 - 프로젝트 공수 산정 시의 manXmonth는 교환 불가능

 - 종속 관계에 따른 오버헤드 발생, 교육에 시간 빼앗김

 - 일정 지연 시 인원 투입으로 만회하는 것이 아닌 일정을 재조정하자

 

 

2. Conway's law

 - 아키텍처는 조직을 따른다.

 - 아키텍처 설계 후 조직을 편성하라

 

 

3. Broken Windows Theory

 - 나쁜 코드를 방치하면 소프트웨어 전체를 단기간에 부패시킨다.

 - 코드의 좋지 않은 부분이 보이면 즉시 복구시키자.

 

 

4. Law of entropy increase

 - 코드는 그대로 두면 썩은 코드가 된다.

 - 코드 부패의 징후를 신속히 처리하자

 

[코드 부패의 징후]
    경직됨: 변경하기 어려운 것. 종속성을 줄이자
    깨지기 쉬움: 변경한 부분과 관련 없는 부분까지 망가질 수 있음
    이식성 없음: 환경에 종속되는 부분에서 다른 부분 분리가 어려움
    다루기 어려움: 설계 구조에 유연성이 없음(코드) / 개발 환경이 느리고 비효율적(개발 환경)
    복잡함: 불필요한 요소가 많음. 나중을 위해 대처하기 쉬운 장치를 미리 심어놓지 말 것
    반복: 중복을 피하고 추상화하자
    불투명함: 코드를 이해하기 어렵다. 읽는 사람 입장에서 코드를 작성하자

 

 

5. 80:10:10 rule

 - 80%는 단시간에 실현 가능하지만 10%는 상당한 노력을 요구하고 나머지 10%는 실현 불가능하다.

 - 소프트웨어 개발에서 만병통치약은 없다. 전문약을 만들자.

 

 

6. Joshua Tree Principle

 - 이름이 없는 것은 보이지 않는다.

 - 유비쿼터스 언어를 사용하자

 

 

7. Second system syndrome

 - 소프트웨어의 두 번째 버전에서 기능이 과다되는 경향이 있다.

 - 프로그래머는 사용자를 고려하여야 한다.

사용자는 누구인가?
사용자는 무엇을 필요로 하는가?
사용자는 무엇이 필요하다고 생각하고 있는가?
사용자는 무엇을 바라고 있는가?

 - 소프트웨어 디자인에서 궁극의 아름다움은 단순함

 

 

8. Reivnented wheel, Reinventin the wheel

 - 이미 있는데도 만든다.

 - 수레바퀴의 재발명을 피하고 본래 해야 할 작업에 주력하자

 

 

9. Yak Shaving

 - 문제가 줄줄이 발생해 진짜 문제에 도달하지 못한다.

 - 야크의 털을 깎는 상태에 빠졌다고 느끼면 본래 목적이 무엇이었는지 떠올리자.