2009-08-25 15 views
5

私はデザインについて友人と話し合っています。彼は解決策を提案し、私は別の解決法を提案する。私たちは両方とも正しいと思っています。それは単に「青から緑へ」の問題ですが、良いデザインと悪いデザインを区別するための優れた戦略を知っているかどうかは疑問でした。シンプルさは基準ではありません。なぜなら、見る人の目の前にあるからです。私たちのケースでは、私は自分のデザインを一番簡単なものとして提唱しています。私たちの脳のそれぞれが独自の道を開拓し、今や発見された解決策に慣れているからです。正しいデザインから間違ったものを認識する方法は?

+1

"Criterium、またはCritは、短いコース(通常5km未満)で開催され、頻繁に閉鎖された市街地の通りで走るバイクレースです。" - それは知らなかった。 :-) – Ken

+0

whoops ...何が基準の特異なのですか? –

+0

固定、ありがとう:)) –

答えて

4

hallway usability testingに相当します - 両方のデザインをランダムな人に説明し、それぞれがどれくらい簡単に把握できるかを試そうとします。その後、結果を比較します。

もちろん、非常に主観的な措置です。あなたは、おそらく反対することに同意する方が良いでしょう。

1

通常、良いデザインは、それは両方のデザインのフォロー設計ガイドライン/ルール場合はUI設計、データベース設計、など

だ場合、それらの両方が良いことによって、一般的な設計ルールに参照することができます。

6

私の個人的な意見では、多くの「正しい」デザインが存在する可能性がありますが、時には物事がどのように進化するかによって、あるものは他のものよりも正しいかもしれません。考慮すべき事項:

  • どのデザインが読みやすく/わかりやすいのですか?
  • どのデザインがよりテスト可能ですか?
  • 今後どのようなデザインがより柔軟に/より簡単にリファクタリングされますか?
  • 可能な将来のシナリオを含むようにさらに拡張可能なデザインはありますか? (工学上のトラップに陥ることに注意する必要がありますが)
+0

どちらのデザインが優れていますか?私は、2つの異なるデザインを評価する際にパフォーマンスを考慮する必要があると思います。これは時期尚早の最適化ではありません。パフォーマンスは、データベースdependeantアプリケーションにとって重要です。 – HLGEM

4

私は、「シンプルさは見る人の目にある」というあなたの仮定に同意しません。あるコードがいかにシンプルであるかを確立する方法はたくさんあります。 Cyclomatic complexityは数十年前に書かれたよく確立されたメトリックであり、Halstead Volumeであり、より最近のメトリック「maintainability index」は有用なツールであることが証明されています。

おそらく、代わりにシンプルさを却下、あなたの引数を勝つためにそれを使用することができます;)

+2

私は私の議論に勝つ必要はない、私は物事を学ぶ必要があり、これは相互作用を必要とする。誰が正しいのか、誰が間違っているのかは関係ありません。私はより良いデザイナーになることを学ぶことが重要です。 –

2

、あなたの会話を集中するために使用できるいくつかの非常に広く使われている高品質の要因があります。 「より良い」はあいまいです。

簡素なものは明確に定義されています。それは好みではなく、目に見えるものではありません。それは簡単なメトリックです。

デザインを評価するために使用できる一連の品質属性です。

http://www.softwarearchitectures.com/go/Discipline/DesigningArchitecture/QualityAttributes/tabid/64/Default.aspx

http://my.safaribooksonline.com/9780470031469/a_taxonomy_of_quality_attributes

http://www.clarrus.com/documents/Software%20Quality%20Attributes.pdf

http://www.sei.cmu.edu/pub/documents/95.reports/pdf/tr021.95.pdf

1

すべてのあなたの "ユースケース" を書き留めて、非常に少なくとも、各デザインが最小要件を満たしていることを確認してください。可能であれば、実装のいくつかの記述を開始し、拡張ポイントを想起させ、どのデザインがより柔軟であるかを見てみましょう。

両方のデザインがすべての要件を満たしている場合、簡単にするための大きなテストは、他の開発者にデザインを活用するためのコードを書くことです。あなたのデザインがエレガントだと思うが、それをインターフェースするコードが本当に乱雑になり始めると、元々思ったほどシンプルでエレガントではないでしょう。

関連する問題