例程、过程、方法——无论你怎么称呼它们,它们都是我们开发人员的重要组成部分。你认为哪一个特征是最重要的?
(通过为每个答案提供一个特征,可以单独为他们投票。即这个问题的目的不是决定挑选出一个特征,而是突出所有重要的特征。)
例程、过程、方法——无论你怎么称呼它们,它们都是我们开发人员的重要组成部分。你认为哪一个特征是最重要的?
(通过为每个答案提供一个特征,可以单独为他们投票。即这个问题的目的不是决定挑选出一个特征,而是突出所有重要的特征。)
我认为最重要的标准是它有一个单一的目的。
在那之后,它正确地满足了那个目的(并且只有那个目的)。
自注释过程名称。
示例:GetStoreFromAddress GetCarsByMake
它应该很容易进行单元测试。
例程的名称与其功能一一对应。
令人惊讶的是,函数 X 执行 X 和 Y 的频率,或者 X 的大部分而不是 X 的全部。
没有一个单一的标准可以区分一个好的例程和一个坏的例程。
标准包括:
设计为易于人类阅读和理解 - 没有它,很难修改它以拥有将在此处列出的所有其他精彩属性
它尝试做的事情的数量。
如果这不完全是 1,那么您可能有问题。
它不应该有意想不到的副作用。
良好的错误处理(可靠性)
简洁
(这应该是一个半有趣的答案,但所以不会让自己发布一个词!)
它必须是原子的
代码行。
您应该跟踪例程投入使用后所需的编辑次数。一个“好”的例程是一个几乎不需要编辑的例程。当需要进行大量修复时,“糟糕”的例程肯定会证明自己如此。
这可以通过在每次编辑后更新的每个方法调用上的注释标题轻松完成。
它做一件事或将多件事委托给其他功能
清晰 - 易于理解
如果您将例程视为 API 的一部分,我认为这更容易回答。没有多少例程是独立的,至少在真正有用的系统中没有。老实说,我认为编写例程时要考虑的最重要的事情是:
直观性 我的指令集有多直观——人们是否能够理解其目的而无需翻阅大量文档?
正交性 我的例程有多正交?每个人都完成一项特定的任务,还是有多种(但略有不同)的方式来做同样的事情?如果有,那就不好了,API 可能需要重新设计。
紧凑性完成简单任务需要多少 API?我是否需要学习很多东西才能完成某件事,或者我可以只用几个直观而强大的例程就足够了吗?您需要权衡这个与正交性的权衡,以便为您的特定领域取得良好的平衡。
从例程名称中,您可以说出例程的作用(当您检查代码时,您会意识到您是对的 ;-)
该例程始终使用一致的抽象级别。
我会说有据可查(并实际执行)的前后条件。
单个返回点