
클린코드에 대해 스터디 하기 시작했다!그래서 그 내용을 한번 정리해보려고 한다.사실 1장은 가벼운 이론 느낌이여서 간단하게만 정리해보려고 한다.코드의 종말이 코앞에 닥쳤다고 하는 말을 헛소리다!코드는 요구사항을 상세히 표현하는 수단이니까 사라질 가망이 전혀 없다고도로

이번장에서는 의미 있는 이름을 강조하는 내용이였다.그래서 짧게 필요한 내용만 정리해보았다.의도가 분명한 이름이 정말로 중요하다.의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다.코드에 그릇된 단서를 남겨서는 안된다. 나름대로 널리 쓰이는 의미가 있는 단어를

이장에서는 함수짜는 규칙에 대해 알려준다.어떤 프로그램이든 가장 기본적인 단위가 함수다함수를 만드는 첫째 규칙은 작게 다 함수를 만드는 둘째 규칙은 더 작게 다블록과 들여쓰기if/ else/while 문에 들어가는 블록은 한 줄 이어야한다는 의미대개 거기서 함수를 호출

이번에 주석에 대해 설명해준다.저자는 주석은 필요없다고 한다. 그 이유는 주석을 유지하고 보수하기란 현실적으로 불가능하다고 생각하기 때문이다. 코드만이 정확한 정보를 제공하는 유일한 출처다.그래서 우리는 주석을 가능한 줄이도록 꾸준히 노력해야한다.코드에 주석을 추가하는

코드 형식은 중요하다!일반적으로 큰파일보다 작은 파일이 이해하기 쉽다.신문 기사처럼 작성하라이름은 간단하면서도 설명이 가능하게 짓는다. 소스 파일 철 부분은 고차원 개념과 알고리즘을 설명한다. 아래로 내려갈 수록 의도를 세세하게 묘사한다. 마지막에는 가장 저차원 함수와

변수를 비공개로 정의하는 이유가 있다. 남들이 변수에 의존하지 않게 만들고 싶어서다그렇다면 어째서 수많은 프로그래머가 조회 함수와 설정 함수를 당연하게 공개해 비공개 변수를 외부에 노출할까?자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다. 인터페이스

깨끗한 코드와 오류 처리는 확실히 연관성이 있다. 📌 오류 코드보다 예외를 사용하라 오류가 발생하면 예외를 던지는 편이 낫다. 그러면 호출자 코드가 더 깔끔해진다. 📌 Try-Catch-Finally 문 부터 작성하라 예외에서 프로그램안에다 범위를 정의한다는

소프트웨어 경계를 깔끔하게 처리하는 기법과 기교를 살펴본다 📌 외부 코드 사용하기 Map을 여기저기 넘기지 말라는 말이다. Map과같은 경계 인터페이스를 이용할 때는 이를 이용하는 클래스나 클래스 계역 밖으로 노출되지 않도록 주의한다. Map 인스턴스를 공개

애자일과 TDD 덕택에 단위 테스트를 자동화하는 프로그래머들이 많아졌다. 📌 TDD 법칙 세가지 실패하는 단위테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 현재 실패하는 테스트를

클래스를 정의하는 표준 자바 관례에 따르면 가장 먼저 변수 목록이 나온다.정적 공개 상수가 있다면 맨처음에 나오고 정적 비공개 변수가 나오면 비공개 인스턴스 변수가 나온다. 공개 변수가 핑료한 경우는 거의 없다.프로그램은 신문 기사처럼 릭힌다.캡슐화 변수와 유틸리티 함

제작은 사용과 아주 다르다는 사실을 명심한다.소프트웨어 시스템은 런타임 로직을 분리해야한다.시작 단계는 모든 애플리케이션이 풀어야할 관심사다. 관심사 분리는 우리 분야에서 가장 오래되고 가장 중요한 설계 기법중 하나다.체계적이고 탄탄한 시스템을 만들고 싶다면 흔히 쓰는

창발성이 뭐지 우리들 대다수는 켄트 백이 제시한 단순한 설계 규칙 네가지가 소프트웨어 설계 품질을 크게 높여준다고 믿는다.켄트 백은 다음 규칙을 따르면 설계가 단순하다고 말한다.모든 테스트를 실행한다.중복을 없앤다프로그래머 의도를 표현한다.클래스와 메서드의 수를 최소로

동시성과 깔끔한 코드는 양립하기 어렵다동시성은 결합을 없애는 전략ㅇ이다 즉 무엇 과 언제를 분리하는 전략이다.스레드가 하나인 프로그램은 무엇과 언제가 서로 밀접하다.그래서 호출 스택을 살펴보면 프로그램 상태가 곧바로 드러난다. 무엇과 언제를 분리하면 애플리케이션 구조와

이 두장은 음 두개로 나누기엔 내용이 적어서 한번에 쓴다.깨끗한 코드를 짜려면 먼저 지저분한 코드를 짠 뒤 정리해야 한다점진적으로 개선하다프로그램을 망치는 가장 좋은 방법 중 하나는 개선이라는 이름 아래 구조를 크게 뒤집는 행위다. 어떤 프로그램은 그저 그런 개선에서

마지막이다!SerialDate는 날짜를 표현하는 자바 클래스이다.이장 또한 책에 있는 코드와 함께 보면 좋을 것 같다C1 : 부적절한 정보다른 시스템에 저장할 정보는 주석으로 적절하지 못하다.주석은 코드와 설계에 기술적인 설명을 부연하는 수단이다.C2: 쓸모 없는 주석