본문 바로가기

책정리/방법론5

클린코드 - 6장 객체와 자료구조 6장 객체와 자료구조변수를 비공개로 정의하는 이유가 있다. 남들이 변수에 의존하지 않게 만들고 싶어서다. 어째서 수많은 프로그래머가 조회함수와 설정함수를 당연하게 공개해 비공개 변수를 외부에 노출할까?자료 추상화변수를 pirvate으로 선언하더라도 각 값마다 조회(get)함수와 설정(set)함수를 제공한다면 구현을 외부로 노출하는 셈이다.변수 사이에 함수라는 계층을 넣는다고 구현이 저절로 감춰지지는 않는다.추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스다.자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다.인터페이스나 조회/설정 함수만으로는 추상화가 이뤄지지 않는 다.아무 생각 없이 조회/설정 함수를 추가하는 방법이 가장 나쁘다.자료.. 2017. 1. 12.
클린코드 - 5장 형식 맞추기 5장 형식 맞추기프로그래머라면 형식을 깔끔하게 맞춰 코드를 짜야 한다. 코드 형식을 맞추기 위한 간단한 규칙을 정하고 그 규칙을 착실히 따라야 한다.형식을 맞추는 목적융통성 없이 맹목적으로 따르면 안 된다.코드 형식을 의사소통의 일환이다.의사소통은 전문 개발자의 일차적인 의무이다.오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다.맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다.적절한 행 길이를 유지하라.500줄을 넘지 않고 대부분 200줄 정도인 파일로도 커다란 시스템을 구축할 수 있다.일반적으로 큰 파일보다 작은 파일이 이해하기 쉽다.신문 기사처럼 작성하라.이름은 간단하면서도 설명이 가능하게 짖는다.이름만 보고도 올바른 모듈을 살펴.. 2017. 1. 11.
클린코드 - 4장 주석 4장 주석잘 달린 주석은 그 어떤 정보보다 유용하다. 경솔하고근거 없는 주석은 코드를 이해하기 어렵게 만든 다. 오래되고 조잡한 주석은 거짓과 잘못된 정보를 퍼끄려 해악을 미친다. 우리는 코드로 의도를 표현하지 못해, 그러니까 실패를 만회하기 위해 주석을 사용한다. 주석은 언제나 실패를 의미한다. 상황을 역전해 코드로 의도를 표현할 방법은 없을 까? 주석은 오래될수록 코드에서 멀어진다. 프로그래머들이 주석을 유지하고 보수하기란 현실적으로 불가능하다. 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. 진실은 한곳에만 존재한다. 바로 코드다. 코드만이 정확한 정보를 제공하는 유일한 출처다.주석은 나쁜 코드를 보완하지 못한다.코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다.표현력이 풍부.. 2017. 1. 10.
클린코드 - 3장 함수 3장 함수작게 만들어라If, else, while 문 등에 들어가는 블록은 한 줄이어야 한다.함수에서 들여쓰기 수준은 1단이나 2단을 넘어서는 안 된다.한 가지만 해라의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업 하는 셈이다.함수 당 추상화 수준은 하나로한 함수 내에 추상화 수준을 섞으면 코드를 읽는 사람이 헷갈린다.위에서 아래로 코드 읽기 : 내려가기 규칙서술적인 이름을 사용하라.함수가 하는 일을 좀 더 잘 표현한다.길고 서술적인 이름이 짧고 어려운 이름보다 좋다.함수 인수함수에서 이상적인 인수 개수는 무항이다.인수는 개념을 이해하기 어렵게 만든다.입력 인수를 변환하는 함수라면 변환 결과는 반환값으로 돌려준다.이항 함수 assertEquals(expected, actual), .. 2017. 1. 10.