코드가 사라질 것이라 말하는 사람들이 있다. 하지만 이 책은 코드는 항상 존재할 것이라 말한다. 궁극적으로 코드는 요구사항을 표현하는 언어이다. 요구사항에 더욱 가까운 언어를 만들 수도 있고, 요구사항에서 정형 구조를 뽑아내는 도구를 만들 수도 있다. 하지만 어느 순
"의도가 분명하게 이름을 지으라" 고 말하기는 쉽다. 여기서는 의도가 분명한 이름이 정말로 중요하다는 사실을 거듭 강조한다. 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. 이름 d는 아무 의미도 드러내지 않는다. 경과시간이나 날짜
함수를 만드는 첫째 규칙은 '작게!'다. 함수를 만드는 둘째 규칙은 '더 작게!'다. 이 규칙은 근거를 대기가 곤란하다. 그러나 저자는 오랜 시행착오를 바탕으로 작은 함수가 좋다고 확신한다. 더 짧게, 더 더 짧게,만들수록 좋다고 저자는 설명한다. 다시 말해 if
나쁜 코드에 주석을 달지 마라. 새로 짜라 잘 달린 주석은 그 어떤 정보보다 유용하다. 그러나 경솔하고 근거 없는 주석은 코드를 이해하기 어렵게 만든다. 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. 부정확한 주석은 독자를 현혹하고 오도한다. 진실은 한곳에만 존
프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다. 코드 형식을 맞추기 위한 간단한 규칙을 정하고 그 규칙을 착실히 따라야 한다. 코드 형식을 맞추는 목적 > ‘돌아가는 코드’가 전문 개발자의 일차적인 의무라 여길지도 모르겠다. 그러나 오늘 구현한 코드의 가독
변수를 private으로 정의하는 이유가 있다. 남들이 변수에 의존하지 않게 만들고 싶어서다. 그렇다면 어째서 수많은 프로그래머가 get 함수와 set 함수를 당연하게 public으로 선언해 비공개 변수를 외부에 노출할까?두 클래스 모두 2차원 점을 표현한다. 그런데
상당수 코드 기반은 전적으로 오류 처리 코드에 좌우된다. 여기서 좌우된다는 표현은 코드 기반이 오류만 처리한다는 의미가 아니다. 여기저기 흩어진 오류 처리 코드 때문에 실제 코드가 하는 일을 파악하기가 거의 불가능하다는 의미이다.이 장에서는 깨끗하고 튼튼한 코드에 한걸
시스템에 들어가는 모든 소프트웨어를 직접 개발하는 경우는 드물다. 때로는 패키지를 사고, 떄로는 오픈 소스를 이용한다. 떄로는 사내 다른 팀이 제공하는 컴포넌트를 사용한다. 어떤 식으로든 이 외부코드를 우리 코드에 깔끔하게 통합해야만 한다. 이 장에서는 소프트웨어 경계
애자일과 TDD 덕택에 단위 테스트를 자동화 하는 프로그래머들이 이미 많아졌으며 점점 더 늘어나는 추세다. 하지만 우리 분야에 테스트를 추가하려고 급하게 서두르는 와중에 많은 프로그래머들이 제대로 된 테스트 케이스를 작성해야 한다는 좀 더 미묘한 사실을 놓쳐 버렸다.T
표준 자바 관례에 따르면, 가장 먼저 변수 목록이 나온다. 정적 공개 상수가 있다면 가장 먼저 나온다. 다음으로 정적 비공개 변수, 이어서 비공개 인스턴스 변수가 나온다. 공개 변수가 필요한 경우는 거의 없다. 변수 목록 다음에는 공개 함수가 나오며 비공개 함수는 자신
복잡성은 죽음이다. 개발자에게서 생기를 앗아가며, 제품을 계획하고 제작하고 테스트하기 어렵게 만든다.Ray Ozzie, Microsoft CTO본 요약은 이해가 전혀 뒷받침되지 않은 요약입니다.. 학습용으로 읽기를 권장하지 않습니다..도시는 혼자서 관리할 수 없다. 수
창발성 : 창발(創發)또는 떠오름 현상은 하위 계층(구성 요소)에는 없는 특성이나 행동이 상위 계층(전체 구조)에서 자발적으로 돌연히 출현하는 현상이다. 또한 불시에 솟아나는 특성을 창발성(영어: emergent property) 또는 이머전스(영어: emergence
객체는 처리의 추상화다. 스레드는 일정의 추상화다.동시성과 깔끔한 코드는 양립하기 어렵다.단일 스레드 프로그래밍은 상대적으로 쉬운 편에 속한다.다중 스레드 코드도 맘만 먹으면 코드를 쉽게 작성할 수 있다.하지만 쉽게 작성한 다중 스레드 코드는 시스템의 부하가 큰 환경에
깨끗하고 우아한 프로그램을 한 방에 뚝딱 내놓을 수 없다. 프로그래밍은 과학보다 공예에 가깝다.깨끗한 코드를 짜려면 먼저 지저분한 코드를 짠 뒤에 정리해야 한다.먼저 1차 초안을 쓰고, 그 초안을 고쳐 2차 초안을 만들고, 계속 고쳐 최종안을 만들어야 한다.깔끔한 작품