본문 바로가기
728x90

클린코드4

정적 팩토리 메서드 static으로 선언한 객체를 생성하는 메소드 장점 가독성이 높다 객체를 캐싱할 수 있다 하위 자료형 객체를 반환할 수 있다 단점 정적 팩토리 메서드만 있는 클래스는 하위 클래스를 못만든다 일반 정적 메소드와 구분하기 힘들다 1. 가독성이 높다 이름으로 인스턴스의 목적을 알 수 있다 class Person { String name; int age; public Person(String name, int age) { this.name = name; this.age = age; } // 정적 팩토리 메소드 public static Person adult() { return new Person("성인", 40); } // 정적 팩토리 메소드 public static Person kid() { return ne.. 2021. 3. 6.
클린코드 8기가 끝났다 8주간의 기간이 드디어 끝났다 결론만 얘기하자면 혼자서 이룰 수 없었을 많은 것들을 배웠다 한편으로는 그런 현실이 슬펐다 회사에서는 코드 리뷰를 하지 않는다 이번에 처음으로 코드 리뷰를 받으면서 도대체 나와 같은 경력동안 코드리뷰를 받는 사람들은 얼마나 많은 것들을 배웠을까 라는 생각에 잠이 오지 않았다 실제로 이번과정을 하면서 두달동안 잠을 4~5시간 정도 잔 것 같다 20살때부터 입버릇처럼 해왔던 말이 잠은 죽어서자면 된다 였다 그만큼 잠안자고 투자하는 것에 익숙해있었다 하지만 이번에는 달랐다 미션 하나하나 진행하면서 내가 다른 사람들보다 얼마나 부족한지 뼈저리게 느꼈다 두달동안 오브젝트, 리펙토링, 테스트주도개발, 클린 소프트웨어, 이펙티브 자바를 샀다 그리고 그 중 테스트주도개발과 리펙토링을 다보.. 2020. 7. 4.
테스트는 주요 로직을 먼저 해도 괜찮네? TDD를 하면서 항상 의존성의 제일 하단에 있는 클래스 먼저 테스트를 했었다 그 이유는 의존하는게 없는 가장 구현하기 간단한 녀석이었기 때문이다 하지만 사다리 타기 게임을 하면서 느낀 것은 핵심 비즈니스 로직을 먼저 구현하는게 더 나을 수도 있겠다 다는 것이었다 사다리 한점을 나타내기 위해 Point 라는 객체를 놓고 그 위에 두 점을 이은 Line 이라는 클래스와 Line들로 이루어진 Ladder를 생성하였다. 하지만 만들면서 느끼점은 각각의 상위의 의존성으로 올라갈 수록 의존하고 있는 객체의 데이터를 자꾸 의식한다는 것이었다. 모름지기 객체의 응집도를 높히고 결합도를 낮추려면 책임주도개발 (일단은) 최고라고 생각한다 객체의 일괄된 행동에 따라 클래스를 작성하게 되면 그 행위들을 하나의 일괄적인 응집도.. 2020. 6. 25.
TDD 참 어려운데 신기하다 한 2주 정도 TDD를 익힌다고 잠을 못잔 것 같다 엊그제 자바지기님께서 해주신 온라인 번개(?) 형식의 강의 덕분에 감이 많이 잡힌 것 같다. Todo 리스트를 작성하는 것이 뭔지 감이 안잡혔는데 진짜 말그대로 README에 해야 될 일을 적으시더라 "감도 찔러봐야 아냐"고 하던데 난 찔러 봐야 알겠더라... 테스트 주도 개발도 이제 한 50장 정도 남았다. 오늘은 제일 마지막 장의 실전 TDD를 구현해 보고 자려고 하는데 잠을 잘 수 있으련가 모르겠다ㅎㅎ 2주 동안 못했던 레이싱 게임도 한 열몇번 갈아 엎으니 이제는 in -> out 방식으로 어느정도 할 수 있게 되었다. 이제 하루에 미션 하나씩 한다는 마음으로 따라 잡아야겠다 짝 코딩을 하고 싶은데 단체 메세지에 말하기가 좀 그렇다는 생각이 문득 .. 2020. 6. 8.
728x90