본문 바로가기

클린 코드

클린 코드 function structure 2 4. Temporal Coupling 함수들이 순서를 지키며 호출되어야 한다. passing a block. 파일을 open할 때 close하지 않는 경우가 있으면 메모리 누수가 발생할 수 있는데 open, 파일 사용, close를 클래스로 만들어 접근하게 한다. 5. CQS side effect를 관리하는 좋은 방법 command 시스템의 상태 변경 가능, side effect를 갖는다. 아무 것도 반환하지 않는다. query side effect가 없다. 계산값이나 시스템의 상태를 반환 CQS 정의. Command Query Separation 상태를 변경하는 함수는 값을 반환하면 안된다. 값을 반환하는 함수는 상태를 변경하면 안된다. // user를 사용하려면 로그인을 해야함. // 로그인을 하면 ..
클린 코드 function structure 1. Arguments 인자가 많아지면 복잡도 증가 3개의 인자가 최대 외우기 어렵다 start, end를 range로 추상화 생성자에 많은 수의 인자를 넘겨야 한다면 빌더 클래스에 required, optional 인자를 작성한다. 빌더의 생성자는 required 인자를 받아서 생성하고 나머지는 setter에서 생성한다. Boolean 인자 사용 금지 true인 경우를 위한 일 false인 경우를 위한 일 2개의 함수로 분리 Innies not Outies 함수로 전달된 인자는 변경되어 return되면 안된다. 인자는 지역 변수로 받고 그 지역 변수를 변경해야 한다. the null defense null을 전달/기대하는 함수는 boolean을 전달하는 만큼 잘못된 것 null인 경우의 행위 + nul..
클린 코드 function 2 함수 이름을 잘 짓고 함수를 작게 만들면 모든 사람의 시간을 절약해준다. 함수를 여러 클래스에 잘 분배하려면 함수를 작게 만들어야 한다. 함수에 기능을 넣고 이후에 의미 있는 함수 이름을 생각한다. 함수가 한 가지 일만 하는 지 확신할 수 있는 방법 : extract till you drop 출처 https://www.youtube.com/watch?v=yd2xcVn_pAc&list=PLuLb6MC4SOvXCRePHrb4e-EYadjZ9KHyH&index=4
클린 코드 function 1. 원칙 함수는 1가지 일만 해야 한다. 함수 크기 80년대 터미널의 한 화면은 24줄, 80 column을 볼 수 있었다. 이중 4줄은 에디터가 사용. 함수는 20줄 이내여야 했다. 요즘엔 모니터가 크다. 들여쓰기, while, 중첩 if가 없어야 한다. 주석 대신 잘 서술된 긴 함수명, 작고 많은 함수들 2. 함수의 첫번째 규칙 더 이상 작아질 수 없을 만큼 작아야 한다. 큰 함수를 보면 클래스로 추출할 생각을 해야 한다. 클래스는 일련의 변수들에 동작하는 기능의 집합 -> 함수도 비슷하므로 큰 함수는 클래스로 추출할 수 있다. 중복되는 라인을 메서드로 추출하되 라인 상에서 일부가 다른 경우 변수로 뽑아낸다. 4. 개선 읽기 쉬워지고 이해하기 쉬워지고 함수가 자신의 의도를 잘 전달한다(이름만 봐도 ..
클린 코드 OOP 2 절차 지향 방식 stop watch 시작 시간 구하고 -> 어떤 동작을 수행하고 -> 끝나는 시간 구하고 -> 경과 시간 구한다. 밀리 초가 아닌 나노 초를 구한다고 할 때 변수 명과 메서드 명이 모두 변경되어야 한다. 절차 지향의 한계 : 요구사항 변경이 데이터 구조 변경을 유발 객체 지향 방식 값을 직접 사용하는 게 아니라 stopWatch 인스턴스의 start() 메서드를 호출한다. 시작, 끝 시간을 구하는 메서드 명은 변경되지 않고 경과 시간을 구하는 메서드 명(밀리 초에서 나노 초)만 추가해주면 된다. interface를 준수하고 추상화를 잘 하면 클라이언트 영향을 최소화할 수 있다. 상속을 통한 재사용 및 추가 기능을 통한 확장 1. 서브 클래스는 수퍼 클래스의 기능을 재사용. 추가적인 기능 ..
클린 코드 소개 및 OOP 컴파일러, 인터프리터, VM이 이해할 수 있는 코드는 누구나 짤 수 있다. 하지만 사람이 이해할 수 있는 코드는 잘 교육된 SW 엔지니어만 짤 수 있다. 현실은 빠르게 만들어야 해서 TDD, 리팩토링, 코드 리뷰도 안한다. 나중에 한다고 말만 하고 안한다. 대부분의 버그는 버그를 수정하다 나온다. 코드 1줄 수정하면 3줄에서 버그가 발생한다. 프로젝트 완료가 다가올 수록 수정하는 데 자원이 많이 든다. 클린 아키텍처를 이용하면 처음에는 시간이 좀 걸릴지라도 나중에 자원을 아끼게 된다. 내가 구현하려는 것을 대략적으로라도 종이, 화이트보드에 그려봐야 한다. 1. Why Clean Code SW는 한번 작성되면 10번 이상 읽힌다. 나뿐만 아니라 다른 사람들도 보기 편하도록 작성해야 한다. 인간이 이해할 수..