프로그래밍/Clean Code 3

Clean Code - 객체와 자료구조

자료 추상화 구체적인 클래스는 구현을 외부로 노출하고 추상적인 클래스는 구현을 감춘다. 그저 조회 함수와 설정 함수로 변수를 다룬다고 그것이 클래스는 아니다. 추상 인터페이스를 제공해 구현을 모른 채 자료의 핵심을 조작할 수 있는 것이 클래스이다. 또한 클래스 메소드명도 추상적이게 표현하여 구현을 감추는 것이 더 추상화 된 표현이다. 인터페이스와 조회/설정 함수만으로는 추상화가 이루어지지 않는다. 객체가 포함하는 자료를 표현할 방법을 고민하여 추상화 시켜야지, 아무 생각 없이 조회/설정 함수를 추가하는 방법이 가장 나쁜 표현 방법이다. 자료/객체의 비대칭 객체는 추상화 뒤로 자료를 숨긴 채 자료를 다루는 함수만을 공개한다. 반면, 자료구조는 자료를 그대로 공개하며 별다른 함수를 제공하지는 않는다. 자료구..

Clean Code - 주석

주석 나쁜 코드에 주석을 달지 마라. 새로 짜라. – 브라이언 W. 커니핸, P.J. 플라우거 주석은 사실상 ‘필요악’이다. 프로그래밍을 통해 좋은 코드를 만들면 주석은 전혀 필요없다. 코드로 의도를 표현하지 못해서 실패를 만회하기 위해 주석을 사용하는 것이다. 주석이란 1. 주석은 나쁜 코드를 보완하지 못한다 : 코드 품질이 나쁘기 때문에 주석을 달아 알아먹기 쉽게 만들기 위해 주석을 단다. 틀렸다. 코드를 정리해서 좋은 코드를 만드는게 정답이다. 자신이 저지른 난장판을 주석으로 설명하려 애쓰는 대신에 그 난장판을 깨끗이 치워라. 2. 코드로 의도를 표현하라 : 개발자는 코드를 “의도를 표현하기 위한 훌륭한 수단” 이라고 생각해야 한다. 코드만으로 의도를 설명하기 어려운 것은 잘못된 생각이다. Ex) ..

Clean Code - 깨끗한 함수

깨끗한 함수란? 함수 : 프로그램의 기본적인 단위 함수를 잘 만드는 방법 1. 작게 만들어라 : 함수를 만드는 규칙은 첫번째 ‘작게!’, 두번째 ‘더 작게!’ 이다. 중첩 구조가 생길만큼 함수가 커져서는 안된다. 블록 들여쓰기는 1단이나 2단이 적당하다. 2. 한가지만 해라 : “함수는 한 가지를 해야한다. 그 한 가지를 잘해야 한다. 그 한 가지만을 해야한다.” 3. 함수 당 추상화 수준은 하나로 : 한 함수 내에 추상화 수준을 섞으면 코드를 읽는 사람이 헷갈린다. Ex) getHtml() 과 .append(“\n”) 은 다른 추상화 수준이므로 함수 내에 저 두개의 코드가 있으면 이 규칙을 위반한 함수이다. 4. 서술적인 이름을 사용하라 : 서술적인 이름을 사용하면 개발자 머릿속에서 설계가 뚜렷해지므로..