일반적으로 기반 클래스 (base class, 부모 클래스)는 파생 클래스(derivative, 자식 클래스)를 몰라야 바람직하다. (p.351) 저자는 실질적인 가치가 없으면서 코드만 복잡하게 만드는 인수와 변수 선언된 final 키워드를 제거하는게 좋다고 한다. (p.356) final을 제거하는것은 일부 기존 관례에 ...
[클린코드] Chapter15-Junit 들여다보기
Junit 은 자바 프레임워크 중에서 가장 유명하다. 일반적인 프레임워크가 그렇듯 개념은 단순하며 정의는 정밀하고 구현은 우아하다. 하지만 실제 코드는 어떨까? 이 장에서는 Junit 프레임워크에서 가져온 코드를 평가한다. Junit 프레임워크 Junit 은 저자가 많다. 하지만 시작은 켄트 벡과 에릭 감마, 두 사람이 함께 아틀...
[클린코드] Chapter14-점진적인 개선
이 장은 점진적인 개선을 보여주는 사례다. 프로그램을 짜다보면 종종 명령행 인수(public static void main(String[] args))의 구문을 분석할 필요가 있는데 이 구문을 분석할 유틸리티 모듈을 개선해나가는 예제를 설명한다. 세부적인 개선 과정과 자세한 내용은 서적을 참고하기 바란다. p.246 결론 깨끗한 코드...
[클린코드] Chapter13-동시성
동시성이 필요한 이유? 동시성은 결합(coupling)을 없애는 전략이다. 즉, 무엇(what)과 언제(when)을 분리하는 전략이다. 무엇과 언제를 분리하면 애플리케이션 구조와 효율이 극적으로 나아진다. 예를 들어, 서블릿은 웹 요청이 들어올때마다 웹서버는 비동기식으로 서블릿을 실행한다. 서블릿 프로그래머는 들어오는 ...
[클린코드] Chapter12-창발성
창발적 설계로 깔끔한 코드를 구현하자 다음 켄트 벡이 제시한 단순한 설계 규칙 네 가지가 소프트웨어 설계 품질을 크게 높여준다고 믿는다. 1) 모든 테스트를 실행한다. 2) 중복을 없앤다. 3) 프로그래머 의도를 표현한다. 4) 클래스와 메서드 수를 최소로 줄인다. 단순한 설계 규칙1: 모든 테스트를 실행하라 테스트가 가능한 시스템을 만들려고...
[클린코드] Chapter11-시스템
“복잡성은 죽음이다. 개발자에게서 생기를 앗아가며, 제품을 계획하고 제작하고 테스트하기 어렵게 만든다.” - 레이 오지, 마이크로소프트 CTO 도시를 세운다면? 이 장에선 높은 추상화 수준, 즉 시스템 수준에서도 깨끗함을 유지하는 방법을 살펴본다. 시스템 제작과 시스템 사용을 분리하라 소프트웨어 시스템은 (애플리케이션 객체를 ...
[클린코드] Chapter10-클래스
클래스 체계 클래스의 구성원 변수 목록 -> 함수순으로 구성된다. 정적 공개 상수(static public) -> 정적 비공개(private static)변수가 나오게되고 그다음 비공개 인스턴스 변수가 나온다. 공개 변수가 필요한 경우는 거의 없다. 함수는 공개 함수가 나오고 비공개 함수는 자신을 호출하는 공개 함수 직후에 넣는...
[클린아키텍처] 34장 빠져 있는 장
‘클린 아키텍처’ 기술 서적에 대해 학습했던 내용을 정리하기 위한 목적의 TIL 포스팅입니다.🙆♂️ 계층 기반 패키지 기술적 관점에서 해당 코드가 하는 일에 기반하여 그 코드를 분할 계층 사이의 의존성은 모두 아래를 향하도록 (단방향) 출처: https://skidrow6122.tistory.com/26 마틴 파울러...
[클린아키텍처] 33장 사례 연구: 비디오 판매
‘클린 아키텍처’ 기술 서적에 대해 학습했던 내용을 정리하기 위한 목적의 TIL 포스팅입니다.🙆♂️ 유스케이스 분석 출처: https://skidrow6122.tistory.com/25 단일 책임 원칙에 따르면 이들 네 액터(제작자, 관리자, 구매자, 시청자)가 시스템이 변경되어야할 네 가지 주요 근원이 된다. 신규 기능을...
[클린아키텍처] 30 ~ 32장
‘클린 아키텍처’ 기술 서적에 대해 학습했던 내용을 정리하기 위한 목적의 TIL 포스팅입니다.🙆♂️ 30장 - 데이터베이스는 세부사항이다. 애플리케이션 내부 데이터 구조는 시스템 아키텍처에서 대단히 중요하다. 하지만 데이터베이스는 데이터 모델이 아니다. 데이터가 테이블 구조를 가진다는 사실은 오직 아키텍처의 외부 원에 위치한 ...