변수를 비공개로 정의하는 이유는? 남들이 변수에 의존하지 않게 만들고 싶어서이다. 충동, 변덕 등으로 변수 타입이나 구현을 마음대로 바꾸고 싶어서이다. 그렇다면 왜 많은 프로그래머는 조회/수정 함수를 당연하게 public 공개 함수를 통해 비공개 변수를 외부에 노출할까? 자료 추상화 첫번째 예제 2차원 점을 표현하는 두 클래스를 비교해보자. 하나는 구현을 외부에 노출하고, 하나는 구현을 완전히 숨긴다. class Point { var x: Double = 0.0 var y: Double = 0.0 } --- interface Point { fun getX(): Double fun getY(): Double fun setCartesian(x: Double, y: Double) fun getR(): Doub..
코드를 딱 열었을 때 코드가 깔끔하고 일관적이며 꼼꼼하다고 감탄하며 질서정연하다고 탄복하며 모듈을 읽으며 두눈이 휘둥그래지는 전문가가 잤다는 인상을 심어주는 코드가 되었으면 좋겠다. 코드가 술에 취해 짜놓은 듯 어수선해 보인다면 프로젝트의 다른 측면도 똑같이 무성의한 태도로 처리했을거라 생각할 것이다. 프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야한다. 코드 형식을 맞추기 위해 간단한 규칙을 정하고 그 규칙을 따라야 한다. 팀이라면 팀이 합의하여 규칙을 정하고 그 규칙을 모두가 따라야 한다. 규칙을 자동으로 적용하는 도구도 활용한다. 코드 형식은 중요하다. 적절한 행 길이를 유지하라 (세로 형식 맞추기) 대부분의 자바 소스 파일의 크기는 어느 정도일까? JUnit, FitNesses, Time and..

주석 나쁜 코드에 주석을 달지 마라. 새로 짜라. 주석은 필요악이다. 우리는 코드로 의도를 표현하지 못해서, 그러니깐 실패를 만회하기 위해 주석을 사용하는 것이다. 주석은 언제나 실패를 의미한다. 주석 없이는 코드로 자신을 표현할 방법을 찾지 못해 할 수 없이 주석을 사용한다. 따라서 주석은 반겨 맞을 것이 아니다. 주석을 엄격하게 관리해야 한다고도 한다. 그 의견도 맞지만, 코드를 깔끔하게 정리하고 표현력을 강화하는 방향으로, 그래서 애초에 주석이 필요없는 방향으로 에너지를 쏟아야 한다. 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. 부정확한 주석은 독자를 현혹하고 오도한다. 진실은 한곳에만 존재한다. 그것이 바로 코드다. 코드만이 자기가 하는일을 진실되게 말한다. 코드만이 정확한 정보를 제공하..
참고사항 이 책의 저자는 객체지향 기본 설계 원칙(SOLID)를 정의한 사람이다. "이 책에서의 교훈이 절대적인 진리"다. 라고 저자는 말한다. (오브젝트 진영에서) 1장. 깨끗한 코드 프로그래밍이란, 기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업이다. 따라서 코드를 자동으로 생성하는 시대가 다가오면서 프로그래머가 필요 없어질 것이란 말은 헛소리이다. 요구사항을 애매모하게 줘도 우리의 의도를 정확히 꽤뚫어 프로그램을 완벽하게 실행하는 기계는 불가능하다. 궁극적으로 코드는 요구사항을 표현하는 언어이다. 나쁜 코드를 짜는 이유는 상사의 기한에 대한 쪼임, 업무에 대한 지겨움, 업무가 밀려서 등등 다양한 이유가 있다. 하지만 이러한 코드로 인해 얽히고 설킨 코드를 '해독'해서 코드를 더해가야 하며 이..
- Total
- Today
- Yesterday