본문 바로가기

프로그래밍 독서/클린코드

(11)
10. 클래스 클래스를 예쁘고 깨끗하게 만드는 팁에관한 챕터입니다. 몇가지 팁이 나와있었습니다. 중요한것은 클래스를 작게 쪼개서 이해하기 쉽도록 만드는 것입니다. 같은 10개의 기능을 가진 클래스를 1개로 만드나 10개로 만드나 정보량은 같지만 10개로 쪼갰을때에 각 클래스가 가진 권한이 분리돼서 이해하기 쉽습니다. 또한 프로그램은 지속적으로 수정과 변화가 일어나기 때문에 클래스와 메서드는 최대한 작게 쪼개서 단일한 일만 하도록 하는것이 좋습니다. - 순서 처음 나오는 부분은 클래스 안에서의 순서입니다 1. static public 2. static private 3. private instance 4. public method 의 순서대로 하는게 국룰이라고 합니다. - SOLID 1. SRP(Single Respon..
9. 단위 테스트 가장 중요한 3요소. 가독성, 가독성, 가독성 테스트 코드는 실제 코드와는 다르지만 수평하게 생각해야한다. 아무렇게나 짜면 안된다. 제 1번 요구사항은 가독성이다 아래에서는 좀더 세분화한 다섯가지 규칙 (FIRST 규칙)을 제시한다. 1. Fast 빠른 빠르지 않은 테스트 코드는 점점 돌리기가 힘들어지고 유지보수에 문제를 만든다 2. Independant 독립적인 각 테스트가 서로 의존하고 있으면 점점 테스트코드를 분화시키기 어려워진다. 각 함수가 한가지 일만 하는 것처럼 각 테스트도 한가지 일만 해야하고 서로 독립적일수록 좋다. 3. Repeatable 반복하는 환경이 바뀌어도 반복가능해야한다. 집이든 회사든 어디서든. 4. Self-validating 자가검증하는 결과를 성공, 실패로만 내야한다. 결..
8. 경계 뒷 파트로 갈수록 확실히 책의 전반부와 다르게 협업을 위한 방법들이 많이 소개되는것 같습니다. 아직 배움이 짧아서 공감하기 어려운 내용들이지만 완주를 목표로 이해한만큼 기록하겠습니다. 개발을 하게 되면 다양한 api나 라이브러리 등을 가져다 써야할 일이 생깁니다.(거의 무조건) 이럴때 확장성을 잘 생각하며 짜야합니다. 일종의 도킹처럼, 결합하는 그 부분에서 생기는 이슈와 결합후 호환에 대한 이슈를 고려해야 합니다. 책에서 추천해주는 가장 좋은 방법은 test를 적극 활용하는 것입니다. 코드를 직접 뜯어서 하나하나 이해하는 것보다 용도에 맞게 test를 통해서 사용법만 익히면서 배우는 것이 훨씬 경제적 이라고 주장합니다.
7. 예외처리 사실 저는 자바를 거의 공부하지 않았고, 기본서로 딥다이브정도를 읽다가 하차한 상태기 때문에 자바의 try, catch가 익숙하지 않습니다만 예외처리에 관해서 중요하다고 생각합니다. 간단하게 코테공부만 해도 항상 경계값, 임계치 등이 기준이 되도록 잘 설정해서 문제가 틀리지 않도록 하는 것, 혹은 나중에 코드를 수정하다가 여러 예외처리들을 주먹구구식으로 해와서 더러운 코드때문에 처음부터 다시 짜야할 일 이 초반에 꽤 있었기 때문입니다. 여기서도 간단한 몇가지 법칙을 보여주는데, 일단 자바가 아니라도 쓸만한 몇가지가 기억이 나 남겨놓습니다. 1. 메서드로 null을 넘기거나, 예외처리를 null을 통해서 하는 것을 지양하자 2. 오류를 직접 처리하는 것보다, try catch를 사용하자 3. 예외에 의미를..
6. 객체와 자료구조 자료구조와 객체지향에 대해서 이야기 한 챕터입니다. 두개가 서로 정 반대라고 주장하고 용도에 맞게 잘 써야한다고 합니다. 객체지향의 목적은 캡슐화. 쉽게 말하면 사용자가 내부구조를 알 수 없게 잘 숨기는 것이고 자료구조는 구조를 그대로 두고 따로 함수를 제공하지 않는 경우를 말합니다. 도형을 나타내는 코드가 이해하기 쉽고 인상깊어서 아래 남기겠습니다. 자료구조 - 함수를 추가할때 도형 클래스 수정할 필요 없음 - 도형 추가하때는 함수들을 수정해야함 public class Square { public Point topLeft; public double side; } public class Rectangle { public Point topLeft; public double height; public dou..
5. 형식 맞추기 형식은 사실 의사소통의 형식이다. 언어와 똑같이 맞춤법이 엉망인 글은 보기가 어렵다. 남들이 내 코드를 절대 이해하지 못했으면 좋겠다는 악취미를 가지고 코드를 짜는게 아닌이상 형식을 맞추는게 좋다. 읽는 사람은 읽다보면 일정한 형식을 가지고 다음에는 이런 것이 나오겠지 하고 예상을 하면서 읽기 때문에 형식을 맞춰주는게 좋다. 보통 vscode 같은걸 쓰면 사용하게 되는 prettier나 lint 들도 여기에 해당한다고 봐도 될거같다. 더 넓은 범위로 볼 수도 있다. 몇가지 팁을 둘러보자면 - 신문 기사처럼 작성하라 - 개념은 빈 행으로 구분 - 유사한 코드는 서로 가까이 놓기 - 가로로 너무 길게 쓰지 말 것 등이 있다. 사실상 에어비엔비같이 유명한 규율들을 따라도 되고, 자신만의 규율을 따라도 될 것 ..
4. 주석 경력이 정말 짧은 저 임에도 학창시절에 교수님이 예시로 짜준 코드들에서도 많이 보던 실수들 이었습니다. 딱 이 챕터를 다 읽고 드는 생각은 한문장으로 "설명이 필요한 드립은 실패한 드립이다." 였습니다. 주석도 똑같다는 맥락입니다. 설명이 필요한 코드는 실패.. 까지는 아니지만 설명이 필요 없는 코드일수록 좋다는 이야기가 계속 나옵니다. 꼭 필요한 주석만 남기고 다 없애는게 좋다고 주장합니다. 1. 법적인 주석 ex) Copyright (C) 2003,2004,2005 by Object Mentor, Inc. All rights reserved. 2. 정보를 제공하는 주석 ex) 테스트중인 Responder 인스턴스를 반환한다. 다만 정보를 제공하는 주석의 경우에는 함수 이름등으로 정보를 직접 담는게 낫..
번외) 코드포매팅 단축키 요즘 파이썬, 자바, JS 등등 다양한 언어를 찍먹해야 될 일이 생겨서 여러군데서 작업하고 할 때마다 다른 IDE를 써버렸더니 코드 포매팅이 굉장히 불편했다. 단축키를 찾아서 한번에 정리해놓고 필요할때마다 꺼내서 쓸 예정으로 작성한다. 1. Visual Studio Code Windows : alt + shift + K Mac : Option + Shift + F Ubuntu : Ctrl + Shift + I 사용하는 언어에 맞는 Formatter 플러그인을 설치해야 한다고 하는데 js만 써서 그런지 난 안깔아도 잘 됐다.. 만약에 플러그인이 없다면, 친절하게 플러그인 설치를 안내해준다. 2. Eclipse Windows : Ctrl + Shift + F Mac : Command + Shift + F U..