ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리팩터링 2판 - 8. 기능이동
    Books/리팩터링 2판 2022. 6. 17. 11:25

    8-1. 챕터소개 & 포인트 정리

    - 응집도 Cohension 

        ㆍ좋은 코드와 좋은 설계의 시작 포인트

        ㆍ서로 밀접하게 연관 있는 속성( data )과 행동( method )이 함께 뭉쳐( 모듈, 클래스, 함수 )있는 정도

        ㆍBad ( high coupling, low cohesion, spaghetti code )

            - 모듈내 응집도는 낮고 외부 모듈간 결합도는 높다

        ㆍGood ( loose coupling, high cohesion, spaghetti code )

            - 이해하기 쉽고, 재사용도 높고, 유지보수하기 쉽다.

            - 무엇보다, 다른 클래스/모듈의 변화에 크게 영향을 받지 않는다.

    - 함수 하나당, 한가지의 일을 수행하도록 만들어 두자

    - 모듈 / 클래스 하나당 한가지의 책임을 가지도록 하자

    - 모듈 / 클래스 하나당 하나의 도메인을 가지도록 하자

     

    8-2. 함수 옮기기 ( 책 8.1 )

    - 함수는 연관이 있는 클래스에 두기 ( 응집도 높이기! )

    - if문을 없앨 수 있다면 최대한 없애기

     

    8-3. 필드 옮기기 ( 책 8.2 )

    8-4. 문장을 함수로 옮기기 ( 책 8.3 )

    - 기능을 구현, 추가, 수정할 때 어떤 부분에서 일들을 담당하고 있는지 어디에서 이것을 더 해주는게 맞는건지 생각해볼것!

    - 가능하면 쓰이는 곳, 필요한 곳, 밀접하게 연관된 곳에 코드를 추가해줄 것

     

    8-5. 문장을 호출한 곳으로 옮기기 ( 책 8.4 )

    - 사용하는 곳마다 조금씩 달라지는 부분이 있다면 함수밖으로 빼준다.

    - 데코레이터패턴이나 콜백함수를 이용할 것

     

    8-6. 인라인 코드를 함수 호출로 바꾸기 ( 책 8.5 )

    - 절차 지향적으로 사용되는 코드가 있다면 얼마나 내가 더 간편하게 사용할 수 있는지, 이를 대신할 수 있는 라이브러리, API, 함수 확인

     

    8-7. 문장 슬라이드하기 ( 책 8.6 )

    - 관련있는 코드끼리 묶어두기 : 변수 선언시 변수를 사용하는 곳에 최대한 가까이 둘 것

     

    8-8. 반복문 쪼개기 ( 책 8.7 )

    - 반복문에서 다른 일을 하고 있다면 나눠보기

    - JS 순환 함수? 파이프라인? 공부 잘하기

     

    8-9. 반복문을 파이프라인으로 바꾸기 ( 책 8.8 )

    - 직관적이고 단계적

    - for 루프 사용 x, 함수형 프로그래밍 ( 파이프라인 ) 을 만들어서 간편하고 간결하고 단원적으로 프로그래밍

     

    8-10. 죽은 코드 제거하기 ( 책 8.9 )

    - 사용하지 않는 코드는 삭제

    - git으로 커밋한 상태라면 git 버전관리 시스템에 남아있음 - 히스토리를 통해서 찾을 수 있다

     

    댓글

Designed by Tistory.