티스토리 뷰

반응형

ACABERRY와 함께하는 프로그래밍 공부

리팩토링 ( 나쁜냄새 / BadSmell / 배드스멜 )

리팩토링 - 나쁜냄새 - BadSmell -



[3] 코드속 나쁜 냄새

https://wikidocs.net/597


Refactoring - 나쁜 냄새(Bad Smell)
https://nesoy.github.io/articles/2018-05/Refactoring-BadSmell


중복된 코드(Duplicated Code)

한 곳 이상에서 중복된 코드 구조가 나타난다면, 그것을 합쳐서 프로그램을 개선할 수 있다.



긴 메소드(Long Method)

최대한 파라미터와 임시변수를 제거하고 그것도 힘들다면 Object를 생성하자.



거대한 클래스(Large Class)

많은 인스턴스 변수를 갖는 경우, 중복된 코드가 존재할 확률이 높다.



긴 파라미터 리스트 (Long Parameter List)

일관성이 없거나 사용하기 어려울 뿐만 아니라, 다른 데이터가 필요할 때마다 고쳐야 하기 때문이다.



확산적 변경 (Divergent Change)

확산적 변경은 여러 종류의 변경 때문에 하나의 클래스가 시달리는 경우.



산탄총 수술 (Shotgun Surgery)

변경을 할 때마다 많은 클래스를 조금씩 수정해야 한다면 산탄총 수술의 냄새를 풍기고 있는 것이다.



기능에 대한 욕심 (Feature Envy)

어떤 값을 계산하기 위해 다른 객체에 있는 get 메소드를 호출하는 경우는 수도 없이 많다. 그런 경우 그 메소드를 호출하는 객체에 위임하는 방법이 적절하다고 볼 수 있다.



...




―――― ACABERRY's STUDY ―――― ACABERRY's STUDY ―――― ACABERRY's STUDY ――――

▶대부분 퍼온 내용이기에 출처를 꼭 명시합니다.

문제되는 부분이 있다면 요청주시면 언제든 수정 & 삭제합니다.

포스팅의 목적은 공부하시는 분들이 쉽게 접하고 정답을 찾아가는데 도움을 드리고자 함입니다.

―――― ACABERRY's STUDY ―――― ACABERRY's STUDY ―――― ACABERRY's STUDY ――――




반응형

'면접공부해요' 카테고리의 다른 글

면접방법론  (0) 2018.11.22
map, hash_map  (0) 2018.08.21
결합도 응집도  (0) 2018.08.16
게임 테스트 방법?  (0) 2018.05.14
스트링필드? 문자형포인터 문자열상수  (1) 2018.05.08
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/11   »
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 30
글 보관함