전체 보기
🍀

8,9일차_코드 리뷰 통해 객체지향에 다가가기

작성일자
2023/10/27
태그
DIARY_DEVELOP
프로젝트
PreCourse
책 종류
1 more property

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
1일차_둘러보기, 환경설정하기
2023/10/19
DIARY_DEVELOP
1일차_둘러보기, 환경설정하기
2023/10/19
DIARY_DEVELOP