2009-08-13 3 views
12

나는 수업을 명명하는 방법을 결정하는 데 종종 어려움을 겪는다. 클래스의 목적이 명확하지 않기 때문에 xxx *** 컨트롤러 ***, xxx *** 관리자 ***, xxx *** 정보 ***, xxx *** 도우미 *** , xxx *** Util *** 등 어디에서나 볼 수 있습니다.클래스 이름 chaos

HTTP를 통해 업로드하는 클래스가 있다면 그 이름을 HttpUploader 또는 그 라인에 표시하는 경향이 있습니다. 비슷한 인스턴스가 HttpUploadManager, HttpTransmissionController, HttpUploadHelper 등으로 명명 된 인스턴스가 많이 있습니다.

저는 컨트롤러, 관리자, 정보 등을 언제 사용하는지 혼란 스럽습니다. 더 나은 수업을 즐기는 데 도움이되는 기사 나 책이 있습니까?

추신 :

+1

내 본능은 가능하면 xxxManager, xxxController 등에서 멀리 떨어져 있어야합니다. 저는이 인용문을 최근에 보았습니다. "컴퓨터 무효화 및 캐시 이름 지정 문제가 두 가지 있습니다." - Phil Karlton –

+0

@Dawie Strauss MVC 대회는 컨트롤러 이름 뒤에 '컨트롤러'를 지정합니다. –

+0

@ George Stocker 당신이 나에게있어 :-) 질문에있는 모든 예제 (xxxController, xxxManager, xxxInfo, xxxHelper, xxxUtil)는 xxxController가 가장 모호하지 않다고 생각합니다. 다른 사람들은 종종 가치보다는 혼란을 더합니다. –

답변

12

이름 지정이 어렵다 P, 그래서 우리 모두가 할 때문에, 투쟁 걱정하지 마십시오 또한, HttpSender 같은 이름 HttpTransmissionController 또는 HttpDispatchManager에 비해 꽤 빈혈 소리. 그리고 나를 믿어. 결코 더 쉽게 될 수 없어!

개인적으로 전체 컨트롤러/관리자/도우미/Util/어떤 접미사 건 내가 규칙을 사용하는 경향이 있습니다 (예 : ASP.NET MVC의 경우 컨트롤러 클래스 이름이 "컨트롤러"로 끝남)) 그런 다음 접미어를 사용하십시오. 그렇지 않으면 지옥처럼 사용하지 마십시오. 나는 HttpUploadManager보다 HttpUploader이라는 클래스를 갖고 싶어합니다.

명명에있어서 가장 중요한 점은 클래스가 말하는대로해야한다는 것입니다. HTTP를 사용하여 무언가를 업로드하는 클래스 인 경우 HttpUploader이 정확하게 설명합니다. HttpUploadManager과 같은 멋진 이름을 사용하는 것은 그것이 무엇을하는지 알려주지 않습니다. 그것은 그 자체를 업로드합니까? 여러 항목 업로드를 관리합니까? 나는 가능한 한 단순하게, 클래스/메소드/목적의 목적을 설명하는 것을 좋아합니다.

훌륭한 가이드 라인은 당신이 생각하기에 나이를 소비하는 것처럼 뭔가 이름을 짓는 데 어려움이 있고 여전히 그 이름이 합당한 이름으로 무엇인지 알아낼 수 없다면 무엇이든지 리팩토링해야 할 것입니다 더 작고 더 구체적인 구성 요소에 이름을 붙이려고합니다.

2

더 자세한 설명이 담긴 (화려한?) 접미사 목록을 사용해보십시오. ManagerManager.

일반적인 조언 (클래스의 이름에 대한 클래스 이름 지정)의 문제점은 클래스의 많은 것들이 실제와 동등한 것은 아니므로 우리의 전통적인 어휘가 잘 어울리지 않을 수 있다는 것입니다. 예를 들어, HttpUploader는 업로드에 도움이되는 다른 클래스와 조화를 이루거나 일부 조정을 수행하거나 업로드를 관리 할 수 ​​있습니다. 중개자 조정의 이런 종류의 소프트웨어에서 일반적이지만, 그것을 설명하는 단어가 너무 모호한 그들이 경멸을 초대합니다.

2

Clean Code에는 변수 이름에 대한 전체 장이 있습니다. 좋은 물건.

+0

감사합니다. 그냥 주문 했어. – akirekadu