티스토리 뷰

3주차 미션 : Coordinate, RentCompany

https://github.com/woowacourse/java-coordinate

후기

  • 요구사항과 구현내용이 그나마 가장 쉽고 단순한 구조였다.
  • 이론으로만 알고있던 상속과 인터페이스를 오랜만에 직접 코드로 적용하려니 어색했다.

내 코드 피드백

  • 자식들의 공통부분을 최대한 부모 AbstractFigure로 끌어 올려라.
    예를 들어, 두 점 사이의 거리를 구하는 로직은 자식에서 모두 사용하므로 부모로 올릴 수 있다.
    List points를 올린것도 잘 한 선택.

  • 만약 Line은 쓰지않고, Triangle과 Rectangle만 공통으로 사용하는 부분이 있다면, 새로운 객체를 생성해 상속하는 방법도 고려해볼법. 사고에 갖히지 말자.

당시의 내 InputView 메서드는 재귀구조로 반복해서 돌아가고 있었고
정규식은 비용이 큰 작업인데, 저런 형태라면 매번 컴파일을 하게 된다.
Pattern 자체를 static으로 빼서 재사용하도록 수정하였다.

당시엔 InputView에서 대부분의 검증과 예외처리를 해서 재귀로 입력값을 다시 받으려했다.
때문에 InputView에 과한 책임으로 굉장히 무거운 상태였다.
이후 사다리 미션 PR를 받고 로또미션을 진행하며
InputView는 최대한 가벼워야 입력채널이 달라져도 기존코드의 수정이 적어짐을 알았다.
위의 2번째 피드백을 받은후 Point를 생성하는 로직도 컨트롤러로 빼버렸다.

왜 이 생각을 못 했을까?

이번주 피드백의 핵심 중 하나

원본값을 안전하게 보호하자 by unmodifiableList & Deep Copy & VO

이제는 습관들였다.

페어인 닉과 함께해서 생각할수있었다. 혼자했다면 역시 습관대로 코딩하게 되었을것같다.
항상 머리를 열어두고 다방면의 가능성을 생각해보며 프로그래밍하는게 중요한듯

정확한 소수점 계산은 BigDecimal을 이용해야한다.

Point를 setter가 없는 VO로 만들었다.
역시 생각할거리가 많았던 재밌는 주제였고, 포스팅 참조
원본값을 안전하게 보호하자 by unmodifiableList & Deep Copy & VO

역시 내내 마음에 걸렸던 View들.
좌표미션 당시 레벨초반이라 잘 모르는 부분이 많아, View를 무겁게 만든것이 화근이다.
일단 시간이 많이 지났고 적절한 수준에서 리팩토링했다.

피드백 반영하였다.

다른 사람들의 피드백

toString은 객체의 상태를 표현할수있는 의미있는 값으로 표현

최대한 객체를 포장해보는 연습!

예외처리방식. 그렇다고함.

잘하고 있었다. 줄이는게 좋긴하지만 의미있는 변수로 추출해 가독성을 높이는것도 ㄱㅊ

알고있던 내용이지만 다시한번 보며 상기한다.

그렇군

이렇게 생각할수도 있겠다

같은 고민. 동감.

DDD가 슬슬 자주 보이기 시작한다.

// Todo : 아래 링크를 읽어보며 이 주제에 관해 생각해봐야겠다

 

Difference between Singleton Pattern vs Static Class in Java


블로그 포스팅 완료 : Singleton vs Static class 차이점

인스턴스 재사용 !

String, StringBuffer, StringBuilder의 차이점과 장단점은 뭔가요?

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함