Code Smell 141 - 엔진, 차량, ImpliCar

야생에서 IEngine을 본 적이 있습니까?

TL;DR: Don't prefix or suffix your classes



문제


  • 가독성
  • 결함
  • 구현 이름

  • 솔루션


  • 접두사 및 접미사 제거
  • 개체가 수행하는 작업에 따라 개체 이름 지정

  • 문맥



    일부 언어에는 데이터 유형, 추상 클래스 또는 인터페이스와 관련된 문화적 규칙이 있습니다.

    이러한 이름은 따라가기 어려운 인지 번역으로 모델을 로드합니다.

    KISS .

    샘플 코드



    잘못된




    public interface IEngine
    {
        void Start();
    }
    
    public class ACar 
    {
    
    }
    
    public class ImplCar 
    {
    
    }
    
    public class CarImpl
    {
    
    }
    

    오른쪽



    public interface Engine
    {
        void Start();
    }
    
    public class Vehicle 
    {
    
    }
    
    public class Car 
    {
    
    }
    

    예외



    C#에서는 인터페이스 이름에 "I"를 넣는 것이 일반적입니다. I가 없으면 인터페이스인지 클래스인지 구분할 수 없기 때문입니다.

    이것은 언어 냄새입니다.

    발각



    [X] 자동

    동의어 사전이 있으면 어색한 이름을 가리킬 수 있습니다.

    태그


  • 네이밍

  • 결론



    모델에 실제 이름을 사용하십시오.

    처지







    더 많은 정보




  • 학점



    Unsplash에 있는 Tim Mossholder의 사진


    Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.



    제이미 자위스키






    이 기사는 CodeSmell 시리즈의 일부입니다.


    좋은 웹페이지 즐겨찾기