1. 코드 리뷰를 통해 배운 것(간단히)
•
일급콜렉션
◦
예를 들면 int가 아니라 digit이란 또 다른 객체로 포장하는 것을 말한다.
◦
즉, 최소한의 단위까지 클래스로 포장하는 걸 일급콜렉션이라 한다.
•
객체지향 생활체조의 원칙
원칙
•
한 메서드에서 한 단계 들여쓰기만 사용하자
•
else 예약어를 쓰지 말자
•
모든 원시값과 문자열을 포장하자
•
한 줄에서 한개의 점만 사용하자
•
축약하지 말자
•
모든 엔티티를 작게 유지하자
•
클래스는 인스턴스 변수 두 개를 넘지 않게 하자
•
일급 컬렉션을 사용하자
•
Getter / Setter / Properties를 사용하지 말자
◦
클래스는 한가지 상태의 유지,관리를 하는 목적을 가지는데, 이를 외부의 행위를 통해 상태를 바꿀수 있다는것은 캡슐화를 지키지 못하는것이 된다. 혹시 값을 바꾸고 싶다면 객체를 새로 만들면 된다.
참고
•
네이밍 개선
◦
타입을 변수명에 넣는 건 헝가리식 표기법인데 요즘은 사용하지 않는다.
◦
객체의 결과를 문자열로 반환하는 함수는 toString()으로 오버라이드해서 사용하는 것도 추천한다.
◦
내 코드
Turn
GameContinuationOption
•
정적 팩토리 메서드의 장점
◦
인스턴스 생성에 대한 이름을 부여할 수 있다.
◦
똑같은 애들 만들 때 메모리 낭비 안한다.
◦
내 코드
BaseballGameController
2. 코수타/공통 피드백에서 인상 깊었던 것
인상 깊었던 부분만 정리하고 간단히 내 생각()을 덧붙이겠다.
•
이름을 통해 의도를 드러낸다
◦
변수 이름, 함수(메서드) 이름, 클래스 이름을 짓는데 시간을 투자하라. ( 이름 짓는 게 제일 어렵고 고민이 많이 되는 거 같다)
◦
연속된 숫자를 덧붙이거나(a1, a2, ..., aN), 불용어(Info, Data, a, an, the)를 추가하는 방식은 적절하지 못하다. ( 이번 과제에서 digit 단위까지 3자리 숫자를 나눈 분들이 계셨는데 digit1, digit2 식보단 firstDigit, secondDigit이 나았겠다 싶었다)
•
축약하지 않는다
◦
의도를 드러낼 수 있다면 이름이 길어져도 괜찮다.
◦
클래스와 메서드 이름을 한 두 단어로 유지하려고 노력하고 문맥을 중복하는 이름을 자제하자. ( Game 클래스의 메서드 중 하나 이름을 playGame이라 할지 play라 할지 고민되었는데 play라 하길 잘했다)
•
Java에서 제공하는 API를 적극 활용한다
◦
함수(메서드)를 직접 구현하기 전에 Java API에서 제공하는 기능인지 검색을 먼저 해본다. ( String 관련 api들을 적극 활용하였는데 잘한 거 같다)
•
배열 대신 Java Collection을 사용한다
◦
Java Collection 자료구조(List, Set, Map 등)를 사용하면 데이터를 조작할 때 다양한 API를 사용할 수 있다. ( Array 와 ArrayList 사용에 고민이 된다면 ArrayList를 사용해야 할 또 하나의 이유가 될 거 같다)
인텔리제이 코드 포매터
•
이전 플젝에선 네이버핵데이 코딩 컨벤션을 적용해서 코드 포매터를 사용해본 적이 있다.
•
우테코도 스타일 파일이 있길래 적용해줬다.
•
1주차부터 사용하긴 했는데 이번에 컴퓨터 옮기면서 다시 적용하는데 까먹었길래 다시 다음번에 적용할 일이 생길 때를 대비해 여기다 간단히만 정리해둔다.
•
Settings > Editor > Code Style > Java > 톱니바퀴 > Import Scheme > Intellij IDEA code style XML > 다운로드한 파일 선택(WootecoStyle) > Enable EditorConfig Support 설정 체크
•
Tools > Actiosn on Save > Reformat code, Optimize imports 체크
•
이제 일일히 ⌥⌘L 할 필요 없이 ⌘S 면 알아서 저장과 동시에 포맷팅 파일 내용대로 자동정렬된다.
Today in 프리코스
TIL 작성하기
준비
코수타 보고 정리하기
공통 피드백 내용 정리하기
몰입
지난 과제 스스로 리뷰하기
동반성장
코드 리뷰 하기
내 코드 리뷰 답변 달기
•
이번주 계획
목,금 | 지난 과제 리뷰 | 이전 과제 발표 스터디 참여 + 코수타 듣기 |
토,일 | 기능 명세 작성 + 기능 구현 | 커뮤니티 함께-자라기 참여 |
월 | 테스트 코드 작성 | |
화 | 리팩토링 + 테스트 결과 확인 | |
수 | 회고 작성 + 검토 + 제출 | 201 Created 자바 스터디 글 작성 |
Search