인프런 워밍업 클럽 BE 2기 - 클린코드 / 테스트코드 발자국 2주차

인프런 워밍업 클럽 BE 2기 - 클린코드 / 테스트코드 발자국 2주차

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

 

학습 내용

  • 코드 다듬기

    • 주석 적절히 사용하기

      • 자주 변하는 정보는 지양

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

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

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

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

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

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

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

    • 패키지 나누기

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

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

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

    • 기능 유지보수

    • IDE의 도움받기

      • 코드품질 : sonarlint

         

      • 포맷규칙 : .editorconfig

         

  • 리팩토링

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

      • 중복 제거, 메서드 추출

      • Optional

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

    • 객체의 책임과 응집도

      • IO 통합

      • 일급컬렉션

         

      • Order 객체 추출

    • 추상화 관점의 차이

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

미션

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

회고

미션을 진행하는 동안 가장 큰 어려움은 전체 코드의 맥락을 파악하는 것이었다. 그러다보니 변수, 메서드명 변경, 메서드 추출 등의 소심한 리팩토링 위주로 미션을 진행했다. 수강했던 강의들의 복습의 필요성을 절실히 느낄 수 있었다. 지난 강의들을 바탕으로 읽기 좋은 코드란 무엇인지 끈임없이 고민하는 자세를 가져야겠다.

댓글을 작성해보세요.

채널톡 아이콘