因此,我正在处理这个类,它应该通过web服务从供应商请求帮助文档。我试着把它命名为documententretriver, VendorDocRequester, DocGetter,但它们听起来不太对。最后,我在dictionary.com网站上浏览了半个小时,试图找到一个合适的词。
带着坏名字开始编程就像早上头发很糟一样,接下来的一天就会每况愈下。感觉我吗?
因此,我正在处理这个类,它应该通过web服务从供应商请求帮助文档。我试着把它命名为documententretriver, VendorDocRequester, DocGetter,但它们听起来不太对。最后,我在dictionary.com网站上浏览了半个小时,试图找到一个合适的词。
带着坏名字开始编程就像早上头发很糟一样,接下来的一天就会每况愈下。感觉我吗?
当前回答
简而言之: 我同意好名字很重要,但我不认为你必须不惜一切代价在实现之前找到它们。
当然,最好一开始就有个好名字。但如果你不能在2分钟内想出一个,以后重命名将花费更少的时间,从生产力的角度来看是正确的选择。
长: 一般来说,在实现之前对名称考虑太久通常是不值得的。如果你实现你的类,命名它为“Foo”或“Dsnfdkgx”,在实现的时候,你会看到你应该给它命名什么。
特别是在Java+Eclipse中,重命名一点也不麻烦,因为它会小心地处理所有类中的所有引用,并警告您名称冲突等。只要这个类还没有在版本控制存储库中,我不认为重命名5次有什么错。
基本上,这是一个如何思考重构的问题。就我个人而言,我喜欢它,尽管它有时会惹恼我的队友,因为他们相信永远不要碰一个运行系统。从您可以重构的所有内容来看,更改名称是您可以做的最无害的事情之一。
其他回答
不要忘记设计模式(不仅仅是GoF模式)是一种提供公共词汇表的好方法,只要适合情况,就应该使用它们的名称。这甚至可以帮助熟悉命名法的新手快速理解体系结构。您正在处理的这个类是否应该充当Proxy,甚至是Façade ?
如果这个名称可以向外行程序员解释清楚,那么可能就没有必要更改它。
如果你是一个。net开发人员,我强烈建议你阅读BradA, Cwalina的书——框架设计指南。这里都解释清楚了。
你现在所做的很好,我强烈建议你坚持你当前的语法,是:
语境+动词+ how
我使用这个方法来命名函数/方法,SQL存储过程等。通过保持这种语法,它将使你的智能感知/代码窗格更加整洁。你需要EmployeeGetByID() EmployeeAdd() EmployeeDeleteByID()当您使用更符合语法的语法(如GetEmployee()、AddEmployee())时,您会发现如果在同一个类中有多个get,情况会变得非常混乱,因为不相关的东西会被分组在一起。
我把它比作用日期命名文件,你想说2009-01-07.log而不是1-7-2009.log,因为在你有了一堆之后,顺序就完全没用了。
不,调试对我来说是最困难的事情!: -)