Development/Common

변수와 메서드 명명 규칙

linuxism 2012. 4. 27. 11:45


변수 와 메서드 명에 대한 15가지 명명 규칙

  1. 코드의 각각 시점에 따라 변수명을 길게 혹은 짧게 쓴다. 보편적으로 말해보자면 loop counter의 경우 1 char로, condition/loop 변수 경우에는 1단어, 메서드의 경우 1-2 단어, 클래스의 경우 2-3단어, globals한 모든 변수/메서드의 경우에는 3-4단어를 사용한다.
  2. 변수의 이름에 구체적인 이름을 사용해야한다. 해서는 않되는 예를 들어보자면 “value”,”equals”,”data”이러한 이름을 사용해서는 안된다.
  3. 변수에 대한 의미있는 이름을 사용합니다. 변수 이름은 그 내용의 정확한 설명을 정의해야합니다.
  4. 변수명이 o_, obj_, m_ etc로 시작해서는 안됩니다. 변수는 변수를 나타내는 태그를 별도로 붙여서는 않됩니다.
  5. 회사 명명 표준을 준수하고 해당 응용 프로그램에 맞춰 지속적으로 변수 이름을 작성해야합니다. : e.g. txtUserName, lblUserName, cmbSchoolType, … 그렇지 않으면 가독성을 reduce and find/replace시키는 툴들을 사용할수 없을것입니다.
  6. 프로그래밍 언어 표준을 준수하고 모순되는 소문자 / 대문자를 사용하지 마십시오: e.g. userName, UserName, USER_NAME, m_userName, username, …
    •  Java 를 예로 들면,
    • use Camel Case (aka Upper Camel Case) for classes: VelocityResponseWriter
    • use Lower Case for packages: com.company.project.ui
    • use Mixed Case (aka Lower Camel Case) for variables: studentName
    • use Upper Case for constants : MAX_PARAMETER_COUNT = 100
    • enum class 이름 과  enum values의 대문자의 경우 Camel Case를 사용합니다.
    • 상수와 enum 값 (어떤는 상수)를 제외하고 어디서나 ‘_’를 사용하지 않습니다.
  7. 서로 다른 context에서 같은 클래스의 같은 변수 이름을 재사용하지 마십시오: context의 범위 ( 메서드, 생성자, 클래스 안에서). 그렇게 함으로써 모든이들이 쉽게 이해하고 유지보수 할수있습니다.
  8. 다른 목적의 method, conditional etc를 같은 변수로 쓰지말자. 차라리 새로만들거나 다른 명칭의 변수명으로 대신하자. 이것은 유지보수적인 측면과 가독성 측면에서 중요한부분이다.
  9. ASCII 캐릭터가 아닌 변수명을 사용하지 말자. 플랫폼에 따라서 작동하지 않을수가 있다.
  10. 너무 긴 변수명은 쓰지말자 (예. 길이가 50자이상인경우) 너무 긴 이름은 보기 좋지 않고 읽기가 힘들고 몇몇 컴파일러에서 character제한에 걸려서 작동이 안한다.
  11. 하나의 언어로만 명명하자 예를들어 영어랑 독일어랑 섞어서 쓰게되면 뭔가 불일치하고 읽기도 힘들다.
  12. 이름은 메서드의 정확한 동작을 지정해야하며 대부분의 경우에 대해 동사로 시작해야합니다. 예를 들어 createPasswordHash 이런식으로 해야합니다.
  13.  회사의 명명 규칙에 따르고 어플리케이션에 따라 메서드명을 작성해야한다. getTxtUserName(), getLblUserName(), isStudentApproved(), … 같이 그러하지 않으면 가독성을 reduce and find/replace하는  tool들을 사용할수 없습니다.
  14. 회사의 명명 규칙에 따르고 대/소문자가 일치 하지 않는 characters 를 사용해서는 않됩니다. 예를 들어  getUserName, GetUserName, getusername, … 같은
    • Java의 예를 들자면
      • use  Mixed Case  for method names: getStudentSchoolType
      • use  Mixed Case  for method parameters: setSchoolName(String schoolName)
  15. 메서드 매개 변수에 대해 의미있는 이름을 사용한다면, 별도의 문서 정의가 없이도  자체적으로  문서화가 될수 있습니다.

15 Best Practices of Variable & Method Naming를 번역했습니다.

출처 - http://jangnan.wordpress.com/2012/02/21/%EB%B3%80%EC%88%98-%EC%99%80-%EB%A9%94%EC%84%9C%EB%93%9C-%EB%AA%85%EC%97%90-%EB%8C%80%ED%95%9C-15%EA%B0%80%EC%A7%80-%EB%AA%85%EB%AA%85-%EA%B7%9C%EC%B9%99/


===================================================================================




출처 - http://cafe.naver.com/centerjava/63