주석(3)

책너두 5기 10일차 로버트 C. 마틴의 클린코드 p.84 ~ p.94 내용 정리 함수나 변수로 표현할 수 있다면 주석을 달지 마라 명명법을 올바르게 사용하여 주석의 필요성을 없애자. 위치를 표시하는 주석 // Actions //////////// 같은 배너 아래에 모아두는 것은 필요할 때도 있지만 극히 드물게 사용해야 한다. 닫는 괄호에 다는 주석 차라리 함수를 줄이는데 시간을 쓰자 저자를 표시하는 주석 준수가 작성함은 소스 코드 관리 시스템이 있는 한 무의미한 주석이다. 주석으로 처리한 코드 내가 주석으로 처리하면, 다른 사람은 지우기를 주저 한다. 이전의 기록은 소스 코드 관리 시스템이 한다. 지금 필요없으면 지우자. 기록은 존재한다. ...

2023년 8월 10일 · 1 분 · 배준수

주석(2)

책너두 5기 9일차 로버트 C. 마틴의 클린코드 p.74 ~ p.83 내용정리 나쁜 주석 대부분은 나쁜 주석이다. 주절거리는 주석 특별한 목적이나 이유가 없는 주석. 달아야 한다면 제대로 명확하게 달자 같은 이야기를 중복하는 주석 코드 내용을 그대로 중복하는, 쓸데없는 주석 오해할 여지가 있는 주석 값이 반환되는 곳, 조건 등이 불확실하게 전달되선 안된다. 의무적으로 다는 주석 모든 코드에 주석을 달아야 한다는 등의 규칙은 불필요하다. 이력을 기록하는 주석 이젠 깃과 같은 관리 시스템이 존재하니 필요 없어졌다. ...

2023년 8월 9일 · 1 분 · 배준수

주석(1)

책너두 5기 8일차 로버트 C. 마틴의 클린코드 p.67 ~ p.73 내용정리 4. 주석 나쁜 코드에 주석을 달지 마라. 새로 짜라. 브라이언 W. 커니핸, P. J. 플라우거 주석은 실패를 만회하기 위해 사용된다. 주석 없이는 자신을 표현할 방법을 찾지 못해 할 수 없이 사용하기 때문이다. 주석은 거짓말을 한다. 코드는 유지 보수 되지만 주석은 그렇지 않기 때문이다. 코드가 수정되고 변화하고 진화하지만 주석은 그대로면서 거짓이 되고 잘못된 정보를 퍼뜨린다. 엄격하게 관리된 주석이 필요할 수도 있지만, 결국 최선은 주석이 필요없는 코드이다. ...

2023년 8월 8일 · 2 분 · 배준수

함수(2)

책너두 5기 7일차 로버트 C. 마틴의 클린코드 p.57 ~ p.66 내용정리 명령과 조회를 분리하라! 함수는 뭔가를 수행하거나 답하거나 둘 중 하나만 해야한다. public boolean set(String attribute, String value); if (set("username", "unclebob"))... 대신 1 2 3 4 if (attributeExists("username")) { setAttribute("username", "unclebob"); ... } 로 명확하게 해서 혼란을 주지 말자. 오류 코드보다 예외를 사용하라! 오류 코드를 반환하면 명령/조회 분리 규칙이 위반된다. ...

2023년 8월 7일 · 2 분 · 배준수

함수(1)

책너두 5기 6일차 로버트 C. 마틴의 클린코드 p.46 ~ p.56 내용정리 3. 함수 함수 당 추상화 수준은 하나로! 추상화 수준이 섞이면 안된다. 위에서 아래로 코드 읽기: 내려가기 규칙 다음 함수로 나아갈 수록, 추상화 수준이 낮아져야 한다. SWITCH 문 짧게 만들기 힘들지만 최대한 적게 쓰고, 반복을 줄인다. before 1 2 3 4 5 6 7 8 9 10 11 12 13 public Money calculatePay(Employee e) throws InvalidEmployeeType { switch (e.type) { case COMMISSIONED: return calculateCommissionedPay(e); case HOURLY: return calculateHourlyPay(e); case SALARIED: return calculateSalariedPay(e); default: throw new InvalidEmployeeType(e.type); } } after ...

2023년 8월 5일 · 2 분 · 배준수

의미있는 이름(2)

책너두 5기 5일차 로버트 C. 마틴의 클린코드 p.35 ~ p.45 내용 정리 2장 의미있는 이름 의미 있는 맥락을 추가하라 state만 보고는 주소인지, 상태인지 알 수없다. addrstate면 주소에서 ‘주’를 뜻한다는 것을 파악할 수 있다. 예시) 맥락이 불분명한 함수 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 private void printGuessStatistics(char candidate, int count) { String number; String verb; String pluralModifier; if (count = 0) { number = "no"; verb = "are"; pluralModifier = "s"; } else if ( count == 1) { number = "1"; verb = "is"; pluralModifier = ""; } else { number = Integer.toString(count); verb = "are"; pluralModifer = "s"; } String guessMessage = String.format( "There %s %s %s%s", verb, number, candidate, pluralModifier ); print(guessMessage); } GuessStatisticsMessage 클래스를 만든 후 세 변수를 넣는다. ...

