私はコンピュータサイエンスの学生で、プロジェクトをデザインしています。どのような良い例やソフトウェア、あるいはハードウェアであっても、通常のユーザーにとって機能が豊富で機能が充実していて、新しいユーザー。また、豊富な機能を備えていますが、 "肥大化"していない良質のアプリケーションを設計するためのヒントや書籍をお勧めしますか?機能が膨らんでいます - いくらですか?
答えて
「すべてをできるだけ単純にしますが、単純ではありません」 - アルバート・アインシュタイン
「追加するものは残っていませんが、取り残されるものは何もありません。 - アントワーヌ・ド・サン=テグジュペリ
私は軽薄なことをしようとしていないのですが、これらの引用符は本当に最高のアドバイスです。デザインのシンプルさはあなたの目標です。簡単に達成することは簡単ではありません!それどころか、それはかなり困難ですが、可能です。
少し違ったことを考えてみてください。むしろ
これが増える前に何個追加できますか?
はまだ私のユーザーのための優れた体験を提供しながら、私は含めることができる機能や要素の最小数を教えてください。
を試してみてください
トピックのプレゼンテーションのスライドは、Rescue Princess 2.0です。
ビジネスの最初の順序では、アプリケーションを使いやすくする必要があります。それ以外にも、想像上のユーザーのための機能を書くことには気をつけてください:コーディングを開始する前に誰かが実際にそれを必要としていることを確認してください。
1:ユーザーが何を必要とする、としたい、と
2ん:どの機能を使用すると、実装する時間を持っているのだろうか?
あなたの質問はかなり一般的です。どの機能が膨らみますか?そのような種類は、ウイルス対策スキャナ、OS、ワープロのどちらを作成しているかによって異なります。
"良い"と "多すぎる"の間に明確な障壁はありません。 しかし、それはあなたが何をしたいかによって異なります。
あなたがSDKを開発している場合、私は
あなたの場合」(SDLコア、SDL_Mixer
、SDL_Image
、などがある、というだけで一つの大きなSDLライブラリーより)いくつかの小さな図書館であなたの実装を分割お勧めしますアプリケーションの開発、モジュールベースのシステムとプラグインのメカニズムの維持などが含まれます。 このようにして、新しい機能を簡単に追加でき、肥大化をより簡単に検出できます。
「偉大」と思われる機能や「膨れすぎる」機能が追加されることがあります。それ以外の場合は、アプリケーションが「機能が貧弱」と呼ばれるポイントに達し、「機能不足」と呼ばれるポイントがあります。
これは正確な引用ではありませんが、アイデアはこのようなものだった:
追加するより多くの何もないとき、ソフトウェアの一部は完璧ではありませんが、削除するより多くの何もないとき。
本質的に、より簡単でよりポイントはソフトウェアです。
優れたソフトウェア設計の例を得るには、今日普及しているプログラムを見てください。 Googleアプリケーションは見た目の良い場所です。おそらくSkype。 Heh、さらにStackOverflow。 :)
あなたが威圧したい場合は、CADの世界に行ってください。例:Blenderをご覧ください。それはフリーウェアの3Dデザイナーソフトウェアです。良いツールですが、UIには非常に多くのボタン/パネル/メニューなどがあります。それは、赤ちゃんのバニーを泣かせる。残念ながら、これが「悪い」UIの良い例であるとは言えません。 3D設計は非常にという複雑なプロセスであり、これらのツールはすべて適切な場所にあるはずです。しかし、それは間違いなく威圧しています。 :)
誤ったUIデザインは、プロアクティブなハードウェアに付属するプロアクティブなソフトウェアでよく見受けられます。残念ながら、私はあなたの頭の上から何かの例を与えることはできません。
あなたの質問への直接的な答えとして、Microsoftの製品はほとんどすべてです。私はここに偏見を見せているが、マイクロソフトはコードベースを維持し、機能の上に機能を追加する強い傾向があり、アプリケーションの元の機能が、
たとえば、MS Wordを見てください。残りの部分だけを残してドキュメントのセクションの番号を変更したい場合は、まだそれを開いて入力を開始できますが、神は禁じられています。あなたが付録への参照を含む目次を生成したい場合、天国は禁じられています。この種のものは、ワードプロセッサのための厳しいものであり、Wordはそれをサポートしています。マニュアルやコーヒーカップ、出血を止めるための包帯がなくてもそれをサポートすることはできません机の上に立つ。
マイクロソフトはこれを行うだけではありません。このことはあらゆる種類の製品で常に起こる傾向があります。彼らは最悪の犯罪者の一人です。
私はいつも自分のプロジェクトをできるだけ拡張性のある骨格にする傾向があります。制限要因は、パフォーマンス、複雑さ、または第三者の制限です。
このようにして、基本構造を完成した後に追加機能を追加することができます。ユーザーは必要な機能を追加することもできます。
これはおそらく、GUIアプリケーションではあまりうまく機能しません。これは多くの設定がなくても使い勝手が良いはずですが、私が開発したこれらのライブラリではこのアプローチを頑張っています。 (それらは高度に変更可能なソフトウェアを望む他のコーダーによって使用されています)
機能が肥大化しているアプリケーション/ libを開発することはあまり難しくありません。しかし、自分のニーズに合わせて他の開発者やユーザーが簡単に拡張できるアプリを開発することです。
いつでも追加したり取り出したりできるように、幅広いプラグインシステムを開発してください。問題が解決しました。もしそれがスパゲッティコードを書くのと同じくらい簡単だったら。 ;)
- 1. ビューは自動的に膨らんでいますか?
- 2. 削除してもペールメモリがハッシュで膨らんでいますか?
- 3. 膨らんだビューと要素を膨らますと
- 4. ジンジャーブレッド - 膨らんだXMLビューに黒いスペースがあります
- 5. バークレーソケットのシャットダウン機能は、どれくらい重要ですか?
- 6. Android:膨らんだレイアウトが長くかかる
- 7. Nunitでスレッディングが正しく機能していませんか?
- 8. 膨らんだビューがクリックリスナーに反応しないのはなぜですか?
- 9. python cgitbがブラウザから機能していません
- 10. Codeigniter:フォームからのアップロードが機能していません
- 11. Paypal IPNはpaypalアカウントでは機能していませんが、サンドボックスで正しく機能しています
- 12. phonebackを使用しています - xmlサーバーからのフェッチが正しく機能していませんか?
- 13. function(){}()はどのくらい正確に機能しますか?
- 14. ボタンの機能が動的コンテンツで正しく機能していません
- 15. Appengineではどんな支払いゲートウェイがうまく機能しますか?
- 16. スクロール機能で下位の位置からjQuery .offsetが機能していませんか?
- 17. なぜ私のTableLayoutは膨らませられないのですか?
- 18. 添付プロパティはWPFでどのくらい正確に機能しますか?
- 19. Laravel 5.2でページネーションが正しく機能していません
- 20. Facebookからの拡張アクセストークンが正しく機能しない
- 21. Ragtagは明らかに機能していませんか?
- 22. ぼかしイベントの機能が正しく機能していません
- 23. 膨らんだリストビューのトラブル
- 24. ランダムに不足しているHTMLブラケットがあり、メモリ使用量が膨らんでいます
- 25. お願い:この機能はjQueryでうまく機能しません
- 26. PHP配列がmysqliクエリからデータを取得していませんが、PHPmyadminでクエリが機能します
- 27. ビューを膨らませてください
- 28. pagemethodはasmxファイルではなく、aspx any suggesionから機能しませんか?
- 29. キャンバスアプリケーションのアンカータグが正しく機能していませんか?
- 30. @Scheduled注釈が正しく機能していませんか?