Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
TIL (2022.02.20)
#clean_code
2 years ago
2,896
2


TIL (Today I Learned)

2022.02.20

오늘 읽은 범위

2장) 의미있는 이름

책에서 기억하고 싶은 내용을 써보세요.

  • 변수의 존재이유는? 수행 기능은? 사용 방법은? 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다. (p.22)

  • 한 개념에 한 단어를 사용하라 (p. 34)

  • 맥락을 개선하면 함수를 쪼개기가 쉬워지므로 알고리즘도 좀 더 명확해진다. (p.36)

  • 코드를 개선하려는 노력을 중단해서는 안된다. (p. 38)

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 개발자 대부분이 겪는 가장 큰 고민 중에 하나가 변수 이름 짓기가 아닌가 싶다. 변수이름 짓기에 대해서 어렵지만 큰 생각을 안하고 사용하였는데, 이번 챕터를 읽고 생각이 달라졌다.
    책을 읽고 내가 짠 코드를 보면 비슷한 단어를 많이 사용하고 있었고, 의미가 모호한 이름을 사용하고 있어서 바로 리팩토링을 적용 할 수 있었던 챕터였던 것 같다.
    이렇게 간단히 코드를 개선하려는 동기부여를 해주는 클린코드이다.

  • 책을 읽고 변수 이름짓기에 통용되는 가이드를 찾아 볼 수 있었다.
    바로 구글의 java naming guide 인데, 이를 통해 기본적인 규칙을 적용해 나아갈 수 있다.

  • 그래도 아마 제일 어려운건 변수이름 짓기가 아닐까 싶다. 🤣

  • 영어 공부도 필요하다는 것을 깨닫게 된다..

  • 이번 챕터을 읽고 개선한 코드를 잠시 적어본다.


    const amount = (price * (100 - 22)) / 100;
    다음과 같은 금액을 계산하는데 22가 무엇을 뜻하는 걸까요?
    위에 코드는 제세공과금을 제외한 금액을 구하는 함수입니다. (제세공과금 : 5만월을 초과하는 경품에 당첨되었을 때 내야 하는 기타 소득세이며 물품 가격에 22%를 내야 한다. 😓)
    이렇게 리팩토링을 하면 의미를 알 수 있고 검색하기도 쉬운 이름이 될 수 있다. const CUSTOMER_TAX_PERCENT = 22;
    const amount = (price * (100 - CUSTOMER_TAX_PERCENT)) / 100;

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 인터페이스 이름은 접두어를 붙이지 않고 구현 클래스 이름을 택한다고 한다.

    • public interface IPublishFactorypublishFactory public class publishFactoryImpl

  • 헝가리식 표기법

    • 변수 및 함수의 인자 이름 앞에 데이터 타입을 명시하는 코딩 규칙. 하지만 공식 가이드 라인에서는 사용하지 말 것을 권고.

2 comments