반응형
우아한테크코스 5기에 지원하면서 프리코스 여정이 시작되었다.
우아한테크코스 지원 전에 미리 4기 프리코스를 풀어보면서 준비했었는데, 하나의 프로그램을 만드는데
구현에 집중하는 것이 아니라, 클린코드를 만들기 위해 리팩토링에 집중하는 방향으로 설계된 것을 알 수 있었다.
현재는 5기 프리코스 1주차가 끝난 상태지만 프리코스 시작 전과 프리코스 1주차를 경험하면서 느낀
프리코스 시 지킬 나만의 규칙을 기록하려고 한다.
1. 선 구현 후 리팩토링
처음부터 클린 코드를 짜려고 구현과 동시에 리팩토링을 진행을 했었는데,
리팩토링을 생각하느라 구현할 때 시간이 상당히 오래걸렸다.
먼저 구현을 해놓고, 구현 코드에서 어떻게 하면 리팩토링 할 수 있을지 생각하기
2. 자바 네이밍 규칙 지키기
* 프리코스 이전 네이밍 규칙을 지키지 않았던 부분
- for문의 변수 선언 시 의미있는 변수 선언 X(거의 i로 선언했음)
- 중복되는 정보 네이밍 시 생략 X
-EX : User 클래스 안의 name은 userName이 아니라, name으로)
- Collection 등의 자료형은 복수형(s)로 표현
-EX : UserList로 할 시 -> List에서 Set으로 바뀌면 모두 리팩토링 해야함, 따라서 Users로!
- boolean 네이밍은 is, has, can으로 해보기
-is : 맞는지 틀린지 / has : 데이터를 가지고 있는지 없는지 / can : 할 수 있는지 없는지
* 나만의 네이밍 규칙
- 어떤 값을 구해서 반환하는 메소드는 'get' word를 사용하기
-EX : getWinnerNumber()
이때, 메소드 안의 최종 return할 변수의 네이밍을 메소드 네이밍에서 get빼고 네이밍하기
-EX : getWinnerNumber()의 return 변수명은 winnerNumber
- 검증 관련 메소드는 'validate' word 사용하기
-EX : validateNumberRange()
3. 메소드는 항상 하나의 기능만 가지도록 설계하기
EX) 기존 메소드 : 두 수를 계산하는 메소드 plusNumber()를 보면,
두 수를 더하는 기능뿐만 아니라 두 수를 랜덤 생성하는 기능까지 포함하고 있다.
하나의 기능만 하도록 두 수를 더하는 기능과 두 수를 생성하는 기능을 분리해서 다음 두 방식 중 선택하자!
* 기존 메소드 -> 수를 생성하는 기능과 수를 더하는 기능이 합쳐져있다.
public static int plusNumber() {
int randomNum1 = Random.pickNumberInRange(1, 100);
int randomNum2 = Random.pickNumberInRange(1, 100);
return randomNum1 + randomNum2;
}
public static void solution() {
plusNumber();
}
방식1
* **리팩토링 방식1**
private static int plusNumber() {
int randomNum1 = getNumber();
int randomNum2 = getNumber();
return randomNum1 + randomNum2;
}
private static int getNumber() {
return Random.pickNumberInRange(1, 100);
}
public static void solution() {
plusNumber();
}
방식2
* **리팩토링 방식2**
private static int plusNumber(int randomNum1, int randomNum2) {
return randomNum1 + randomNum2;
}
private static int getNumber() {
return Random.pickNumberInRange(1, 100);
}
public static void solution() {
int randomNum1 = getNumber();
int randomNum2 = getNumber();
plusNumber(randomNum1, randomNum2);
}
반응형
'우아한테크코스 5기 프리코스' 카테고리의 다른 글
우아한테크코스 5기 1차 합격 & 최종 코딩테스트 후기 (7) | 2022.12.18 |
---|---|
우아한테크코스 프리코스 4주차 후기 (0) | 2022.11.23 |
우아한테크코스 프리코스 3주차 후기 & 공부한 부분 (0) | 2022.11.16 |
우아한테크코스 프리코스 2주차 후기 & 공부한 부분 (4) | 2022.11.09 |
우아한테크코스 프리코스 1주차 후기 & 공통 피드백 및 공부한 부분 (4) | 2022.11.02 |