3

例程、过程、方法——无论你怎么称呼它们,它们都是我们开发人员的重要组成部分。你认为哪一个特征是最重要的?

(通过为每个答案提供一个特征,可以单独为他们投票。即这个问题的目的不是决定挑选出一个特征,而是突出所有重要的特征。)

4

20 回答 20

16

我认为最重要的标准是它有一个单一的目的。

在那之后,它正确地满足了那个目的(并且只有那个目的)。

于 2008-12-12T21:55:07.247 回答
8

自注释过程名称。

示例:GetStoreFromAddress GetCarsByMake

于 2008-12-12T21:55:06.043 回答
4

它应该很容易进行单元测试。

于 2008-12-12T21:55:24.560 回答
4

例程的名称与其功能一一对应。

令人惊讶的是,函数 X 执行 X 和 Y 的频率,或者 X 的大部分而不是 X 的全部。

于 2008-12-12T21:56:42.437 回答
4

没有一个单一标准可以区分一个好的例程和一个坏的例程。

标准包括:

  • 概念完整性:它做了可以用简单的简短形式、一句话或段落来描述的事情;
  • 松耦合:它的行为对其周围的代码中发生的事情不敏感;
  • 合理的规模:长例程更难阅读和理解,并且不太可能具有良好的概念完整性;
  • Parnas 的标准:他们“隐藏”了一件可以改变的事情,因此需求变化对系统其余部分的影响有限。
于 2008-12-12T22:01:47.123 回答
3

设计为易于人类阅读和理解 - 没有它,很难修改它以拥有将在此处列出的所有其他精彩属性

于 2008-12-12T21:55:46.543 回答
3

它尝试做的事情的数量。

如果这不完全是 1,那么您可能有问题。

于 2008-12-12T21:56:01.720 回答
3

它不应该有意想不到的副作用。

于 2008-12-15T15:56:54.233 回答
2

良好的错误处理(可靠性)

于 2008-12-12T21:57:52.090 回答
2

简洁

(这应该是一个半有趣的答案,但所以不会让自己发布一个词!)

于 2009-01-07T14:47:18.107 回答
1

它必须是原子的

于 2008-12-12T21:53:53.520 回答
1

代码行。

于 2008-12-12T21:54:49.180 回答
1

您应该跟踪例程投入使用后所需的编辑次数。一个“好”的例程是一个几乎不需要编辑的例程。当需要进行大量修复时,“糟糕”的例程肯定会证明自己如此。

这可以通过在每次编辑后更新的每个方法调用上的注释标题轻松完成。

于 2008-12-12T21:56:53.437 回答
1

它做一件事或将多件事委托给其他功能

于 2008-12-12T21:58:10.610 回答
1

清晰 - 易于理解

于 2008-12-12T21:59:08.097 回答
1

如果您将例程视为 API 的一部分,我认为这更容易回答。没有多少例程是独立的,至少在真正有用的系统中没有。老实说,我认为编写例程时要考虑的最重要的事情是:

  1. 直观性 我的指令集有多直观——人们是否能够理解其目的而无需翻阅大量文档?

  2. 正交性 我的例程有多正交?每个人都完成一项特定的任务,还是有多种(但略有不同)的方式来做同样的事情?如果有,那就不好了,API 可能需要重新设计。

  3. 紧凑性完成简单任务需要多少 API?我是否需要学习很多东西才能完成某件事,或者我可以只用几个直观而强大的例程就足够了吗?您需要权衡这个与正交性的权衡,以便为您的特定领域取得良好的平衡。

于 2008-12-12T22:00:50.307 回答
1

从例程名称中,您可以说出例程的作用(当您检查代码时,您会意识到您是对的 ;-)

于 2008-12-12T22:01:17.233 回答
1

该例程始终使用一致的抽象级别。

于 2008-12-12T22:16:21.993 回答
1

我会说有据可查(并实际执行)的前后条件。

于 2008-12-15T15:59:46.897 回答
0

单个返回点

于 2009-01-07T14:53:22.837 回答