[워밍업 클럽 2기 BE 클린코드&테스트] 발자국 1주차 회고
인프런 1주차가 끝났다. 강의 수강과 과제를 제때제 하지 못해서 100% 얻어 가지 못하는 것 같아 속상하지만..!2주차는 1주차 보다 더 열심히 해보고자 한다! (더 이해하고, 기록하고, 나만의 언어로 설명하기) 강의를 들으며 기억에 남았던 부분을 정리하며 마무리해보려고 한다. 추상 (抽象)도메인 용어 정리의 필요성새 프로젝트를 시작하기 이전에 팀원들과 코드컨벤션을 정해본 경험이 있었다. 도메인 용어같은 경우에는 눈치껏 기존 프로젝트에 따라서 사용하고 있었는데 정리하고 시작한다면 모두에게 도움이 될것 같다. 메서드 선언부메서드 시그니처 : 메서드명 + 파라미터 파라미터의 타입, 개수, 순서를 통해 의미를 전달할 수 있다는 점을 기억하자. 추상화 레벨하나의 세계 안에서는, 추상화 레벨이 동등해야 한다."서점의 책들 사이에 책 제목이 없는 문서 뭉치가 껴있다". 라는 강사님의 비유가 인상적 이였다.추상화 레벨이 맞지 않는다면 읽는 사람은 고민을 하게 될 것이다. 논리, 사고의 흐름Early returnvoid일 경우에는 early return 할 생각을 못하고 있었는데 코드를 이해하기에 return 이 있는 편이 좋겠다. Optional을 해소하는 방법분기문을 만드는 isPresent()-get() 대신 풍부한 api를 사용하자.orElseGet(), orElseThrow(), ifPresent(), ifPresentOrElse() 객체 지향 패러다임객체를 만드는 처음부터 getter, setter을 만들지 말아라. SOLID SRP 단일책임원칙 : 이 객체가 하나의 책임만을 가지고 있는지 질문을 던져야 한다.OCP: 확장에는 열려있고, 수정에는 닫혀있다. =>새로운 기능 또는 요구사항이 생겼을때 기존 코드가 과도하게 변경 된다면 OCP 를 지키지 못한것이다.LSP :상속 구조에서, 부모 클래스의 인스턴스를 자식 클래스의 인스턴스로 치환할 수 있어야 한다.ISP : 자신이 사용하지 않는 인터페이스에 의존하면 안된다. => 인터페이스를 잘게 쪼개라!DIP : 의존성 역전 원칙 어려운 이론이지만 코드를 통해서 설명해 주셔서 이해하기 편했다. ++ 더 듣고 추가 예정 이번 강의를 들으면서 내가 작성했던 코드를 어떻게 더 읽기 좋은 코드로 만들어어야 할지 알게 되었고, 동료들이 작성했던 코드도 더 이해 할수 있게 되었다. 2주차도 화이팅! 강의 : Readable Code: 읽기 좋은 코드를 작성하는 사고법 (박우빈)