책/CleanCode

    CleanCode - 17.냄새와 휴리스틱

    휴리스틱 불충분한 시간이나 정보로 인해 합리적인 판단을 할 수 없거나, 체계적이면서 합리적인 판단이 굳이 필요하지 않은 상황에서 사람들이 빠르게 사용할 수 있도록 보다 용이하게 구성된 간편 추론의 방법 문제의 답을 경험 법칙, 경험에 의한 추측, 직관적 판단, 상식, 시행착오 등의 방법을 사용하여 구하는 것 알고리즘 (논리적 해답) 여기서 나쁜 냄새가 난다 주석 (Comment) C1 - 부적절한 정보 다른 시스템에 저장할 정보는 주석으로 작성하지 말자 주석은 코드와 설계에 기술적인 설명을 부연하는 수단 C2 - 쓸모 없는 주석 오래되거나 엉뚱하거나, 잘못된 주석은 과감하게 버리고, 재빨리 삭제하자 C3 - 중복된 주석 클린코드 앞서서도 언급한 것처럼 주석이 아닌 코드로 표현하려고 노력하는 것이 좋다. ..

    CleanCode - Chapter 11. System

    서론 : 도시 만들기 거대한 도시가 돌아가는 이유 : 각각의 전원, 교통 등이 모듈로 모듈화되어 관리 / 일정 수준의 추상화를 통해 큰 도시 전체에 대한 이해 없이 개인과 개인이 관리하는 구성요소를 통해 효율적으로 동작 SW = 하나의 도시 - 하나의 도시의 모듈화만큼의 추상화를 이루지 못하는 것이 클린코드답지 못한 문제 낮은 단계의 추상화를 통해 관심사(Concern)을 분리하고 높은 추상화 수준(시스템 수준)에서도 클린 코드를 유지해보자 # 시스템의 생성(제작)과 사용을 분리 public Service getService() { if (service == null) service = new MyServiceImpl(...); // Good enough default for most cases? ret..

    Clean Code - #6 객체와 자료 구조

    우리는 남들이 변수에 의존하지 않기 위해 변수를 비공개로 정의한다. (private) 그런데 왜 getter와 setter 를 당연히 public 으로 외부에 노출할까? 먼저 객체와 자료구조의 특징을 살펴보자 객체 동작을 공개하고 자료를 숨긴다. 기존 동작을 변경하지 않으면서 새 객체 타입을 추가하기 쉬운 반면, 기존 객체의 새 동작을 추가하기는 어렵다. 자료 구조 별다른 동작 없이 자료를 노출 기존 자료구조에 새 동작을 추가하기는 쉬우나, 기존 함수에 새로운 자료 구조를 추가하기는 어렵다. 우리는 사용자가 내부 구현 구조를 모른 채, 필요한 자료의 핵심만 조작할 수 있도록 클래스를 설계해야한다. 자료 추상화 객체의 변수 사이에 메서드를 넣는다고 구현을 외부로 숨길 수는 없다. 구현을 감추기 위해서는 추..