본문 바로가기

책 리뷰/클린코드6

클린코드 - 6장 🔖 6장 : 객체와 자료 구조읽은 날짜 : 2024.09.04지은이 : 로버트 C. 마틴출판사 : 인사이트 기억하고 싶은 내용자료 추상화변수를 private으로 선언하더라도 각 값마다 getter, setter를 제공한다면 구현을 외부로 노출하는 것이다.클래스는 추상 인터페이스를 제공해서 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있어야 한다. 자료 구조 vs 객체1. 자료 구조자료를 공개하고 아무 메서드도 제공하지 않는다.public class Square { public Point topLeft; public double side;}public class Rectangle { public Point topLeft; public double height; public doub.. 2024. 9. 4.
클린코드 - 5장 🔖 5장 : 형식 맞추기읽은 날짜 : 2024.08.29지은이 : 로버트 C. 마틴출판사 : 인사이트  기억하고 싶은 내용왜 형식을 맞춰야 하는가?코드 형식은 의사소통의 일환이다.코드는 바뀔지라도 처음 잡아놓은 구현 스타일과 가독성 수준은 사라지지 않는다.앞으로 바뀔 코드의 품질에 지대한 영향을 미친다. 소통을 원활하게 하는 코드 형식 1 : 세로 형식 맞추기1. 적절한 세로 길이일반적으로 큰 파일보다는 작은 파일이 이해하기 쉽다.엄격하게 지킬 필요는 없지만 200줄 정도가 적당하다.2. 빈 행으로 분리하기빈 행은 새로운 개념을 시작한다는 시각적 단서이다.일련의 행 묶음은 완결된 생각 하나를 표현한다. 생각 사이에는 빈 행을 넣어 분리한다.패키지 선언부, import 문, 각 함수 사이에 빈 행을 넣어.. 2024. 8. 29.
클린코드 - 4장 🔖 4장 : 주석읽은 날짜 : 2024.08.27지은이 : 로버트 C. 마틴출판사 : 인사이트 기억하고 싶은 내용주석은 나쁜 코드를 보완하지 못한다코드만으로 의도를 표현하는 것을 우선으로 해야 한다.주석이 거의 없는 코드가 복잡한 주석이 많이 달린 코드보다 좋다. 좋은 주석이란?법적인 주석 저작권, 소유권 정보, 표준 라이선스, 외부 문서 등정보를 제공하는 주석표현력 있게 코드를 작성하면 필요 없어질 수 있다.✅ 구현 의도를 설명하는 주석 인수나 반환값의 의미를 명료하게 밝히는 주석✅ 결과를 경고하는 주석 ~하지 마세요, ~해야 합니다 등✅ TODO 주석 앞으로 할 일, 필요하지만 당장 구현하기 어려운 업무 등✅ 그냥 넘어갈 수 있는 부분의 중요성을 강조하는 주석 공개 API의 Javadocs 나쁜 주.. 2024. 8. 27.
클린코드 - 3장 🔖 3장 : 함수읽은 날짜 : 2024.08.26지은이 : 로버트 C. 마틴출판사 : 인사이트 기억하고 싶은 내용의도를 분명히 표현하는 함수를 만드는 방법1. 작게 만들어라길이가 짧을수록 좋다. 2. 한 가지 일만 해라의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하는 셈이다. 3. 하나의 함수 내의 추상화 수준을 동일하게 만들어라코드는 위에서 아래로 이야기처럼 읽혀야 한다.위에서 아래로 읽을 때 추상화 수준이 한 번에 한 단계씩 낮아지면 읽기 쉬워진다. 4. Switch 문을 추상 팩토리에 숨겨라각 case 조건에 대한 구현을 캡슐화하고, 이를 추상 팩토리를 사용하여 동적으로 선택할 수 있도록 한다. 5. 서술적인 이름을 사용해라길고 서술적인 이름이 짧고 어려운 이름보다 .. 2024. 8. 26.
클린코드 - 2장 🔖 2장 : 의미 있는 이름읽은 날짜 : 2024.08.19지은이 : 로버트 C. 마틴출판사 : 인사이트 기억하고 싶은 내용이름을 잘 짓는 방법1. 의도를 분명하게 밝히기변수, 함수, 클래스 이름으로 존재 이유, 수행 기능, 사용 방법을 드러낼 수 있어야 한다.따로 주석이 필요하다면 의도가 분명하게 드러나지 않은 것이다.코드 맥락이 코드 자체에 명시적으로 드러나야 한다.// Badint d; // 경과 시간(단위: 날짜)// Goodint daysSinceCreation;int daysSinceMotdification; 2. 코드 의미를 흐리는 잘못된 정보를 남기지 않기널리 쓰이는 의미 있는 단어를 다른 의미로 사용하면 안 된다.컨테이너 유형을 이름에 넣지 않는 것이 좋다.accountList ➡️ .. 2024. 8. 19.
클린코드 - 1장 🔖 1장 : 깨끗한 코드읽은 날짜 : 2024.08.14지은이 : 로버트 C. 마틴출판사 : 인사이트 기억하고 싶은 내용나쁜 코드로 치르는 대가나쁜 코드가 쌓일수록 팀의 생산성은 떨어진다.나쁜 코드는 프로젝트 초반에는 빠르게 진도를 나가다가 점차 느려진다.생산성이 떨어지면 관리자는 새 인력을 투입하고, 새 인력과 팀은 생산성을 높여야 한다는 압박에 더욱 시달린다.결과적으로 나쁜 코드를 더 많이 양산한다.전문가 답지 못한 태도다.관리자가 일정에 쫓기게 만들고 고객과 마케팅 부서가 무리한 요구사항을 내놓았다고 해도, 결국 프로젝트 실패는 전문가답지 못한 프로그래머의 책임이 크다.그들에게 그들의 책임이 있듯이, 프로그래머에게는 좋은 코드를 사수할 책임이 있다.빨리 가는 유일한 방법은, 언제나 코드를 최대한 .. 2024. 8. 14.