반응형

노마드북클럽/클린코드 21

(외전) 📚 17장. 냄새와 휴리스틱

오늘 TIL 3줄 요약 규칙만 따른다고 깨끗한 코드가 얻어지지 않는다 휴리스틱 목록을 익힌다고 소프트웨어 장인이 되지는 못한다 전문가 정신과 장인 정신은 가치에서 나온다 TIL (Today I Learned) 2022.03.25 오늘 읽은 범위 17장. 냄새와 휴리스틱 책에서 기억하고 싶은 내용을 써보세요. 주석 C1: 부적절한 정보 C2: 쓸모 없는 주석 C3: 중복된 주석 C4: 성의 없는 주석 C5: 주석 처리된 코드 환경 E1: 여러 단계로 빌드해야 한다 E2: 여러 단계로 테스트해야 한다 함수 F1: 너무 많은 인수 F2: 출력 인수 F3: 플래그 인수 F4: 죽은 함수 일반 G1: 한 소스 파일에 여러 언어를 사용한다 G2: 당연한 동작을 구현하지 않는다 G3: 경계를 올바로 처리하지 않는다 ..

(외전) 📚 16장. SerialDate 리팩터링

TIL (Today I Learned) 2022.03.24 오늘 읽은 범위 16장. SerialDate 리팩터링 책에서 기억하고 싶은 내용을 써보세요. 설명이 부실한 주석은 코드만 복잡하게 만든다. (p.356) 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요 미래에 누군가가 내가 짠 코드를 손봐준다면? 그것도 장인(?)급이? 영광일세... 껄껄 이건 예시라서 코드를 잘 살펴봐야 할 것 같다. 궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요. 🙈

(외전) 📚 15장. JUnit 들여다보기

오늘 TIL 3줄 요약 중복을 제거하자 캡슐화하자 리팩터링은 수많은 시행착오를 반복하는 작업이다 TIL (Today I Learned) 2022.03.21 오늘 읽은 범위 15장. JUnit 들여다보기 책에서 기억하고 싶은 내용을 써보세요. JUnit은 자바 프레임워크 중에서 가장 유명하다. (p.324) 의도를 명확히 표현하려면 조건문을 캡슐화해야 한다. (p.331) 코드를 리팩터링 하다 보면 원래 했던 변경을 되돌리는 경우가 흔하다. 리팩터링은 코드가 어느 수준에 이를때까지 수많은 시행착오를 반복하는 작업이기 때문이다. (p.341) 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요 계속 같은 이야기다. 예시가 JUnit일 뿐이다. 나중에 다시 돌아와서 내가 써놓은거 보면 웃길것 같다 🐣 궁금한..

(외전) 📚 14장. 점진적인 개선

오늘 TIL 3줄 요약 깨끗한 코드는 지저분한 코드를 정리해야 얻을 수 있다. 단계적으로 변경하고 매번 테스트를 통과해야 한다. 그저 돌아가는 코드만으로는 부족하다. TIL (Today I Learned) 2022.03.18 오늘 읽은 범위 14장. 점진적인 개선 책에서 기억하고 싶은 내용을 써보세요. 깨끗한 코드를 짜려면 먼저 지저분한 코드를 짠 뒤에 정리해야 한다. (p.254) 테스트 주도 개발(Test-Driven Development, TDD)는 언제 어느 때라도 시스템이 돌아가야 한다는 원칙을 따른다. 다시 말해, TDD는 시스템을 망가뜨리는 변경을 허용하지 않는다. 변경을 가한 후에도 시스템이 변경 전과 똑같이 돌아가야 한다는 말이다. (p.270) 테스트 케이스가 하나라도 실패하면 다음 변..

(외전) 📚 13장. 동시성

오늘 TIL 3줄 요약 동시성은 결합(coupling)을 없애는 전략이다. 동시성 오류를 일으키는 잠정적인 원인을 철저히 이해해야 한다. 어떻게든 문제는 생긴다. 일회성이라고 치부하지 말자. TIL (Today I Learned) 2022.03.15 오늘 읽은 범위 13장. 동시성 책에서 기억하고 싶은 내용을 써보세요. 권장사항 동시성 코드는 다른 코드와 분리하라 (p.230) 자료를 캡슐화(encapsulation)하라. 공유 자료를 최대한 줄여라. (p.231) 독자적인 스레드로, 가능하면 다른 프로세서에서, 돌려도 괜찮도록 자료를 독립적인 단위로 분할하라. (p.232) 언어가 제공하는 클래스를 검토하라. 자바에서는 java.util.concurrent, java.util.concurrent.ato..

