Language/TDD, 클린코드, 리펙토링

클린코드 책과 제로베이스 [개발자와 함께 읽는 클린코드] 강좌를 기반으로 작성하였습니다. 주석 이번 챕터에서는 4가지 주제로 설명을 해보려고 한다. 주석을 최대한 쓰지 말자 좋은 주석 주석보다 어노테이션 JavaDoc 01. 주석을 최대한 쓰지 말자 책에서는 일단 주석을 사용하는 것을 지양하도록 설명하고 있다. 지양하는 이유는 올바른 주석을 활용하기가 생각보다 어렵기 때문이다. 올바른 주석은 그 어떤 정보보다 유용하지만 대부분의 주석은 그러하지 못하다. 주석은 나쁜 코드를 보안하지 못한다. 코드에 주석을 추가하는 이유는 일반적으로 코드품질이 나쁘기 때문이다. 코드품질이 나쁘다는 것은 코드만으로 본인이 작성한 로직을 설명하지 못한다는 의미이다. 이렇다 보니 주석으로 코드의 의도를 표현하는 경우가 발생한다...
클린코드 책과 제로베이스 [개발자와 함께 읽는 클린코드] 강좌를 기반으로 작성하였습니다. 이미지 출처 - https://medium.com/backticks-tildes/the-s-o-l-i-d-principles-in-pictures-b34ce2f1e898 Chapter3. 함수 어떤 프로그램이든 가장 기본적인 단위는 함수이다. 이 장은 함수를 잘 만드는 법에 대해 알려주고 있다. 01. SOLID 법칙 우선 책에 내용을 정리하기 전 SOLID 법칙에 대해 간단히 정리하고자 한다. SOLID 원칙은 객체지향 설계의 5가지 원칙이라고 하며, 책에서도 해당 방식을 언급하면서 설명하므로 알아줄 필요가 있다. SRP 단일 책임 원칙 OCP 개방-폐쇄 원칙 LSP 리스코프 치환 원칙 ISP 인터페이스 분리 원칙..
클린코드 책과 제로베이스 [개발자와 함께 읽는 클린코드] 강좌를 기반으로 작성하였습니다. Chapter 1. 깨끗한 코드 클린코드 1장에서는 어떤 코드가 깨끗한 코드이며 왜 깨끗한 코드를 사용해야 하는지 설명하고 있다. 나쁜 코드 코드를 읽게 되었을 때 '뭔가 이상하다. 변수의 의미도 모르겠고 중복코드가 많네. 포맷팅도 이상하고, 함수가 너무 뚱뚱한데?'라고 느낀 다면 나쁜 코드라고 볼 수 있다. 성능이 나쁜 코드 불필요한 연산이 들어가서 개선의 여지가 있는 코드 의미가 모호한 코드 이해하기 어려운 코드, 네이밍과 그 내용이 다른 코드 중복된 코드 비슷한 내용인데 중복되는 코드들은 버그를 낳는다. (재활용이 아닌 코드를 복붙 해서 여러 군데 사용하는 경우) 나쁜 코드가 나쁜 이유 나쁜 코드는 깨진 유리창..
NEXT STEP > 자바 플레이그라운드 with TDD, 클린 코드 자동차 경주 미션 중 해당 강좌의 피드팩 영상을 보면 객체를 객체스럽게 사용하도록 리팩터링 해라 라는 내용이 나오고 getter, setter 사용을 지양하라는 말이 나온다. 이것이 의미하는것은 무엇일까? 만약 자동차 경주 미션 중 Car라는 클래스를 추가한 후 name과 position을 상태 값으로 가지는 객체를 추가했다고 가정해 보자. 이 객체의 로직을 하나도 구현하지 않고, 인스턴스 변수에 대한 getter와 setter 메서드만 있는 경우가 있다. public class Car { private String name; private int position = 1; public Car(String name){ this.name ..
NEXT STEP > 자바 플레이그라운드 with TDD, 클린 코드 자동차 경주 미션 중 테스트하기 힘든 코드 자동차 경주 미션을 기능 중 전진에 대한 기능을 구현할 때 “0에서 9 사이에서 random 값을 구한 후 random 값이 4 이상” 경우 전진한다는 조건이 있다. 전진조건을 테스트하기 위해서는 난수를 생성해야 되는데 난수의 값은 어떤 값이 나올지 판단할 수 없으므로 테스트하기가 힘들다. public class Car { public static final int BOUND = 9; public static final int FORWARD_NUM = 4; .... //자동차 전진 메서드 public void move() { if(makeRandomNum() >= FORWARD_NUM){ th..
JH_DEV77
'Language/TDD, 클린코드, 리펙토링' 카테고리의 글 목록