我不确定这是否是OCD特性,但是我发现有时我被完全阻塞,无法继续命名我认为要在外部使用的类(或函数或名称空间等)时所做的工作给定项目的 以API为例。或实用程序类库。
如果命名不完全正确(在我看来),我就是无法继续...我陷入了试图提供正确名称的困境。我尝试编写一些小应用程序,用它来查看名称,但似乎无济于事...
我知道这无关紧要,并且以任何编程思维为前提,假设您一开始就可以完美使用它……我只是对此感到无能为力……
任何提示/想法将不胜感激...
我不确定这是否是OCD特性,但是我发现有时我被完全阻塞,无法继续命名我认为要在外部使用的类(或函数或名称空间等)时所做的工作给定项目的 以API为例。或实用程序类库。
如果命名不完全正确(在我看来),我就是无法继续...我陷入了试图提供正确名称的困境。我尝试编写一些小应用程序,用它来查看名称,但似乎无济于事...
我知道这无关紧要,并且以任何编程思维为前提,假设您一开始就可以完美使用它……我只是对此感到无能为力……
任何提示/想法将不胜感激...
Answers:
在我看来,您所面临的问题不仅是找到一个好名字的更好方法,还包括解决这样做的强迫性问题。老实说,我也意识到自己的一个类似特征。毕竟,名称很重要,我喜欢我正在研究的概念的好名字。但是,它们并不总是最重要的。
这是我用来克服这种情况的一些方法:
问自己一个问题“这个班级的目的是什么?”。如果不遵循单一职责原则,则命名类和方法将变得非常困难。如果您不能回答该问题,则可能需要重新考虑您要让班级做什么,并考虑分离问题。这将使命名更容易
您有如何命名班级的模式吗?也许尝试查看一些常见的命名模式,例如该模式,一旦您解决了上面的SRP,就会更容易遵循。您的课程会解析XML吗?试试XMLParser。它是否解析XML,创建表示输入的域模型,将其持久化到数据库,然后将成功消息发布到Twitter?尝试重构。
我了解您来自哪里,以前也有过类似情况。也许尝试用一些功能充实您的类,并以一个临时名称开头。使用任何良好的IDE或重构助手,重命名类都应该是一键式操作,因此您最初为类命名的名称不必是永久的!这不仅可以帮助您克服OCD障碍,还可以让您有潜意识的时间进行进一步处理。
最后,稍微偏离主题
前几天我在做某项工作时遇到了麻烦,实现了一个非关键系统,并且我花了很多时间在玩各种类的命名等。根据功能命名接口,命名类根据它们的特定含义...例如,您可能会想拥有IXMLParser和XMLParser,但是当您的输入更改为JSON时会发生什么?试试IInputParser,那样您可以创建具体的类XMLParser和JSONParser,它们都以不同的方式实现IInputParser。
对我来说,这通常是一个标志,我脑海中尚不清楚该设计,因此我给自己起个名字,然后给自己一个时间(例如2分钟)来提出一个更好的方案,到那时,我必须使用我首先想到的那个。首先是Barney,Wilma和Fred。我做类似“ BarniesInputParser”的事情,名字是如此糟糕,我不得不提出一个更好的名字或者以后再更改它们。它们也是如此糟糕,以至于它们都是独特的,使得重构变得微不足道且安全,并且任何查看不完整代码的人都可以立即看到它是不完整的。
重要的是,在不添加功能的同时,也没有为大脑提供任何新信息来定义名称(并澄清设计)。您所要做的只是以不同的方式反驳相同的输入。
或去煮咖啡。在使用机器之前,您将拥有...