[워밍업 클럽 스터디 2기] 2주차 발자국

강의 출처 Readable Code: 읽기 좋은 코드를 작성하는 사고법

 

학습 내용

  • 코드 다듬기

    • 주석 적절히 사용하기

      • 자주 변하는 정보는 지양

      • 관련 정책이나 코드가 변경될 경우 주석도 업데이트

    • 변수와 메서드의 나열 순서

      • 변수는 사용하는 순서대로 나열

      • 메서드의 경우 객체의 입장에서 고려

        • 공개 메서드를 상단에 배치

        • 공개 메서드끼리도 기준을 가지고 배치(상태변경 > 판별 >= 조회 메서드)

        • 비공개 메서드는 공개 메서드에서 언급된 순서대로 배치

    • 패키지 나누기

      • 문맥으로써 정보를 제공할 수 있음

      • 패키지를 쪼개지 않으면 관리가 어려움(너무 잘게 쪼개는 것도 관리가 어렵다)

      • 대규모 패키지 변경은 팀원과 합의 후

    • 기능 유지보수

    • IDE의 도움받기

      • 코드품질 : sonarlint

         

      • 포맷규칙 : .editorconfig

         

  • 리팩토링

    • 메서드 추출로 추상화 레벨 맞추기

      • 중복 제거, 메서드 추출

      • Optional

      • setter 사용 x, 무분별한 getter사용 대신 객체에 메세지 보내기

    • 객체의 책임과 응집도

      • IO 통합

      • 일급컬렉션

         

      • Order 객체 추출

    • 추상화 관점의 차이

      • 구현에 초점을 맞춘 추상화 / 도메인 개념에 초점을 맞춘 추상화

미션

사용자가 이용권을 선택하고 선택한 이용권에 따라서 가격을 계산하는 프로그램을 리팩토링하는 미션이었다. 추상화 레벨에 맞지 않는 부분이 있다면 메서드 추출 등으로 추상화 레벨을 맞춰주고, 객체지향 패러다임에 맞게 객체들이 상호 협력하고 있는지, SRP, DIP, 일급 컬렉션 등의 포인트로 리팩토링을 해주면 되었다.

회고

이번주는 개인적으로 회사의 프로젝트 일정과 겹쳐서 진도를 따라가는것에도 많은 어려움이 있었고, 특히 대부분의 이해 안되는 부분에서 다시 듣지 않고 강의 진행률만 신경써서 넘기는 식으로 진행되어서 많이 아쉬웠다. 다음주부터는 새로운 강의 주제로 넘어가게 되니 밸런스를 잘 맞춰서 강의를 따라잡는데 문제가 없도록 잘 신경써야 할 거 같다.

댓글을 작성해보세요.

채널톡 아이콘