3

ルーチン、プロシージャ、メソッド - 呼び名が何であれ、これらは開発者にとって重要なビルディング ブロックです。最も重要な特徴として、どのような特徴を評価しますか?

(回答ごとに 1 つの特性を提供することで、個別に投票することができます。つまり、この質問の目的は、1 つの特性を選択することではなく、重要な特性をすべて強調することです。)

4

20 に答える 20

16

最も重要な基準は、目的が 1 つであることだと思います。

その後、その目的 (およびその目的のみ) を正しく満たすこと。

于 2008-12-12T21:55:07.247 に答える
8

自己コメント プロシージャ名。

例: GetStoreFromAddress GetCarsByMake

于 2008-12-12T21:55:06.043 に答える
4

良いルーチンと悪いルーチンを区別する単一の基準はありませ

基準には次のものがあります

  • 概念の整合性: 1 つの文または段落で簡単に説明できることを行います。
  • 疎結合: その動作は、その周りのコードで何が起こっているかに敏感ではありません。
  • 妥当なサイズ: 長いルーチンは読みにくく、理解するのが難しく、概念の完全性が低い可能性があります。
  • パルナスの基準: 要件の変更がシステムの残りの部分に及ぼす影響が制限されるように、変更可能なものを 1 つ「隠す」。
于 2008-12-12T22:01:47.123 に答える
4

簡単に単体テストできるはずです。

于 2008-12-12T21:55:24.560 に答える
4

ルーチンの名前は、その機能に 1 対 1 で対応しています。

関数 X が X と Y を実行する頻度、または X のすべてではなく X の大部分を実行する頻度は驚くべきものです。

于 2008-12-12T21:56:42.437 に答える
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

ルーチンを API の一部と考えれば、これはより簡単に答えられると思います。少なくとも真に有用なシステムではなく、スタンドアロンのルーチンは多くありません。正直なところ、ルーチンを作成する際に考慮すべき最も重要なことは次のとおりです。

  1. 直観性 私の一連の指示はどれほど直観的ですか? 多くのドキュメントに目を通さなくても、人々は目的を理解できるでしょうか?

  2. 直交性 私のルーチンはどの程度直交しているか? それぞれが 1 つの特定のタスクを実行しますか、それとも同じことを実行する複数の (ただしわずかに異なる) 方法がありますか? 存在する場合、これは悪いことであり、おそらく API を再設計する必要があります。

  3. コンパクトさ 単純なタスクを実行するのにどれくらいの API が必要ですか? 何かを成し遂げるために多くのことを学ぶ必要がありますか?それとも、直感的で強力な何かを行うルーチンをいくつか実行するだけで十分でしょうか? 特定のドメインで適切なバランスを取るには、このトレードオフと直交性を比較検討する必要があります。

于 2008-12-12T22:00:50.307 に答える
1

ルーチン名から、そのルーチンが何をするかを知ることができます (そして、コードをチェックすると、自分が正しかったことがわかります ;-)

于 2008-12-12T22:01:17.233 に答える
1

原子的でなければならない

于 2008-12-12T21:53:53.520 に答える
1

コード行。

于 2008-12-12T21:54:49.180 に答える
1

ルーチンが使用された後に必要な編集の数を追跡する必要があります。「良い」ルーチンとは、編集がほとんど必要ないルーチンです。「悪い」ルーチンは、多くの修正が必要な場合に、間違いなくそうであることが証明されます。

これは、各編集後に更新される各メソッド呼び出しのコメント ヘッダーで簡単に実現できます。

于 2008-12-12T21:56:53.437 に答える
1

1 つのことを行うか、複数のことを他の関数に委任します

于 2008-12-12T21:58:10.610 に答える
1

明快さ - 理解しやすい

于 2008-12-12T21:59:08.097 に答える
1

このルーチンは、全体を通して一貫したレベルの抽象化を使用します。

于 2008-12-12T22:16:21.993 に答える
1

私は十分に文書化された(そして実際に施行された)事前および事後条件を言うでしょう.

于 2008-12-15T15:59:46.897 に答える
0

単一のリターン ポイント

于 2009-01-07T14:53:22.837 に答える