1. 경직성 : 무엇이든지 하나를 바꿀 때마다 반드시 다른 것도 바꿔야 하며, 그러고 나면 또 다른 것도 바꿔야 하는 변화의 사슬이 끊이지 않기때문에 시스템을 변경하기 힘들다.

2. 부서지기 쉬움 : 시스템에서 한 부분을 변경하면 그것과 전혀 상관없는 다른 부분이 작동을 멈춘다.

3. 부동성 : 시스템을 여러 컴포넌트로 분해해서 다른 시스템에 재사용하기 힘들다.

4. 끈끈함 : 개발환경이 배관용 테이프나 풀로 붙인 것처럼 꽉 달라붙은 상태다.
편집-컴파일-테스트 순환을 한번 도는 시간이 엄청나게 길다.

5. 쓸데없이 복잡함 : 괜히 머리를 굴려서 짠 코드구조가 굉장히 많다. 이것들은 대개 지금 당장 하나도 필요 없지만, 언젠가는 굉장히 유용할지도 모른다고 기대하며 만들었다.

6. 필요없는 반복 : 코드를 작성한 프로그래머 이름이 마치 '복사'와 '붙여넣기' 같다.

7. 붙투명함 : 코드를 만든 의도에 대한 설명을 볼때 그 설명에 '표현이 꼬인다' 라는 말이 잘 어울린다.

Java프로그래머를 위한 UML, 실전에서는 이것만 쓴다.
- 로버트 C.마틴(인사이트)

가장 기본적인 OOP의 원칙이지만, 제대로 하기는 쉽지 않다. 생각없이 코드를 만들어낸 후 내가 짠 소스를 보면서 중복코드와 라인수가 많은 메소드, 수많은 if들을 보면서 고통스러울때가 있다. 다음에는 꼭 그렇게 안해야지 하면서도 아직 내공이 부족하여 실행을 못할 경우가 많다.

최근 디자인 패턴, 코드질에 더 신경을 쓰는 이유는 이제는 노력을 더 해야겠다는 결심을 해서이다.

'중복코드 방지와 개발생산성 증대 및 유지보수를 편하게 한다' 는 대전제 아래 다시 한번 알면서도 제대로 행하지 못한 나의 잘못된 습관들을 refactoring하려고 한다.
Posted by ologist
 TAG , ,

블로그 이미지
ologist

공지사항

Yesterday191
Today136
Total34,708

달력

 « |  » 2012.02
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

최근에 받은 트랙백

글 보관함