코드 냄새 145 - 단락 해킹

부울 평가를 가독성 지름길로 사용하지 마세요.

TL;DR: Don't use Boolean comparison for side effect functions.



문제


  • 가독성
  • 부작용

  • 솔루션


  • IF로 변환

  • 문맥



    똑똑한 프로그래머는 이러한 개선에 대한 강력한 증거가 없는 경우에도 해킹되고 모호한 코드를 작성하는 것을 좋아합니다.

    성급한 최적화는 항상 가독성을 떨어뜨립니다.

    샘플 코드



    잘못된




    userIsValid() && logUserIn();
    
    // this expression is short circuit
    // Does not value second statament
    // Unless the first one is true
    
    functionDefinedOrNot && functionDefinedOrNot();
    
    // in some languages undefined works as a false
    // If functionDefinedOrNot is not defined does
    // not raise an erron and neither runs
    

    오른쪽



    if (userIsValid()) {
        logUserIn();
    }
    
    if(typeof functionDefinedOrNot == 'function') {  
        functionDefinedOrNot();
    }
    // Checking for a type is another code smell
    

    발각



    [X] 반자동

    함수가 불순한지 확인하고 단락을 IF로 변경할 수 있습니다.

    일부 실제 린터는 이 문제에 대해 경고합니다.

    태그


  • 조기 최적화

  • 결론



    똑똑해 보이려고 하지 마세요.

    우리는 더 이상 50대가 아닙니다.

    팀 개발자가 되십시오.

    처지
















    학점



    Unsplash에 있는 Michael Dziedzic의 사진


    A computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are, in short, a perfect match.



    빌 브라이슨






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


    좋은 웹페이지 즐겨찾기