[워밍업 클럽 2기 BE 클린코드&테스트] 발자국 1주차 회고

[워밍업 클럽 2기 BE 클린코드&테스트] 발자국 1주차 회고

인프런 1주차가 끝났다.

 

강의 수강과 과제를 제때제 하지 못해서 100% 얻어 가지 못하는 것 같아 속상하지만..!

2주차는 1주차 보다 더 열심히 해보고자 한다! (더 이해하고, 기록하고, 나만의 언어로 설명하기)

 

강의를 들으며 기억에 남았던 부분을 정리하며 마무리해보려고 한다.

 

추상 (抽象)

도메인 용어 정리의 필요성

새 프로젝트를 시작하기 이전에 팀원들과 코드컨벤션을 정해본 경험이 있었다. 도메인 용어같은 경우에는 눈치껏 기존 프로젝트에 따라서 사용하고 있었는데 정리하고 시작한다면 모두에게 도움이 될것 같다.

 

메서드 선언부

메서드 시그니처 : 메서드명 + 파라미터 

파라미터의 타입, 개수, 순서를 통해 의미를 전달할 수 있다는 점을 기억하자.

 

추상화 레벨

하나의 세계 안에서는, 추상화 레벨이 동등해야 한다.

"서점의 책들 사이에 책 제목이 없는 문서 뭉치가 껴있다". 라는 강사님의 비유가 인상적 이였다.

추상화 레벨이 맞지 않는다면 읽는 사람은 고민을 하게 될 것이다.

 

논리, 사고의 흐름

Early return

void일 경우에는 early return 할 생각을 못하고 있었는데 코드를 이해하기에 return 이 있는 편이 좋겠다.

 

Optional을 해소하는 방법

분기문을 만드는 isPresent()-get() 대신 풍부한 api를 사용하자.

orElseGet(), orElseThrow(), ifPresent(), ifPresentOrElse()

 

객체 지향 패러다임

  • 객체를 만드는 처음부터 getter, setter을 만들지 말아라.

     

  • SOLID

     

    1. SRP 단일책임원칙 : 이 객체가 하나의 책임만을 가지고 있는지 질문을 던져야 한다.

    2. OCP: 확장에는 열려있고, 수정에는 닫혀있다. =>

      새로운 기능 또는 요구사항이 생겼을때 기존 코드가 과도하게 변경 된다면 OCP 를 지키지 못한것이다.

    3. LSP :상속 구조에서, 부모 클래스의 인스턴스를 자식 클래스의 인스턴스로 치환할 수 있어야 한다.

    4. ISP : 자신이 사용하지 않는 인터페이스에 의존하면 안된다.

       

      => 인터페이스를 잘게 쪼개라!

    5. DIP : 의존성 역전 원칙

     

     

     

    어려운 이론이지만 코드를 통해서 설명해 주셔서 이해하기 편했다.

 

++ 더 듣고 추가 예정

 

이번 강의를 들으면서 내가 작성했던 코드를 어떻게 더 읽기 좋은 코드로 만들어어야 할지 알게 되었고, 동료들이 작성했던 코드도 더 이해 할수 있게 되었다.

 

2주차도 화이팅!

 

 

 

강의 : Readable Code: 읽기 좋은 코드를 작성하는 사고법 (박우빈)


 

 

 

 

 

 

댓글을 작성해보세요.

채널톡 아이콘