태그 보관물: naming

naming

명명 규칙 : camelCase vs underscore_case? 그것에 대해 어떻게 생각하세요? [닫은] 생각을 공유 할 수 있습니다. 나는 팀에서

나는 약 2 년 동안 underscore_case를 사용하고 있으며 최근 새 작업으로 인해 camelCase로 전환했습니다. 주로 코드를 읽기 쉽기 때문에).

이제 직장의 모든 사람들이 camelCase를 사용하므로 코드가 더 우아해 보입니다.

camelCase 또는 underscore_case에 대해 어떻게 생각하십니까

추신 영어 실례합니다

편집하다

일부 업데이트 먼저 :

  • 사용 된 플랫폼은 PHP입니다 (그러나 엄격한 PHP 플랫폼 관련 답변을 기대하지는 않습니다. 누구든지 사용하기에 가장 좋은 생각을 공유 할 수 있습니다.

  • 나는 팀에서 다른 사람과 마찬가지로 camelCase를 사용합니다 (대부분의 사람들이 권장하는 것처럼)

  • camelCase를 권장하는 Zend Framework를 사용합니다.

몇 가지 예 (PHP 관련) :

  • Codeigniter 프레임 워크는 underscore_case를 권장하며 솔직히 코드를 읽기가 더 쉽습니다.

  • ZF는 camelCase를 추천하며 ZF 코드가 이해하기 힘들다고 생각하는 유일한 사람은 아닙니다.

그래서 내 질문은 다음과 같이 표현됩니다.

이름 지정 규칙을 권장하지 않는 Foo 플랫폼이 있고 팀 리더가 선택하는 것을 선택하는 경우를 생각해 봅시다. 당신은 그 팀장입니다. 왜 camelCase를 선택합니까?

ps 지금까지 프롬프트 응답에 대해 모두에게 감사합니다



답변

사용하는 언어에 어느 정도 의존한다는 것에 동의합니다. 기호 이름이 언어의 내장 라이브러리 및 스톡 라이브러리와 동일한 형식을 따르는 경우 코드가 더 깔끔해 보입니다.

그러나 선택의 여지가있는 한 간단한 이유 때문에 낙타 경우보다 밑줄을 선호합니다. 그 스타일을보다 쉽게 ​​읽을 수 있습니다. 다음은 예입니다. 더 읽기 쉬운 것은 무엇입니까? 이:

aRatherLongSymbolName

아니면 이거:

a_rather_long_symbol_name

밑줄 버전을 훨씬 쉽게 읽을 수 있습니다. 내 뇌는 경계가 반대의 경우 다른 상형 문자와 유사 상형 문자 또는 숫자 (사이에 특히 곳, 낙타 경우 소문자 / 대문자 경계를 감지 할 수있는 것보다 훨씬 더 쉽게 밑줄을 무시할 수 I/l, O/0, t/I, 등). 예를 들어,이 부울 변수는 이글루가 적절한 계획 권한으로 구축되었는지 여부를 나타내는 값을 저장합니다 (의심 할 여지없이 우리 모두에게 일반적인 사용 사례).

isIllicitIgloo

이 버전을 훨씬 쉽게 읽을 수 있습니다.

is_illicit_igloo

읽기 어려운 심볼 이름보다 더 나쁜 것은 아마도 읽기 어려운 심볼 이름입니다. 좋은 기호 이름은 자체 문서화로,이를 통해 한 눈에 읽고 그 의미를 이해할 수 있어야합니다. (우리는 모두 침대에서 즐거움을 위해 코드 출력물을 읽었을 것이라고 확신하지만 때로는 서둘러 빠져 들기도합니다.) 종종 낙타 문자 기호 이름을 사용하여 잘못 읽을 수 있고 잘못된 느낌을 얻습니다. 기호의 의미론.


답변

플랫폼에서 채택한 명명 규칙을 사용해야한다고 생각합니다. C # 코드에서 underscore_case가 이상하게 보일 것입니다. Ruby의 camelCase =)


답변

솔직히 팀의 모든 사람이 동일한 체계를 사용하는 한 실제로 중요하지 않습니다. 장기적으로는 코드의 가독성이 중요하지만 모든 사람이 동일한 명명 규칙을 준수하는 것이 중요하지만, 둘 중 하나가 자연 스러울 가능성이 높습니다.


답변

John Isaacks의 답변은 다음과 같습니다.

“정직하게 코드를 읽기가 더 쉽다”의견 또는 사실?

나는 약간의 연구를하기로 결정했고이 논문을 발견 했다 . 과학은이 주제에 대해 무엇을 말해야합니까?

  1. 낙타 케이싱은 밑줄보다 정확성이 높습니다. (홀수는 51.5 % 더 높습니다)
  2. 낙타의 경우 평균 0.42 초가 걸렸으며 이는 13.5 % 더 깁니다.
  3. 교육은 스타일이 정확성에 미치는 영향에 통계적으로 유의미한 영향을 미치지 않습니다.
  4. 더 많은 훈련을 받은 사람들 은 낙타 케이스 스타일의 식별자를 더 빨리 사용 했습니다.
  5. 한 스타일의 훈련은 다른 스타일 의 찾기 시간부정적인 영향을 미칩니다 .

에서 내 블로그 게시물 주제에 나는 과학 논문을 검토하고 다음과 같은 결론을합니다.

낙타 사례 (2)속도 저하 만 프로그래밍과 관련이 있으며, 최신 IDE와 대부분 의 낙타 케이스 사용자로 인해 다른 점은 무시합니다. 토론 (투표와 함께)은 블로그 게시물에서 찾을 수 있습니다.

이 기사가 어떻게 사람들의 의견을 바꿀 수 있는지 궁금합니다. 🙂


답변

똑똑한 사람을 복사

프로그래밍 언어의 경우 언어 개발자의 스타일을 복사하십시오.

예를 들어 K & R에서와 같이 C를 정확하게 코딩합니다.

그런 다음 누군가 지루한 코딩 스타일 대화를 시작하려고 할 때 “Dennis Ritche와 함께 대화를 나눈 다음 자신의 말을 알려주세요”라고 말할 수 있습니다.


답변

일반적으로 낙타 케이스를 선호합니다. 그러나 그것은 내 경력의 대부분이기 때문에 스타일 가이드가 일반적으로 camelCase를 권장하는 언어와 환경에서 일하고 있습니다. (자바, ECMAScript, C ++). PHP 사용자는 반대의 선호를 가지고있을 것입니다.

즉, threeOrFourWords를 넘어서거나 XmlForExample과 같은 초기화를 사용하면 읽기가 중단됩니다.

이것이 이맥스가 우리에게 안경 모드를 제공하는 이유입니다.


답변

낙타

이것은 항상 가독성보다 ‘type-ability’를 선택하는 몇 안되는 장소 중 하나입니다. CamelCase는 타이핑하기가 더 쉽고 내 손가락이 더 좋아지면 약간의 가독성이 향상됩니다.

물론 프로젝트가 다른 표준으로 기존 코드베이스를 기반으로하지 않는다고 가정합니다.