728x90
"노개북" 노마드 개발자 북클럽 15일차!!
#코딩 #개발자 #노마드북클럽 #노개북 #노마드챌린지 #클린코드 #3주스케쥴
목, 금 | Assignment #15
- 📚 복습
- ✔️ 미션 Mission (3)
😀미션 Mission
클린코드 읽으며 뼈맞았던 내용 중 3가지 원칙을 고르고, 이를 따르는 예시를 만들면 됩니다!
더러운 코드를 깨끗한 코드로 리팩토링하는 예시를 만들어보세요.
원칙1. 클래스는 작게 더 작게 만들어야하며, 단일책임원칙(SRP)을 지켜야한다.
// Before 😣
public class Calculator {
int x = 1;
int y = 2;
void add(){
log.info("x+y = " + x+y);
}
void minus(){
log.info("x-y = " + x-y);
}
}
// 무엇을 고치려고 하는지, 고치려는 문제가 무엇인지 알려주세요.
단일책임원칙을 위배한다.
// After 😎
pubic class Calculator {
int x = 1;
int y = 2;
}
class AddCalculator extends Calculator{
void add(){
log.info("x+y = " + x+y);
}
}
class MinusCalculator extends Calculator {
void minus(){
log.info("x-y = " + x-y);
}
}
// 어떻게 고쳤는지, 사례에서 무엇을 배워야 하는지 설명해주세요.
하나의 클래스는 하나의 역할만 존재해야한다. 단일책임원칙(SRP)도 각 역할별 모듈화와 연관이 있지 않을까 생
각해본다.
원칙2. 불필요하게 주석으로 코드를 설명하지 않아도 함수의 이름으로 어떤 기능을 할지 알수 있어야 한다.
// Before 😣
pubic class Calculator {
int x = 1;
int y = 2;
}
class AddCalculator extends Calculator{
void aaaaa(){ //더하기함수
log.info("x+y = " + x+y);
}
}
class MinusCalculator extends Calculator {
void bbbbbb(){ //빼기함수
log.info("x-y = " + x-y);
}
}
// 무엇을 고치려고 하는지, 고치려는 문제가 무엇인지 알려주세요.
함수가 어떤 기능을 하는지 주석으로 설명되어있지만, 함수 이름만으로는 알수가없다.
// After 😎
pubic class Calculator {
int x = 1;
int y = 2;
}
class AddCalculator extends Calculator{
void add(){
log.info("x+y = " + x+y);
}
}
class MinusCalculator extends Calculator {
void minus(){
log.info("x-y = " + x-y);
}
}
// 어떻게 고쳤는지, 사례에서 무엇을 배워야 하는지 설명해주세요.
주석을 제거하고 함수이름만으로 어떤기능을 하는지 구별이 되도록 이름을 수정하였다.
원칙2. 정적 공개 상수가 있다면 맨 처음에 나온다. 다음으로 정적 비공개 변수가 나오며, 이어서 비공개 인스턴스 변수가 나온다.
변수 목록 다음에는 공개함수가 나온다. 비공개 함수는 자신을 호출하는 공개 함수 직후에 넣는다.
// Before 😣
pubic class Calculator {
private static int y = 2; // 정적 비공개 변수
private int z = 3; // 비공개 인스턴스 변수
public static final int x = 1; // 정적 공개 상수
}
// 무엇을 고치려고 하는지, 고치려는 문제가 무엇인지 알려주세요.
변수의 선언위치를 고치려고 한다. 정적공개상수는 맨위에 나오는것이 좋다.
// After 😎
pubic class Calculator {
public static final int x = 1; // 정적 공개 상수
private static int y = 2; // 정적 비공개 변수
private int z = 3; // 비공개 인스턴스 변수
}
// 어떻게 고쳤는지, 사례에서 무엇을 배워야 하는지 설명해주세요.
정적 공개 상수 > 정적 비공개 변수 > 비공개 인스턴스 변수가 나온다.
변수 목록 다음에는 공개함수가 나온다. 비공개 함수는 자신을 호출하는 공개 함수 직후에 넣는다.
'개발자 필독도서 리뷰' 카테고리의 다른 글
[노개북] "실용주의프로그래머" 챌린지 1일차 (0) | 2022.03.18 |
---|---|
[노개북] "클린코드" 챌린지 성공 후기 및 수료증! (0) | 2022.03.18 |
[노개북] "클린코드" 챌린지 14일차 (0) | 2022.03.09 |
[노개북] "클린코드" 챌린지 13일차 (0) | 2022.03.07 |
[노개북] "클린코드" 챌린지 12일차 (0) | 2022.03.06 |