본문 바로가기

클린코드9

WHAT과 HOW로 나눠 생각하기 https://www.youtube.com/watch?v=4xg4OeGzGIw&list=PLwouWTPuIjUg0dmHoxgqNXyx3Acy7BNCz&index=3 WHAT과 HOW로 나눠 생각하기 하려는 것 / 의미 / 의도 (WHAT) 그것의 실제 구현 (HOW) 가입한지 1년 미만 user 테이블에서 reg 칼럼 값 기준으로 count 추가 지급 내역 남김 log 테이블에 insert // HOW (하려는 것의 실제 구현에 집중) int count = userDao.countUsersByReg(userId); if(count > 0){ pointRate += 1; } .. if (count > 0){ logDao.insert(new Log(..., "AR", 1, ..)); } // WHAT (하려.. 2023. 2. 16.
나누기 https://www.youtube.com/watch?v=NaeXpswLvxk&list=PLwouWTPuIjUg0dmHoxgqNXyx3Acy7BNCz&index=2 함수/ 메서드/ 클래스가 너무 커지면, 프로그램 분석 & 수정이 어려워 진다. ex : if-else, if 중첩 과다, 코드 안에서 중복 발생 등 이런 경우, 필요한 기술은 나누기 의미가 있는 단위로 코드/구성 요소를 나누어야 한다. 패턴은 나누는 기술의 전형적인 예시 웹 개발 : 컨트롤러 - 서비스 - DAO DDD : 엔티티, 밸류, 레퍼지토리 디자인 패턴 나누기는 기능을 여러 작은 기능으로 분리하는 것 나누기 수행 결과는 하위 기능들이 메서드나 클래스로 분리된다. 기능을 분리하는 기준은? 기능에서 '의미' 있는 하위 기능 단위로 나누는.. 2023. 2. 16.
변수 아껴 사용하기 https://www.youtube.com/watch?v=kRdML08R2Yo&list=PLwouWTPuIjUg0dmHoxgqNXyx3Acy7BNCz 변수를 미리 선언하거나, 중간에 할당 된 값을 변경하거나, 아니면 초기 선언 용도와 전혀 다른 값을 할당해서 사용하게 되면, 변수 범위, 개수 증가 및 용도 변화로 작성 된 코드를 이해하는데 더 많은 노력이 들게 되고 그로인해 코드의 변경이 어렵게 된다. 그렇기에 위 영상에서 제시한 꼭 필요한 변수를 구분하기 위해 아래 가이드라인을 제시해 주었다. 1. 선언하고 1~2번 참조하는 변수는 꼭 필요한지 검토해보고 필요 없으면 사용 하지 않는 것 2. 의미를 더해주는 변수 위주로 사용하기 3. 같은 계산을 반복하는 경우 변수로 재사용 4. 가능한 선언과 값 할당.. 2023. 1. 27.
10. 클래스 클래스 체계 클래스를 정의하는 표준 자바 관례 1. 정적 공개 상수 - public static 2. 정적 비공개 변수 3. 비공개 인스턴스 변수 4. 공개 함수 5. 비공개 함수 - 자신을 호출하는 공개 함수 직후에 삽입 --> 위 순서대로 작성함으로서 추상화 단계가 순차적으로 내려오게 되고, 프로그램이 신문 기사처럼 읽히게 된다. 클래스는 작아야 한다! 클래스 만드는 규칙 첫째 클래스는 작아야 한다. 둘째 클래스는 더 작아야 한다. 그럼 여기서 생기는 의문은 "클래스는 얼마나 작아야 하는가?" 이다. 이전에 함수는 물리적인 행 수로 크기를 측정했다. 클래스는 클래스가 맡은 책임을 센다. 클래스 이름은 해당 클래스 책임을 기술해야 한다. 실제로 작명은 클래스 크기를 줄이는 첫 번째 관문이다. 간결한 이.. 2022. 10. 29.