개발교양도서/클린코드 6

[클린코드] 명령과 조회를 분리하라

함수는 두 가지 중 하나이다. 1. 명령 2. 조회 '명령'은 특정 행위(do)를 한다. '조회'는 특정 상태(state)를 조회한다. 그러므로 함수는 명령과 조회가 같이 있으면 안된다. 예를 들어, public boolean set(String userName, String password); 언뜻 보면 set 함수는 userName과 passWord를 받아 회원정보를 설정(do)하는 함수 인 것 같다. ( 명령함수) 그러나 Return 값을 보면 boolean이다. False나 True는 조회가 되었는지 여부를 리턴할때 쓰는 자료형이다. 즉, 명령과 조회가 혼합된 함수이다. 이런 함수는 혼란을 일으킨다. 고로 함수를 분리해주어야 가독성이 올라간다. if(attributeExists("userName"..

[클린코드] 매개변수의 개수

Clean Code 『CLEAN CODE(클린 코드)』은 오브젝트 멘토(OBJECT MENTOR)의 동료들과 힘을 모아 ‘개발하며’ 클린 코드를 만드는 최상의 애자일 기법을 소개하고 있다. 소프트웨어 장인 정신의 가치를 심어 주며 book.naver.com 가장 이상적인 함수의 매개변수 개수는 몇 개일까? 답은 '0'개이다. 만약 매개변수를 1개, 2개, 3개로 늘리려면 '어쩔 수 없는 특별한 이유'가 필요하다. 함수는 X(매개변수)를 받아 처리(f)하고 Y(결과)를 반환(return)한다. 매개변수가 많아질수록 다양한 경우의 수가 발생한다. 매개변수의 증가는 함수를 검증하고 테스트하는데 복잡도를 증가시킨다. 그러므로 매개변수는 최대한 줄이는 것이 옳다. 그럼 로버트 C. 마틴이 말하는 어쩔 수 없는 특..

[클린코드] 출력인수를 가급적 피하라 ( this의 존재 이유 )

Clean Code 『CLEAN CODE(클린 코드)』은 오브젝트 멘토(OBJECT MENTOR)의 동료들과 힘을 모아 ‘개발하며’ 클린 코드를 만드는 최상의 애자일 기법을 소개하고 있다. 소프트웨어 장인 정신의 가치를 심어 주며 book.naver.com 함수는 매개변수를 갖는다. 매개변수로 들어 온 값을 '인수'라고 한다. 인수에는 두 가지가 있다. 1. 입력인수 2. 출력인수 함수는 특정 목적에 맞게 인수를 '처리'해야 한다. 인수는 처리대상이 된다. boolean fileExists("Myfile"){ // 생략... } 위 함수는 Myfile이라는 이름을 가진 파일이 존재하는지 조회하는 함수이다. 매개변수에 조회하고 싶은 대상을 인수로 입력해야한다. 이 때의 인수를 '입력인수'라고 한다. pub..

[클린코드] switch문 사용법 : 제어의 역전

Clean Code 『CLEAN CODE(클린 코드)』은 오브젝트 멘토(OBJECT MENTOR)의 동료들과 힘을 모아 ‘개발하며’ 클린 코드를 만드는 최상의 애자일 기법을 소개하고 있다. 소프트웨어 장인 정신의 가치를 심어 주며 book.naver.com switch문은 클린코드에 부적합하다. 이유는 크게 두 가지이다. 1. 여러가지 case가 있어 한 가지 함수에 다양한 작업이 포함될 수 있다. 2. 작게 만들 수 없다. 함수는 작고 한 가지 작업만 수행되어야 한다고 믿는 로버튼 C. 마틴에게 swith문은 부적합한 문법이다. 사용하기 어려운 switch문 // 월급 계산법 public Employee caculatePay(Employee e) { switch(e.type) { case COMMISS..

[클린코드] 한 가지 추상화, 한 가지 추상화 수준 [ 함수 ]

Clean Code 『CLEAN CODE(클린 코드)』은 오브젝트 멘토(OBJECT MENTOR)의 동료들과 힘을 모아 ‘개발하며’ 클린 코드를 만드는 최상의 애자일 기법을 소개하고 있다. 소프트웨어 장인 정신의 가치를 심어 주며 book.naver.com '클린코드'의 저자 로버트 마틴은 말한다. 함수는 작은 함수가 좋다고 확신한다. 작은 함수는 한 가지 기능만 한다. 만약 함수가 두 가지 기능으로 설명된다면 이미 큰 함수이다. 여기서 한 가지 기능이란, 한 가지 '추상화'를 의미한다. 한 가지 추상화 아래 코드는 회원가입을 수행하는 함수이다. 회원가입 버튼을 누르면 해당 함수가 실행된다. 회원가입은 세 가지 작업으로 세분화된다. 1. ID 유효성 검사 2. DB에 저장 3. 페이지 전환 정리하면, 한..

[클린코드] 깨끗한 코드란 무엇인가?

Clean Code 『CLEAN CODE(클린 코드)』은 오브젝트 멘토(OBJECT MENTOR)의 동료들과 힘을 모아 ‘개발하며’ 클린 코드를 만드는 최상의 애자일 기법을 소개하고 있다. 소프트웨어 장인 정신의 가치를 심어 주며 book.naver.com 로버트 마틴의 클린코드를 읽으며, 프로젝트 하나를 깨끗한 코드로 바꾸려 한다. 우선, 깨끗한 코드란 무엇인지 알아보자. 깨끗한 코드란, 유지보수가 쉬운 코드를 의미한다. 유지보수가 어려우면 새로운 코드에 투자할 시간이 줄고 간단한 문제가 반복적으로 발생한다. 버그를 발견하거나 운영환경이 변하거나 신규변경사항이 생기거나 버그 방지 방안을 모색하는 등의 유지보수 상황에서 유지보수를 쉽게 할 수 있는 코드가 깨끗한 코드라 할 수 있다. 그러므로 깨끗한 코드..