본문 바로가기
반응형

독서/클린코드_노개북36

[노개북] 클린코드 37일차 - 노마드 코더 😀 책에서 기억하고 싶은 내용을 써보세요. 추이적 탐색을 피하라(395p) 일반적으로 한 모듈은 주변 모듈을 모를수록 좋다. => A가 B를 사용하고 B가 C를 사용한다 하더라도 A가 C를 알아야 할 필요는 없다는 뜻이다. 디미터의 법칙이라 부른다. 내가 아는 모듈이 연이어 자신이 아는 모듈을 따라가며 시스템 전체를 휘저을 필요가 없다는 의미다. 서술적인 이름을 사용하라(399p) 이름은 성급하게 정하지 않는다. 소프트웨어 가독성의 90%는 이름이 결정한다. => 시간을 들여 현명한 이름을 선택하고 유효한 상태로 유지한다. 신중하게 선택한 이름을 보고 독자는 모듈 내 다른 함수가 하는 일을 짐작한다. 적절한 추상화 수준에서 이름을 선택하라(401p) 구현을 드러내는 이름은 피하라. 작업 대상 클래스나 함.. 2022. 3. 2.
[노개북] 클린코드 36일차 - 노마드 코더 😀 책에서 기억하고 싶은 내용을 써보세요. 알고리즘을 이해하라(383p) 알고리즘을 안다고 생각하지만 실제는 코드가 '돌아갈' 때까지 이리저리 찔러보고 굴려본다. '돌아간다'는 사실은 어떻게 아느냐고? 생각할 수 있는 테스트 케이스를 모두 통과하니까. * 이 방식이 틀렸다는 말이 아니다. 구현이 끝났다고 선언하기 전에 함수가 돌아가는 방식을 확실히 이해하는지 확인하라. => 테스트 케이스를 모두 통과한다는 사실만으로 부족하다. 알고리즘이 올바르다는 사실을 확인하고 이해하려면 기능이 뻔히 보일 정도로 함수를 깔끔하고 명확하게 재구성하는 방법이 최고다. if/Else 혹은 Switch/Case 문보다 다형성을 사용하라(385p) 대다수 개발자가 switch 문을 사용하는 이유는 그 상황에서 가장 올바른 선택.. 2022. 3. 2.
[노개북] 클린코드 35일차 - 노마드 코더 😀 책에서 기억하고 싶은 내용을 써보세요. 주석(368p) 부적절한 정보 => 일반적으로 작성자, 최종 수정일, SPR(Software Problem Report)번호 등과 같은 메타 정보만 주석 사용 => 주석은 코드와 설계에 기술적인 설명을 부연하는 수단이다. 주석 처리된 코드 => 누군가에게 필요하거나 다른 사람이 사용할 코드라 생각해 아무도 삭제하지 않는다. => 주석으로 남겨진 코드는 그 자리에 남아 매일매일 낡아간다. => 주석으로 처리된 코드를 발견하면 즉각 지워버려라! 일반(371p) 한 소스 파일에 여러 언어를 사용한다. => 이상적으로는 소스 파일 하나에 언어 하나만 사용하는 방식이 가장 좋다. * 혼란스럽고 조잡하다. 경계를 올바로 처리하지 않는다. => 스스로의 직관에 의존하지 마라.. 2022. 3. 2.
[노개북] 클린코드 34일차 - 노마드 코더 😀 책에서 기억하고 싶은 내용을 써보세요. 불필요한 주석은 거짓말과 잘못된 정보가 쌓이기 좋은 곳이다. 일반적으로 기반 클래스(base class, 부모 클래스)는 파생 클래스(derivative, 자식 클래스)를 몰라야 바람직하다. ABSTRACT FACTORY 패턴을 적용 추상 메서드로 위임하는 정적 메서드는 SINGLETON, DECORATOR, ABSTRACT FACTORY 패턴 조합을 사용한다. 보이스카우트 규칙 다음 사람은 우리보다 코드를 좀 더 쉽게 이해하리라. 그래서 보다 코드를 좀 더 쉽게 개선하리라. 🤔 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요. 너무 사소한 코드는 테스트할 필요가 없다. 이전 프로젝트에서 코드 커버리지를 채우는 데에만 급급했었던 경험이 있습니다. => 중요.. 2022. 3. 1.
[노개북] 클린코드 33일차 - 노마드 코더 😀 책에서 기억하고 싶은 내용을 써보세요. 코드를 리팩터링 하다 보면 원래 했던 변경을 되돌리는 경우가 흔하다. => 리팩터링은 코드가 어느 수준에 이를 때까지 수많은 시행착오를 반복하는 작업이기 때문이다. 세상에 개선이 불필요한 모듈은 없다. 코드를 처음보다 조금 더 깨끗하게 만드는 책임은 우리 모두에게 있다. 🤔 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요. 처음 장에서 저자가 얘기했던 지켜야 할 규칙들을 바탕으로 리팩터링 하는 파트였습니다. => 이미 깨끗한 코드도 리팩터링할 것이 있다는 것을 알게 되었습니다. => 코드를 더욱 깨끗하게 만들어가는 과정은 진짜 장인들의 모습과도 같다고 느꼈습니다. 클린코드를 읽으면서 매번 느끼지만 내가 작성한 코드를 꼭 둘러보면서 리팩터링 해야겠다고 느꼈습.. 2022. 2. 26.
[노개북] 클린코드 32일차 - 노마드 코더 😀 책에서 기억하고 싶은 내용을 써보세요. public String compact(String message) { if (shouldNotCompact()) return Assert.format(message, expected, actual); findCommonPrefix(); ... } private boolean shouldNotCompact() { return expected == null || actual == null || areStringsEqual(); } 의도를 명확히 표현하려면 조건문을 캡슐화해야 한다. 조건문을 메서드로 뽑아내 적잘한 이름을 붙인다. public String compact(String message) { if (canBeCompacted()) { findCommonPr.. 2022. 2. 25.