私はデザインについて友人と話し合っています。彼は解決策を提案し、私は別の解決法を提案する。私たちは両方とも正しいと思っています。それは単に「青から緑へ」の問題ですが、良いデザインと悪いデザインを区別するための優れた戦略を知っているかどうかは疑問でした。シンプルさは基準ではありません。なぜなら、見る人の目の前にあるからです。私たちのケースでは、私は自分のデザインを一番簡単なものとして提唱しています。私たちの脳のそれぞれが独自の道を開拓し、今や発見された解決策に慣れているからです。正しいデザインから間違ったものを認識する方法は?
答えて
hallway usability testingに相当します - 両方のデザインをランダムな人に説明し、それぞれがどれくらい簡単に把握できるかを試そうとします。その後、結果を比較します。
もちろん、非常に主観的な措置です。あなたは、おそらく反対することに同意する方が良いでしょう。
通常、良いデザインは、それは両方のデザインのフォロー設計ガイドライン/ルール場合はUI設計、データベース設計、など
だ場合、それらの両方が良いことによって、一般的な設計ルールに参照することができます。
私の個人的な意見では、多くの「正しい」デザインが存在する可能性がありますが、時には物事がどのように進化するかによって、あるものは他のものよりも正しいかもしれません。考慮すべき事項:
- どのデザインが読みやすく/わかりやすいのですか?
- どのデザインがよりテスト可能ですか?
- 今後どのようなデザインがより柔軟に/より簡単にリファクタリングされますか?
- 可能な将来のシナリオを含むようにさらに拡張可能なデザインはありますか? (工学上のトラップに陥ることに注意する必要がありますが)
どちらのデザインが優れていますか?私は、2つの異なるデザインを評価する際にパフォーマンスを考慮する必要があると思います。これは時期尚早の最適化ではありません。パフォーマンスは、データベースdependeantアプリケーションにとって重要です。 – HLGEM
私は、「シンプルさは見る人の目にある」というあなたの仮定に同意しません。あるコードがいかにシンプルであるかを確立する方法はたくさんあります。 Cyclomatic complexityは数十年前に書かれたよく確立されたメトリックであり、Halstead Volumeであり、より最近のメトリック「maintainability index」は有用なツールであることが証明されています。
おそらく、代わりにシンプルさを却下、あなたの引数を勝つためにそれを使用することができます;)
私は私の議論に勝つ必要はない、私は物事を学ぶ必要があり、これは相互作用を必要とする。誰が正しいのか、誰が間違っているのかは関係ありません。私はより良いデザイナーになることを学ぶことが重要です。 –
、あなたの会話を集中するために使用できるいくつかの非常に広く使われている高品質の要因があります。 「より良い」はあいまいです。
簡素なものは明確に定義されています。それは好みではなく、目に見えるものではありません。それは簡単なメトリックです。
デザインを評価するために使用できる一連の品質属性です。
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. エクセル間違ったタイムスタンプ形式認識
- 2. LUISは発話を間違って認識しています
- 3. Pyxbがシンプルタイプを間違って認識しています
- 4. Laravelは間違ったパスワードでも認証にログインします
- 5. Jenkins Mavenの間違ったコマンドを修正する方法
- 6. エビの方法が間違っているか間違っていますか?
- 7. OCRテキスト認識の間違ったテキスト表示
- 8. 私は間違った方法でコンパイルしていますか?
- 9. Rails - 間違ったURLパラメータを認識するフォームの条件文
- 10. Androidスマートフォン用に間違ったABIをインストールしたQT、正しい方法を取得する方法
- 11. 私は何をしていても間違った.sshディレクトリを使ってCygwinを修正するには?
- 12. 正しいトレーニングにもかかわらずHTTPサービスが間違った意図を返す
- 13. は式から間違った値を示しています
- 14. OpenMPの崩壊が間違った結果をもたらす
- 15. 識別子マッピングは、列の間違った番号を持っている:org.hibernate.MappingException::com.twins.FootFans.model.MemberAllTeamタイプ:コンポーネント識別子マッピングは、列の数が間違ってい
- 16. シングルページアプリケーションで、間違ったURL(404エラー)を処理する正しい方法は何ですか?
- 17. 複数のサーバーが間違ったデザインを指しているクライアントを使用していますか?
- 18. サーバロケールxmlhttp要求がリモートサーバによって間違った言語として認識されましたか?
- 19. Str [fix_num]が間違った結果をもたらす理由
- 20. スパーク結合が間違った結果をもたらす
- 21. テレグラムsendVoice()は常に「間違ったファイル識別子」を返す
- 22. 新しいページ(間違ったURL)を別のページにリダイレクトする方法は?
- 23. スピーカー認識 - Microsoft oxfordでのリクエストのエラーが間違っています
- 24. は、私はおそらく何かを明らかに不足しているか、間違った方法でこのことについてつもり
- 25. Googleは「遅延」を間違った方法で使用していますか?
- 26. Ruby on Railsからの「間違った」入力を拒否する方法
- 27. 不正なローカルインストールが間違っていましたか?
- 28. Hibernate/JPAサブクラスからのデータベーステーブルの間違った生成を修正する方法
- 29. Djangoのフレームワーク:間違った確認メール
- 30. 正規表現は正しく一致を見つけても間違って
"Criterium、またはCritは、短いコース(通常5km未満)で開催され、頻繁に閉鎖された市街地の通りで走るバイクレースです。" - それは知らなかった。 :-) – Ken
whoops ...何が基準の特異なのですか? –
固定、ありがとう:)) –