(외전) 📚 12장. 창발성

오늘 TIL 3줄 요약 모든 테스트를 실행하라 중복을 없애라 프로그래머 의도를 표현하라 클래스와 메서드 수를 최소로 줄여라 TIL (Today I Learned) 2022.03.14 오늘 읽은 범위 12장. 창발성 책에서 기억하고 싶은 내용을 써보세요. 단순한 설계 규칙 1: 모든 테스트를 실행하라 무엇보다 먼저, 설계는 의도한 대로 돌아가는 시스템을 내놓아야 한다. (p.216) 테스트 케이스를 많이 작성할수록 개발자는 DIP(Dependency Inversion Principle, 의존 관계 역전 원칙)와 같은 원칙을 적용하고 의존성 주입(Dependency Injection), 인터페이스, 추상화 등과 같은 도구를 사용해 결합도를 낮춘다. 따라서 설계 품질은 더욱 높아진다. (p.217) 놀랍게도 ..

(외전) 📚 11장. 시스템

오늘 TIL 3줄 요약 시스템 역시 깨끗해야 한다. 모든 추상화 단계에서 의도는 명확히 표현해야 한다. 그러려면 POJO를 작성하고 관심사를 분리해야 한다. TIL (Today I Learned) 2022.03.14 오늘 읽은 범위 11장. 시스템 책에서 기억하고 싶은 내용을 써보세요. 군락은 마을로, 마을은 도시로 성장한다. 처음에는 좁거나 사실상 없던 길이 포장되며 점차 넓어진다. 작은 건물과 공터는 큰 건물로 채워지고 결국 곳곳에 고층 건물이 들어선다. (p.199) '처음부터 올바르게' 시스템을 만들 수 있다는 믿음은 미신이다. 대신에 우리는 오늘 주어진 사용자 스토리에 맞춰 시스템을 구현해야 한다. 내일은 새로운 스토리에 맞춰 시스템을 조정하고 확장하면 된다. 이것이 반복적이고 점진적인 애자일 ..

📚 10장. 클래스

오늘 TIL 3줄 요약 클래스의 크기는 작을수록 좋다. 클래스나 모듈을 변경할 이유는 하나, 단 하나뿐이어야 한다. 클래스는 확장에 개방적이고 수정에 폐쇄적이어야 한다. TIL (Today I Learned) 2022.03.08 오늘 읽은 범위 10장. 클래스 책에서 기억하고 싶은 내용을 써보세요. 캡슐화를 풀어주는 결정은 언제나 최후의 수단이다. (p.172) 클래스를 만들 때 첫 번째 규칙은 크기다. 클래스는 작아야 한다. 두 번째 규칙도 크기다. 더 작아야 한다. (p.172) 클래스 설명은 만일("if"), 그리고("and"), -(하)며("or"), 하지만("but")을 사용하지 않고서 25단어 내외로 가능해야 한다. (p.175) 단일 책임 원칙(Single Responsibility Prin..

📚 9장. 단위 테스트

오늘 TIL 3줄 요약 테스트 코드도 중요하다. 깨끗한 테스트 코드? 가독성, 가독성, 가독성 테스트 코드는 지속적으로 깨끗하게 관리하자. TIL (Today I Learned) 2022.03.05 오늘 읽은 범위 9장. 단위 테스트 책에서 기억하고 싶은 내용을 써보세요. 테스트 코드는 실제 코드 못지 않게 중요하다. (p.157) 코드에 유연성, 유지보수성, 재사용성을 제공하는 버팀목이 바로 단위 테스트다. (p.157) 깨끗한 테스트 코드를 만들려면? 세 가지가 필요하다. 가독성, 가독성, 가독성. (p.158) 규칙은 "개념 당 assert 문 수를 최소로 줄여라"와 "테스트 함수 하나는 개념 하나만 테스트하라"라 하겠다. (p.167) F.I.R.S.T (p.168~169) Fast: 테스트는 빨..

반응형