cleancode
-
디미터의 법칙코드 성장 이야기/박재성 - TDD, Clean Code with java- 10기 2020. 12. 11. 12:33
디미터의 법칙은? 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다. 객체는 자료를 숨기고 함수만 공개한다. 객체는 조회함수로 내부구조를 공개하면 안된다. 위의 말이 한마디로 말하면 '메소드만 호출만 하면 내가 원하는 기능을 해줘'다. 즉 하나의 기능에 해당되는 객체에 모든 권한을 주고, 실행만 하는 것이다. 디미터의 법칙을 지키게된다면 많은 이점이 있는데 현재 내가 생각하는 장점은 아래와 같다.(2020-12-11일 기준) 한 곳만 수정을 하게 되면 다른 곳을 수정할 필요가 없다. 객체 지향 5대원칙 중 단일책임 원칙 준수 가능 단일책임원칙 : 클래스나 메소드는 하나의 책임만 가져야 한다. 위의 내용을 바탕으로 코드로 설명을 하겠다. 코드 디미터의 법칙 적용 전 Typhoon public class ..
-
함수(메소드)코드 성장 이야기/박재성 - TDD, Clean Code with java- 10기 2020. 12. 2. 23:44
github.com/rlawls1991/java-ladder 위의 코드를 보게 된다면 내가 아래의 규칙을 최대한 지키면서 개발을 하였다. 코드를 보고 싶으면 현 시간 기준(2020-12-02-11:15)으로 step2를 보면 된다. 실행 결과 함수(메소드) 1. 작게 만들어라 함수를 만드는 첫째규칙은 '작게'다. 함수를 만드는 둘째 규칙은 '더 작게'다. 2. 한 가지만 해라 함수는 한가지를 해야한다. 그 한가지를 잘 해야 한다. 그 한가지만 해야한다. 3. 함수 당 추상화 수준은 하나로 함수가 확실히 '한가지' 작업만 하려만 함수 내 모든 문장이 동일한 추상화 수준에 있어야 한다. 코드는 위에서 아래로 이야기처럼 일해야 좋다. 4. side effect를 만들지 마라. side effect는 실행 중에..
-
이름 짓는 방법코드 성장 이야기/박재성 - TDD, Clean Code with java- 10기 2020. 12. 2. 23:06
좋은 이름을 갖는 방법 1. 이름으로 해당 코드가 어떤 기능을 하는지 알 수 있게 하자 전 회사에 다니면서 혼자 한 부분을 담당하는 개발이 많다보니 이름에 대해 많은 생각을 하지 못했다. 캐멀 표기법(Camel Notation : Camel Case : 낙타 표기법) 은 지켰지만 많은 부분에서 지키지 못하였다. 아래는 내가 만든 메소드명이다.(생각난 것만 작성..) 예) public interface Disaster{ int rain(); int calculate(); } 위 인터페이스를 보게된다면 재난이란 클래래스에 rain이란 메소드가 있고, 계산하는 메소드가 있다는 것을 알 수가 있다. 그렇다면 비로인해 어떤 재난이 발생했고, 어떤 계산을 하는지 알 수가 없다. 메소드명이나 클래스명이 명확하지 않다..