코딩하는 대학생의 책 추천/클린코드

1. 자료 추상화 public class Point { public double x; public double y; } public interface Point { double getX(); double getY(); void setCartesian(double x, double y); } 위의 Point 클래스는 구현을 노출한다. x, y의 값을 변경하기 위해서는 직접 변경 해야하기 때문에 구현이 노출되었다. 그에 비해 밑의 Point 추상 클래스는 setCartesian으로 구현을 숨겼다. 이처럼 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있어야 한다. //구체적인 Vehicle 클래스 public interface Vehicle{ double getFuelTankCapacityInGallon..
위 사진은 배선정리가 끝난 뒤, 모습이다. 여러분의 코드는 배선 정리가 필요하다. 배선 정리가 안 되어있어도 잘 작동하지만 코드의 내용을 파악하기 위해 선들을 하나하나 볼 때면 왜 배선 정리를 하지 않았는지 후회할 것이다. “코드 형식은 매우 중요하다” 오늘 구현한 기능이 다음 버전에서 바뀔 확률은 아주 높다. 그러나 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다. 1. 적절한 행 길이를 유지하라 다음의 그림은 파일의 길이 분포, 로그 배율을 표로 나타낸 그림이다. JUnit, fitnese와 같은 파일을 보면 대부분의 파일 크기가 200줄 미만이다. 200줄 미만의 길이의 코드 파일로도 커다란 시스템을 구축 할 수 있다. 📢 파일의 길이는 200~300줄을 넘지 않도록 한..
함수는 작게 만들어라. 🧐 책에서는 함수의 길이를 3~4 줄로 권장하고 있다. 함수는 한 가지만 해라 public static String renderPageWithSetupsAndTeardowns( PageData pageData, boolean isSuite) throws Exception { if( isTestPage(pageData)) includeSetupAndTeardownPages(pageData, isSuite); return pageData.getHtml(); } 페이지가 테스트 페이지인지 판단한다. 조건문을 통해 설정 페이지와 해제 페이지를 넣는다. 페이지를 HTML로 렌더링 한다. 함수는 한 가지 해야 한다고 했는데 위의 함수는 3가지 기능을 하고 있다. 🧐 함수의 추상화 수준이 하나..
의미 있는 이름의 중요성은 우리의 생활에서도 중요성을 발견할 수 있다. 배를 예시로 들어보겠다. 먹는 배, 타는 배, 사람의 배등 다양한 배가 있다. 보통 사람들은 문장의 맥락을 보면서 배의 의미를 파악한다. 하지만 배라는 글자만 주어지면 이게 어떤 것을 의미하는지 잘 모른다. 우리는 프로그래밍을 할 때 이렇게 중복되거나, 전체 코드를 봐야 의미를 알 수 있는 의미 없는 이름 사용을 자제해야 한다. 의도를 분명히 밝혀라 int d; // 경과시간(단위: 날짜) int elapsedTimeDays; int daysSinceCreation; d라는 변수는 코드를 전부 읽어서 어디에 쓰이는지를 파악하기 전에는 아무도 어떤 용도로 쓰이는지 모른다. 하지만 elapsedTimeDays, daysSinceCreat..
클린코드 스터디 덕분에 클린코드라는 책을 접하게 되었다. 클린코드 책을 읽으면서 지난날의 나를 반성하게 되었다. 단순히 코드 기능에만 집중하고 테스트와 코드 중복등 다른 요소들을 고려하지 않았다. 하지만 아직 늦지 않았다는 생각을 가지면서 다시 시작해보겠다. 요구사항 우선 깨끗한 코드를 알아보기 전에 내가 책을 읽으면서 인상깊게 봤던 여러 구절들을 소개하려고 한다. "기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업, 바로 이것이 프로그래밍이다" "궁극적으로 코드는 요구사항을 표현하는 언어라는 사실을 명심한다" 이 두 구절을 읽으면 요구사항이라는 단어가 겹치는 모습을 볼 수 있다. 요구사항이라는 단어의 정의를 네이버 백과사전에서 찾으면 밑의 결과 처럼 나온다. ①어떤 문제를 해결하거나 특정의 목적을..
코딩하는_대학생
'코딩하는 대학생의 책 추천/클린코드' 카테고리의 글 목록