반응형 분류 전체보기39 Clean Code 짜기4 명령과 조회를 분리해야한다. 함수 수행시 명령과 조회를 동시에 하게 되면 혼란을 초래해 코드 확인시 해석이 어려울수 있다. public boolean set(String attribute, String value); if (set("username", "userA")) attribute인 속성값을 찾아 value로 설정한 후 성공-true 실패 - false 반환 코드이다. 코드를 해석하는 입장에서는 "username" 이 "userA"으로 설정된건지 확인하는 코드인지 아니면 "username"을"userA"로 설정하는 코드인지 혼란이 온다. "set" 이라는 단어가 동사인지 형용사인지 분간하기 힘들기 때문이다. 해결책은 코드를 명령과 조회를 분리해서 짜는 방법이 있다 . if (attributeExis.. 2019. 10. 22. Clean Code 짜기3 함수 인수 가장 이상적인 인수 개수는 0개(무항), 다음 1개(단항), 다음 2개(이항), 3개부터는 가능한 사용하지 않는게 좋다. 인수가 많아질수록 인수마다 유효한 값으로 모든 조합을 구성해 테스트하기가 힘들어진다. 함수에 인수 1개를 넘기는 경우는 1. 인수에 질문을 던지는 경우 boolean fileExiste("MyFile") 2. 인수를 뭔가로 변환해 결과를 반환하는 경우 InputStream fileOpen("MyFile")은 String 형의 파일 이름을 InputStream으로 변환한다. 함수 이름을 지을 떄는 두 경우를 분명히 구분한다. 이벤트 함수는 입력 인수만 있다. 프로그램은 함수 호출을 이벤트로 해석해 입력 인수로 시스템 상태를 바꾼다. passwordAttemptFailedNti.. 2019. 10. 21. Clean Code 짜기2 함수 당 추상화 수준은 하나로 한 함수 내에 추상화 수준을 섞으면 코드 해석에 많은 어려움이 생긴다. 추상화 수준이 높음 - getHtml() 추상화 수준이 적당함 - String pagePathName = PathParser.render(pagepath); 추상화 수준이 낮음 - append("\n") 코드는 위에서 아래로 한 함수 다음 추상화 수준은 한 단계 낮은 함수가 오도록 한다. ( TO 문단을 읽듯이 프로그램이 읽혀야 함) - 내려가기 규칙 추상화 함수의 핵심 - 짧으면서도 '한 가지'만 하는 함수 ------------------------------------------ 직원 유형에 따라 다른 값 계산해 반환하는 함수 public Money calculatePay(Employee e) th.. 2019. 10. 21. Clean Code 짜기 1 Clean Code를 짜기위해선 변수명, 클래스, 함수 같이 어떠한 곳에 쓰이는 것들의 의도를 분명하게 지어 쓰이는 의도를 정확하게 알고 이름 지은것만 봐도 어떠한 역할을 하는지 분명하게 짓는게 좋다. 변수, 함수, 클래스 이름은 존재 이유, 수행기능, 사용 방법 이러한 질문들의 대답을 이름만 통해서도 알아야한다 따로 주석이 필요하다면 의도를 분명히 드러내지 못해서라고 한다. ex) int abc; // 이번년도 글작성수 이 변수에서 abc는 아무 의미도 찾지못하고 주석을 통해 확인이 가능하다 int thisYearPostsContents; 이렇게 의도가 드러나도록 하면 변수명만 보고서 어떠한 역할을 하는지 알 수 있다. 코드의 의미를 흐리는 단서는 쓰면 안된다 ex) hp, aix, sco 는 유닉스 .. 2019. 10. 13. 이전 1 ··· 3 4 5 6 7 8 9 10 다음 반응형