2023년 8월 4일 · 5 분 · 배준수

의미있는 이름(2)

책너두 5기 4일차 로버트 C. 마틴의 클린코드 p.24 ~ p.34 내용 정리 그릇된 정보를 피하라 이름을 지을 때 비슷한 이름으로 헷갈리게 하거나, 실제 List가 아닌데 list를 넣거나, 소문자l과 대문자 O 등으로 헷갈리게 해선 안된다. 의미 있게 구분하라 다른 이름을 지을 때 명확히 구분되도록 이름을 차별화해라. a1,a2,a3 라던가, customor와 customerobject처럼 어떤 차이인지 모르도록 해선 안된다. 발음하기 쉬운 이름을 사용하라 팀 프로젝트다보니 대화를 나눠야 하는데 한 글자씩 말해야 하면 불편하다. 읽고 발음할 수 있는 단어를 사용해라. ...

2023년 8월 3일 · 2 분 · 배준수

의미있는 이름

책너두 5기 3일차 로버트 C.마틴의 클린코드 p.13 ~ p.23 내용 정리 론 제프리스 모든 테스트를 통과한다. 중복이 없다. 시스템 내 모든 설계 아이디어를 표현한다. 클래스, 메서드, 함수 등을 최대한 줄인다. 중복을 줄이고 한 기능만 수행하며 표현력을 높여라. 작게 추상화하라. 워드 커닝햄 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드다. 코드가 그 문제를 풀기 위한 언어처럼 보인다면 아름다운 코드다. 코드를 독해하느라 고민해야할 필요가 없어야 한다. 언어를 단순하게 보이도록 만드는 책임은 우리에게 있다. 저자의 생각 이 책은 저자와 동료들이 옳다고 믿고 있는 깨끗한 코드에 대해 설명한다. 무조건 진리이니 받아들인다는 자세는 곤란하지만 고민하고 생각하고 공부하면 좋은 결과를 낼 수 있을 것이다. 또한 이 책과 다른 의견도 마땅히 수용해야 한다. ...

2023년 8월 2일 · 3 분 · 배준수

깨끗한 코드란?

책너두 5기 2일차 로버트 C.마틴의 클린코드 내용 정리 추천사 (James O. Coplien) 덴마크의 속담에는 ‘사소한 곳에서 발휘하는 정직은 사소하지않다.’ 라는 말이 있다. 이 책을 읽을 때 가져야 하는 자세를 말해준다. 소프트웨어 개발에서 아키텍쳐가 중요하다는 것은 누구나 동의한다. 책임 있는 전문가라면 프로젝트를 시작할 때 생각하고 계획할 시간을 확보해야 한다. 세세함의 주의를 기울이는 태도는 당연하지만 두 가지 이유로 중요하다. 큰 실무에서 실력을 쌓고 신뢰를 얻으려는 전문가는 먼저 작은 실무부터 실력을 쌓고 신뢰를 얻어야 하기 때문 꼭 맞게 닫히지 않는 문이나 비뚤어진 바닥 타일이나 지저분한 책상 등 아주 사소한 것들이 전체의 매력을 깎아먹기 때문 대다수의 활동은 제조가 아닌 유지보수와 관련되어 있다. 과거 일본에서 나타난 TPM(Total Productive Management)이라는 품질관리론이 있다. 여기의 5S 원칙이 Lean의 토대가 되었다. ...

2023년 8월 1일 · 7 분 · 배준수

클린코드 읽기

책너두 5기 1일차 책 : 로버트 C.마틴의 클린코드 주제 로버트 C. 마틴이 쓴 클린 코드는 제목 그대로 ‘깨끗한 코드’를 지향한다. 함수를 생성하는 것, 주석을 작성하는 것, 전체적인 구조 등 코드를 작성할 때 필요한 가이드이다. 가독성에서, 지속적인 유지 및 보수와 확장에서, 팀의 협업에서 필요한 덕목이다. 중반부에선 현존하는 코드를 어떻게 바꿀것인가를 다양한 사례를 통해 보여준다. 종반부에선 위와 같은 노력끝에 나타나는 결과들을 보여준다. 이 책 은 끊임없이 왜 코드를 깔끔하게 작성해야 하는가를 설득하고 그 방법을 말해준다. ...

2023년 7월 31일 · 1 분 · 배준수