본문 바로가기

독서/노개북9

[노개북 #8] 클린 코드 TIL_DAY 20 📚 오늘 읽은 범위: 10장 클래스 📖 책에서 기억하고 싶은 내용을 써보세요. • 클래스를 만들 때 첫 번째 규칙은 크기다. 클래스는 작아야 한다. 두 번째 규칙도 크기다. 더 작아야 한다. (p.172) • 클래스 이름은 해당 클래스 책임을 기술해야 한다. 실제로 작명은 클래스 크기를 줄이는 첫 번째 관문이다. 간결한 이름이 떠오르지 않는다면 필경 클래스 크기가 너무 커서 그렇다. 클래스 이름이 모호하다면 필경 클래스 책임이 너무 많아서다. (p.175) • 단일 책임 원칙(Single Responsibility Principle)은 클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다는 원칙이다. SRP는 '책임'이라는 개념을 정의하며 적절한 클래스 크기를 제시한다. 클래스는 책임, 즉 변경할 .. 2022. 5. 11.
[노개북 #7] 클린 코드 TIL_DAY 14 📚 오늘 읽은 범위: 7장 오류 처리 📖 책에서 기억하고 싶은 내용을 써보세요. • 깨끗한 코드와 오류 처리는 확실히 연관성이 있다. 상당수 코드 기반은 전적으로 오류 처리 코드에 좌우된다. (p.130) • 오류 코드보다 예외를 사용하라 (p.130) • Try-Catch-Finally문부터 작성하라 (p.132) • 예외에 의미를 제공하라. 오류 메시지에 정보를 담아 예외와 함게 던진다. (p.135) • 외부 API를 사용할 때는 감싸기 기법이 최선이다. 외부 API를 감싸면 외부 라이브러리와 프로그램 사이에서 의존성이 크게 줄어든다. 나중에 다른 라이브러리로 갈아타도 비용이 적다. 또한 감싸기 클래스에서 외부 API를 호출하는 대신 테스트 코드를 넣어주는 방법으로 프로그램을 테스트하기도 쉬워진다... 2022. 5. 5.
[노개북 #6] 클린 코드 TIL_DAY 12 📚 오늘 읽은 범위: 6장 객체와 자료구조 📖 책에서 기억하고 싶은 내용을 써보세요. • 객체는 추상화 뒤로 자료를 숨긴 채 자료를 다루는 함수만 공개한다. 자료 구조는 자료를 그대로 공개하며 별다른 함수를 제공하지 않는다. (p.119) • (자료 구조를 사용하는) 절차적인 코드는 기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉽다. 반면, 객체 지향 코드는 기존 함수를 변경하지 않으면서 새 클래스를 추가하기 쉽다. (p.122) • 디미터 법칙은 잘 알려진 휴리스틱으로, 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다는 법칙이다. (p.123) 🙇‍♂️ 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요. • 코드를 짜는 목적에 맞추어 객체와 자료 구조 중 작성법을 선택해야할 것 같다... 2022. 5. 3.
[노개북 #5] 클린 코드 TIL_DAY 11 📚 오늘 읽은 범위: 5장 형식 맞추기 📖 책에서 기억하고 싶은 내용을 써보세요. • 코드 형식은 의사소통의 일환이다. 의사소통은 전문 개발자의 일차적인 의무이다. (p.96) • 소스 파일도 신문 기사와 비슷하게 작성한다. 이름은 간단하면서도 설명이 가능하게 짓는다. 이름만 보고도 올바른 모듈을 살펴보고 있는지 아닌지를 판단할 정도로 신경 써서 짓는다. 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명한다. 아래로 내려갈수록 의도를 세세하게 묘사한다. 마지막에는 가장 저차원 함수와 세부 내역이 나온다. (p.98) • 거의 모든 코드는 왼쪽에서 오른쪽으로 그리고 위에서 아래로 읽힌다. 각 행은 수식이나 저을 나타내고, 일련의 행 묶음은 완결된 생각 하나를 표현한다. 생각 사이는 빈 행을 넣어 분리해야.. 2022. 5. 2.
[노개북 #4] 클린 코드 TIL_DAY 5 📚 오늘 읽은 범위: 4장 주석 📖 책에서 기억하고 싶은 내용을 써보세요. • 사실상 주식은 기껏해야 필요악이다... 우리는 코드로 의도를 표현하지 못해, 그러니까 실패를 만회하기 위해 주석을 사용한다. (p.68) • 좋은 주석 (p.70~75) - 법적인 주석: 때로는 회사가 정립한 구현 표준에 맞춰 법적인 이유로 특정 주석을 넣으라고 명시한다. - 의도를 설명하는 주석: 때때로 주석은 구현을 이해하게 도와주는 선을 넘어 결정에 깔린 의도까지 설명한다. - 의미를 명료하게 밝히는 주석: 때때로 모호한 인수나 반환값은 그 의미를 읽기 좋게 표현하면 이해하기 쉬워진다. - 결과를 경고하는 주석: 때로 다른 프로그래머에게 결과를 경고할 목적으로 주석을 사용한다. - TODO 주석: 때로는 '앞으로 할 일'.. 2022. 4. 28.
[노개북 #3] 클린 코드 TIL_DAY 4 📚 오늘 읽은 범위: 3장 함수 📖 책에서 기억하고 싶은 내용을 써보세요. • 함수를 만드는 첫째 규칙은 '작게!'다. 함수를 만드는 둘째 규칙은 '더 작게!'다. (p.42) • 함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다. (p.44) • 함수가 확실히 '한 가지' 작업만 하려면 함수 내 모든 문장의 추상화 수준이 동일해야 한다. (p.45) • 서술적인 이름을 사용하라! 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 되겠다. (p.49) • 함수에서 이상적인 인수 개수는 0개다. 다음은 1개고, 다음은 2개다. 3개는 가능한 피하는 편이 좋다. 4개 이상은 특별한 이유가 필요하다. (p.50) • 명령과 조회를 분리하라!.. 2022. 4. 27.
[노개북 #3] 클린 코드 TIL_DAY 3 📚 오늘 읽은 범위: 2장 의미 있는 이름 📖 책에서 기억하고 싶은 내용을 써보세요. • "의도가 분명하게 이름을 지으라"고 말하기는 쉽다. 여기서는 의도가 분명한 이름이 정말로 중요하다는 사실을 거듭 강조한다. 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. (p.22) • 프로그래머는 코드에 그릇된 단서를 남겨서는 안 된다. 그릇된 단서는 코드 의미를 흐린다. (p.24) • 독자가 코드를 읽으면서 변수 이름을 자신이 아는 이름으로 변환해야 한다면 그 변수 이름은 바람직하지 못하다. 이는 일반적으로 문제 영역이나 해법 영역에서 사용하지 않는 이름을 선택했기 때문에 생기는 문제다. (p.31) • 우수한 프로그래머와 설계자라면 해법 영역과 문제 영역을 구분할 줄 알아.. 2022. 4. 24.
[노개북 #2] 클린 코드 TIL_DAY 2 📚 오늘 읽은 범위: 시작 ~ 1장 깨끗한 코드 📖 책에서 기억하고 싶은 내용을 써보세요. • 사소한 곳에서 발휘하는 정직은 사소하지 않다 - 제임스 O. 코플리엔의 추천사 中 (p.xxii) • 회사가 망한 원인은 바로 나쁜 코드 탓이었다. (p.4) • 1847년에 이그너츠 세멀바이스가 의사들에게 손을 씻으라고 권장했을 때 의사들은 환자를 보느라 너무 바쁘므로 환자 방문 사이에 손 씻을 시간이 없다는 이유로 거부했다. (p.7) • 나쁜 코드를 양산하면 기한을 맞추지 못한다. 오히려 엉망진창인 상태로 인해 속도가 곧바로 늦어지고, 결국 기한을 놓친다. 기한을 맞추는 유일한 방법은, 그러니깐 빨리 가는 유일한 방법은, 언제나 코드를 최대한 개끗하게 유지하는 습관이다. (p. 7) • 코드를 읽는 시간 .. 2022. 4. 23.
[노개북 #1] 클린 코드 TIL_DAY 1 📚 오늘 읽은 범위: 책 구매 인증 2022. 4. 22.
반응형