본문 바로가기

도서/클린코드_#bookclub#TIL

(10)
클린 코드 #19일차 TIL (Today I Learned) 2022.03.08 📕 오늘 읽은 범위 10장. 클래스 🙂 책에서 기억하고 싶은 내용 '클래스는 작아야 한다!' (p.172) '단일 책임 원칙(Single Responsibility Principle, SRP)은 클래스나 모듈을 변경할 이유가 하나, 단 하나뿐이어야 한다는 원칙이다.' (p.175) '문제는 우리들 대다수가 프로그램이 돌아가면 일이 끝났다고 여기는 데 있다. ‘깨끗하고 체계적인 소프트웨어’라는 다음 관심사로 전환하지 않는다. 프로그램 으로 되돌아가 만능 클래스를 단일 책임 클래스 여럿으로 분리하는 대신 다음 문제로 넘어가버린다.' (p.176) '큰 함수를 작은 함수 여럿으로 쪼개다 보면 종종 작은 클래스 여럿으로 쪼갤 기회가 생긴다. 그러면서 프..
클린 코드 #16일차 TIL (Today I Learned) 2022.03.05 📕 오늘 읽은 범위 9장. 단위 테스트 🙂 책에서 기억하고 싶은 내용 TDD 법칙 세가지 (p.155) 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. '테스트 코드는 실제 코드 못지 않게 중요하다.' (p.157) FIRST F(fast): 테스트는 빨라야한다. I(independent): 각 테스트는 서로 의존하면 안된다. R(repeatable): 테스트는 어떤 환경에서도 반복 가능해야 한다. S(self-validating): 테스트는 boolean 값으로 결과를 내야한다. T(ti..
클린 코드 #14일차 TIL (Today I Learned) 2022.03.03 📕 오늘 읽은 범위 7장. 오류 처리 🙂 책에서 기억하고 싶은 내용 '오류 코드보다 예외를 사용하라' (p.130) 'Try-Catch-Finally 문부터 작성하라' (p.132) '미확인unchecked 예외를 사용하라' (p.133) '예외에 의미를 제공하라' (p.135) '호출자를 고려해 예외 클래스를 정의하라' (p.135) '정상 흐름을 정의하라' (p.137) 'null을 반환하지 마라' (p.138) 'null을 전달하지 마라' (p.140) 깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다. 이 둘은 상충하는 목표가 아니다. 오류 처리를 프로그램 논리와 분리해 독자적인 사안으로 고려하 면 튼튼하고 깨끗한 코드를 작성할 수..
클린 코드 #12일차 TIL (Today I Learned) 2022.03.01 📕 오늘 읽은 범위 6장. 객체와 자료구조 🙂 책에서 기억하고 싶은 내용 복잡한 시스템을 짜다 보면 새로운 함수가 아니라 새로운 자료 타입이 필요한 경우가 생긴다. 이때는 클래스와 객체 지향 기법이 가장 적합하다. 반면, 새로운 자료 타입이 아니라 새로운 함수가 필요한 경우도 생긴다. 이때는 절차적인 코 드와 자료 구조가 좀 더 적합하다. (p.122) 🤔 오늘 읽은 소감은? 객체는 내부 자료를 숨기고 함수를 통해 특정 기능을 수행, 자료 구조는 반대로 내부 자료를 드러내고 별다른 함수 기능을 수행하지 않는다. 책에선 객체 방식의 예로 Shape 인터페이스를 구현한 Square, Rectangle, Circle 등의 클래스들을 보여주는데 일반적으..
클린 코드 #11일차 TIL (Today I Learned) 2022.02.28 📕 오늘 읽은 범위 5장. 형식 맞추기 🙂 책에서 기억하고 싶은 내용 이름은 간단하면서도 설명이 가능하게 짓는다. 이름만 보고도 올바른 모듈을 살펴보고 있는지 아닌지를 판단 할 정도로 신경 써서 짓는다. 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명한다. 아래로 내려갈수록 의도를 세세하게 묘사한다. 마지막에는 가장 저차원 함수와 세부 내역이 나온다. (p.98) 같은 파일에 속할 정도로 밀접한 두 개념은 세로 거리로 연관성을 표현한다. 여기서 연관성이란 한 개념을 이해하는 데 다른 개념이 중요한 정도다. 연관성 이 깊은 두 개념이 멀리 떨어져 있으면 코드를 읽는 사람이 소스 파일과 클래스 를 여기저기 뒤지게 된다. (p.101) 프로그래머라..
클린 코드 #8일차 TIL (Today I Learned) 2022.02.25 📕 오늘 읽은 범위 4장. 주석 🙂 책에서 기억하고 싶은 내용 코드만이 자기가 하는 일을 진실되 게 말한다. 코드만이 정확한 정보를 제공하는 유일한 출처다. 그러므로 우리는 (간혹 필요할지라도) 주석을 가능한 줄이도록 꾸준히 노력해야 한다. (p.69) 짧은 함수는 긴 설명이 필요 없다. 짧고 한 가지만 수행하며 이름을 잘 붙인 함수 가 주석으로 헤더를 추가한 함수보다 훨씬 좋다. (p.89) 🤔 오늘 읽은 소감은? 주석은 대체로 코드를 읽는 사람에게 정보를 전달하는 목표로 작성된다. 이번 장에서는 필요한 주석과 불필요한 주석을 구분하고 줄이는 방법을 소개하고 있다. 과거에 주석은 수정된 부분을 표시하거나 버전 관리 명시용으로도 많이 쓰였지만, ..
클린 코드 #5일차 TIL (Today I Learned) 2022.02.22 📕 오늘 읽은 범위 클린코드 3장. 함수 🙂 책에서 기억하고 싶은 내용 '함수를 만드는 첫째 규칙은 ‘작게!’다. 함수를 만드는 둘째 규칙은 ‘더 작게!’다.' (p.42) ‘함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해 야 한다.' (p.44) '소프트웨어를 짜는 행위는 여느 글짓기와 비슷하다. 논문이나 기사를 작성할 때 는 먼저 생각을 기록한 후 읽기 좋게 다듬는다. 초안은 대개 서투르고 어수선하므로 원하는 대로 읽힐 때까지 말을 다듬고 문장을 고치고 문단을 정리한다.' (p.61) 🤔 오늘 읽은 소감은? 이번 장에서는 여러번 함수의 볼륨 및 기능 최소화에 초점을 두고 있고 그에 따른 가독성,기능 간의 의존성..
클린 코드 #4일차 https://nomadcoders.co/community/thread/2484 https://nomadcoders.co/community/thread/2413 https://nomadcoders.co/community/thread/2410 대다수의 참여자분들이 본인의 코딩 스타일을 되돌아 볼 수 있는 부분이었던 것 같다. 작업을 하다보면 본인이 작성한 스크립트이지만 본인도 열어보기 싫거나 시간이 지난 후 이해하는데 시간이 걸리는 일이 부지기수인데 '어쨋든 돌아가기만 하면 되지...' 라며 리팩토링 혹은 깔끔한 코드 작성 습관을 귀찮아 하는순간, 본인의 감각 또는 실력도 녹슬어 간다는 것을 항상 마음 속에 담고 있어야 겠다.