필수!!
TL;DR: 이름이 불분명한 함수는 의도를 숨기고 독자를 혼란스럽게 합니다. 설명적이고 행동 중심적인 이름을 사용하세요.
일반적인 용어로 명명된 기능은 독자가 자신의 동작을 이해하기 위해 구현을 자세히 살펴보게 만듭니다.
이렇게 하면 시간이 낭비되고 오류가 발생할 가능성이 높아집니다.
클래스 이름이 추가 컨텍스트를 제공하지 않는 독립 실행형 함수로 작업할 때 이름 지정이 더욱 중요해집니다.
이번 문제는 말하고 묻지 말라의 원칙과 직접적인 관련이 있습니다.
호출자가 기능을 추론하도록 하는 모호한 동작을 노출하는 대신 명령형 이름은 정확한 동작을 전달하여 코드를 검사할 필요 없이 독자에게 안내합니다.
함수 이름을 설명적으로 지정하면 불필요한 추측을 없애고 이 원칙에 부합하게 됩니다.
public String dateFormatting(Date date) { return new SimpleDateFormat("yyyy-MM-dd").format(date); } public void load() { System.out.println("Loading..."); }
public String formatDate(Date date) { return new SimpleDateFormat("yyyy-MM-dd").format(date); } public void loadUserPreferences() { System.out.println("Loading user preferences..."); }
[X] 매뉴얼
do, run, process, load 등과 같이 모호한 용어를 사용하는 함수 이름을 검토하면 이 냄새를 감지할 수 있습니다. .
자동화된 린터는 이러한 패턴을 표시하거나 지나치게 일반적인 이름을 가진 기능을 강조할 수 있습니다.
[X] 초급
함수 이름은 이름과 기능이 일대일로 명확하게 일치해야 합니다.
이러한 편견을 깨면 개발자는 컨텍스트에 대한 코드 세부 정보를 조사해야 하므로 디버깅, 검토 및 확장 속도가 느려집니다.
AI 도구는 도메인을 이해하지 못한 채 일반 함수 이름을 생성하는 경우가 있습니다.
AI를 사용할 때 함수 이름은 설명적이고 행동 지향적이어야 함을 지정하세요.
AI 모델은 함수 서명을 사전 정의된 명명 모범 사례와 비교하여 모호한 이름을 감지하는 데 도움을 줄 수 있습니다.
AI와 수동 코드 검토를 결합하면 최상의 결과를 얻을 수 있습니다.
기억하세요: AI 도우미는 실수를 많이 합니다
Without Proper Instructions | With Specific Instructions |
---|---|
ChatGPT | ChatGPT |
Claude | Claude |
Perplexity | Perplexity |
Copilot | Copilot |
Gemini | Gemini |
함수 이름은 단순한 라벨이 아닙니다. 그것은 독자와의 계약입니다.
모호한 이름은 본 계약을 위반하고 혼란을 야기합니다.
설명적이고 동작 지향적인 이름은 의사소통을 단순화하고 코드 유지 관리 및 확장을 더 쉽게 만듭니다.
코드 냄새는 제 생각입니다.
사진: britishlibrary, Unsplash
함수 이름은 동사 또는 동사구여야 하며
의미있는
로버트 C. 마틴
이 글은 CodeSmell 시리즈의 일부입니다.
위 내용은 코드 냄새 - 비명령형 함수 이름의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!