rlb*_*ond 20 language-agnostic coding-style
因此,我经常无法用简洁的名称描述函数.在重用的函数中通常不是问题,但通常需要将大型过程分解为子函数.通常,这些得到奇怪的名字,比如connectionsToAccessLines或handleWallVisionSplit或类似的东西.虽然这些功能只做一件事,但要为它们提供一个好名字是非常困难的,因为它们只是一个更大算法的一部分.
你在这种情况下做了什么?这非常令人沮丧.
Jim*_*ans 19
有时如果你不能提出一个好的函数名,那么这表明该函数没有一个漂亮,清晰的焦点,需要重构.如果它是一个类方法,也许类也需要重构.
但是找到最好的名字是非常值得的,因为它使你的代码更容易理解和使用.
更新:许多软件工程作者都谈到了命名的重要性.Henry F. Ledgard的编程谚语(1975)和Brian Kernighan以及PJ Plaugher的编程风格元素(1978)是早期的,仍然值得一读.史蒂夫麦康奈尔的精彩代码完整版(2005年第2版)是一个更新的例子,专门讨论了这一主题.
编程风格的元素部分地模仿了Strunk和White的Style of Elements,它实际上具有惊人的相关性.他们强调散文清晰,非常简洁,适用于我们的技术写作和评论(以及命名),但我一直认为它类似于我们在重构和改进代码时所做的工作.
Ada*_*lls 14
我想在更大的算法的上下文中使用可笑的长方法名称,因为它减少了查看函数实现的需要.
像ReadPropertiesFromFileThenWriteToSession这样的名称比ReadProps更好.
最近,伟大的Phil Karlton讽刺地说:计算机科学中只有两个难题 - 命名和缓存失效.我的经历使我相信这有很多道理.
将事物命名为一门艺术就像它是一门科学一样,因此没有任何硬性规定.也就是说,我有时会阅读Ottinger关于变量和类命名的规则,它有一些很好的启发式记忆.我最喜欢的一个是使用名词短语,例如 - person.getName()或bitTorrentClient.findPeersFromTracker().在这两种情况下,代码行的意图类似于英语中的短语.
有时您只需重新编写名称即可减少函数的名称长度.代替:
void RetrievePropertiesFromRemoteStore()
Run Code Online (Sandbox Code Playgroud)
你可以使用:
void RetrieveRemoteProperties()
Run Code Online (Sandbox Code Playgroud)
代替:
bool CheckToSeeIfUserIsAuthorized()
Run Code Online (Sandbox Code Playgroud)
使用:
bool IsUserAuthorized()
Run Code Online (Sandbox Code Playgroud)
减少它的另一种方法是重新考虑函数的作用.而不是像这样的一个函数:
void GetUserProfileAndSetUpSession()
Run Code Online (Sandbox Code Playgroud)
你可以有:
void GetUserProfile()
void SetupSession()
Run Code Online (Sandbox Code Playgroud)