코드 깔끔함-

3225 단어

코드 깔끔함-

  • 코드 정결의 도리는 책과 관련된 독서 노트인데 정결의 코드는 스스로 해석한 것이다. 코드를 읽는 것은 우수한 문장을 읽는 것과 같이 글자를 보면 뜻을 알 수 있고 대략적인 코드 기능을 한꺼번에 이해할 수 있어야 한다.코드는 먼저 읽을 수 있어야 하고, 그 다음에야 기능의 실현을 요구해야 한다.
  • 개발자로서 현재 기본적으로 팀워크를 중시하는 업무 방식에서 규범은 기능보다 훨씬 중요하다. 개발된 기능은 버전 교체에서 다시 존재하지 않을지 모르지만 규범은 계속 존재한다.
  • 깔끔한 코드를 위해서는 반드시 통일된 팀 규범을 따라야 한다.혼란스러워 명명도 제대로 할 수 없는 코드는 후속 인수인 유지보수 비용만 증가
  • 1. 명실상부하다


    명실상부하게 말하자면 간단하지만, 이것은 매우 엄숙한 일이다. 이름을 잘 고르는 데는 시간이 걸리지만, 절약하는 시간은 낭비하는 것보다 많으니, 명명에 주의하고, 더욱 좋은 이름을 발견하면 낡은 것으로 바꾼다
    변수, 함수, 혹은 클래스 이름은 이미 모든 큰 문제에 대답했을 것이다. 이 이름을 보면 그가 무엇을 하는지 알아야 한다
    
    int d;//     ,   
    
    

    여기 명칭 d는 아무것도 설명하지 않았다. 그는 시간에 대한 사라짐을 일으키지 않았다. 더욱이 일계는 말할 것도 없고 뒤에 주석이 있지 않다고 말할 수도 있다. 그러나 네가 사용할 때 d를 보면 무슨 뜻인지 알 수 있겠니?주석을 뒤져서 봐야지.우리가 한 것은 코드를 읽는 것이다.주석을 읽는 것이 아니라, 물론 이것은 주석이 무의미하다는 것이 아니라, 단지 코드가 읽을 수 있다면 주석을 쓸 필요가 있겠는가
    
    int elapsedTimeInDays;//     ,   
    
    

    이렇게 하면 이 변수는 정말 명실상부하다.

    2. 오도 방지

    
    int[] acountntList;
    
    

    여기에 우리는 하나의 수조를 acountList라고 명명했다. 이것은 분명히 오도된 명명이다. 하나의 수조를list로 명명했다. 그러면 우리가 이 수조를 조작할 때 가장 먼저 생각한 것은list를 사용하는 방법이 아닐까?

    3. 의미 있는 구분


    숫자 시리즈로 명명a1,a2.....aN은 의미에 따라 명명된 대립면으로, 이렇게 명명된 것은 정확한 정보를 전혀 제공하지 않는다.
    시험해 보다
    
        public static void copyChars(char a1[],char a2[]){
    
            for(int i=0;i

    만약 매개 변수 이름이 소스와 destination으로 바뀌면, 이 함수는 훨씬 그럴듯하게 변할 것이다
    쓸데없는 말은 또 다른 무의미한 구분이다.가령 네가 Product류가 하나 더 있다면 ProductInfo류나 ProductData류가 있다면 그들은 명칭은 다르지만 뜻은 다를 것이 없다
    다음은 계정 정보를 얻는 함수입니다
    
    getAccount();
    
    getAccounts();
    
    getAccountInfo()
    
    

    프로그래머가 계정을 가져오려고 하는데, 그는 어떤 함수를 조정해야 하는지 아십니까?

    4. 읽은 이름으로


    가능한 한 자주 사용하는 식별하기 쉬운 단어를 사용하시겠습니까?

    5. 구성원 접두어

    m 접두사로 구성원 변수를 표시할 필요도 없고, 클래스와 함수를 충분히 작게 해서 구성원 접두사에 대한 수요를 없애야 한다.

    6. 인터페이스 이름 지정


    선도어 I가 남용되었습니다. 예를 들어 I로 시작하는 것, 예를 들어 IShapFactory
    보통 하나의 인터페이스는 이렇게 명명해야 한다
         ,  Runnable(     )
    
        ,  List(  )
    
          ,  OnClickListener(       )
    

    코드 예
    
    interface OnReasonItemSelectedListener {
    
        fun onReasonItemSelected(itemId: Int)
    
    }
    
    

    7.유명


    클래스 이름과 대상 이름은 명사나 명사 단어, 예를 들어Customer,Account, 데이터나 info 같은 명사 사용을 피해야 한다

    8.방법명


    방법명은 postPayment, deletPage,save와 같은 시동사나 동사 단어여야 한다.속성 액세서리 수정기와 단언은 그 값에 따라 명명해야 한다

    9. 소감마다 한 단어씩


    같은 코드에 컨트롤러가 있고 관리자가 있으면 곤혹스럽다.왜 controllers나 관리자를 다 쓰지 않아요?
    당신의 코드를 사용할 프로그래머들에게 일관된 명칭 아르바이트는 하늘의 복음이다

    10. 쌍관어 쓰지 마라


    같은 단어를 서로 다른 목적에 사용하지 않고 같은 용어를 서로 다른 개념에 사용하는 것은 기본적으로 쌍관어이다. 규칙을 따르면 여러 종류에서dd방법이 있을 수 있다. 이러한dd방법의 매개 변수 목록과 반환값이 의미상 등가만 있으면 모든 것이 순조롭다.
    그러나 누군가가 '일치 유지' 를 결정하고dd라는 단어를 사용해서 이름을 붙일 수도 있습니다. 설령 정말 이런 뜻을 나타내려고 하는 것은 아니더라도, 예를 들어 여러 클래스에dd방법이 있습니다. 이 방법은 두 개의 현존 값을 연결하거나 연결해서 새로운 값을 얻을 수 있습니다. 이 클래스에는 하나의 매개 변수를 콜렉션에 넣는 방법이 있습니다. 이 방법을dd라고 합니까?이렇게 하면 다른dd방법과 일치하는 것 같지만 실제 의미는 다르다. insert나 append 같은 단어로 명명해야 한다. 이 방법을dd라고 명명하면 이중관어이다.

    좋은 웹페이지 즐겨찾기