2

私はプロジェクトを設計しているコンピュータサイエンスの学生です。良い例やソフトウェア、さらにはハードウェアでさえ、通常のユーザーにとっては機能が豊富で、使いやすい機能を備えていることと、新しいユーザーにとっては威圧的すぎることの境界線を越えているのではないかと考え始めました。また、機能が豊富で「肥大化」していない高品質のアプリケーションを設計するためのヒントや本を誰かに勧めてもらえますか?

4

8 に答える 8

8

「すべてを可能な限りシンプルにしますが、シンプルではありません。」- アルバート・アインシュタイン

「追加するものが何もないときではなく、取り除くものが残っていないときに完璧に到達します。」-アントワーヌドサンテグジュペリ


私は派手になろうとはしていませんが、これらの引用は本当に最良のアドバイスです。デザインのシンプルさがあなたの目標であるべきです。シンプルさを実現するのは簡単ではありません!それどころか、それはかなり難しいですが、それは可能です。

少し違った考え方をしてみてください。それよりも

これが肥大化する前に、いくつ追加できますか?

試す

ユーザーに優れたエクスペリエンスを提供しながら、含めることができる機能と要素の数はどれくらいですか?

于 2009-04-28T20:44:01.503 に答える
1

これは、このトピックに関するプレゼンテーションのスライドの良いセットです:RescuePrincess2.0

ビジネスの最初の順序は、アプリケーションを使いやすくすることだけです。それを超えて、私が言えるのは、架空のユーザーのために機能を書くことに注意することです。コーディングを開始する前に、誰かが実際にそれを必要としていることを確認してください。

于 2009-04-28T20:46:42.013 に答える
1

あなたの質問への直接の答えとして:ほとんどすべてのマイクロソフト製品。ここでは私の偏見を示していますが、Microsoftはコードベースを維持し、アプリの元の機能が付着したクラッドの山の下でほとんど失われるまで、機能の上に機能を追加する傾向が強いです。

たとえば、MSWordを見てください。それでも開いて入力を開始することはできますが、ドキュメントのセクションの番号を付け直して残りの部分をそのままにしておきたい場合は、神は禁じられています。付録への参照を含む目次を生成する場合、天国は禁止します。この種のものはワードプロセッサにとって厳格なものであり、Wordはそれをサポートします。それは、マニュアル、数杯のコーヒー、および出血があなたの机の上に向かいます。

これを行うのはマイクロソフトだけではありません。このことは、あらゆる種類の製品で常に発生する傾向があります。しかし、彼らは最悪の犯罪者の1人であることがわかりました。

于 2009-04-28T21:12:44.697 に答える
0

1:ユーザーは何を必要とし、何を望んでおり、

2:どの機能を実装する時間がありますか?

あなたの質問はかなり一般的です。どの機能が膨満感を構成しますか?その種類は、ウイルス対策スキャナー、OS、またはワードプロセッサのいずれを作成しているかによって異なります。

于 2009-04-28T20:47:34.943 に答える
0

「良い」と「多すぎる」の間に明確な障壁はありません。しかし、それはあなたが何をしたいかによります。

SDKを開発している場合は、実装をいくつかの小さなライブラリに分割することをお勧めします(1つの大きなSDLライブラリだけでなく、SDLコアなどがありますSDL_MixerSDL_Image

アプリケーションを開発している場合は、モジュールベースのシステムとプラグインメカニズムを維持してください。そうすることで、新しい機能をより簡単に追加でき、膨満感をより簡単に検出できます。

新しい機能を追加するポイントに到達する可能性があります。一部の機能は「素晴らしい」と見なされ、他の機能は「肥大化」と見なされます。そうしないと、アプリケーションが「機能不足」と呼ばれることもあれば、「十分」と呼ばれることもあります。

于 2009-04-28T20:47:59.250 に答える
0

これは正確な見積もりではありませんが、アイデアは次のようなものでした。

ソフトウェアは、追加するものがない場合ではなく、削除するものがない場合に最適です。

本質的に、より単純でより的確なソフトウェアは、より優れています。

優れたソフトウェア設計の例を入手するには、今日人気のあるプログラムを見てください。グーグルアプリケーションは見るのに良い場所でしょう。おそらくSkype。ええ、StackOverflowですら。:)

威圧的になりたい場合は、CADの世界に行ってください。たとえばBlenderをチェックしてください。それはフリーウェアの3Dデザイナーソフトウェアです。良いツールだと言われていますが、UIにはボタン/パネル/メニューなどがたくさんあります。それは赤ちゃんうさぎを泣かせます。残念ながら、これが「悪い」UIの良い例になるかどうかはわかりません。3D設計は非常に複雑なプロセスであり、これらのツールはすべておそらく適切な場所にあります。しかし、それは間違いなく威圧的です。:)

不正なUIデザインは、多くの場合、専用ハードウェアに付属する専用ソフトウェアで見つけることができます。残念ながら、頭のてっぺんから例をあげることはできません。

于 2009-04-28T20:56:02.990 に答える
0

私は常に、プロジェクトを可能な限り拡張可能な単なるスケルトンになるように設計する傾向があります。制限要因は、パフォーマンス、複雑さ、またはサードパーティの制限です。
このようにして、基本構造を完成させた後に機能を追加できます。ユーザーは、必要な機能を追加することもできます。

これは、多くの構成がなくても使い勝手が良いGUIアプリケーションではおそらくうまく機能しませんが、私が開発するライブラリではこのアプローチを使い続けています。(これらは、高度に変更可能なソフトウェアを使用したい他のコーダーによって使用されます)

機能が肥大化したアプリケーション/ライブラリを開発することはそれほど難しくありません。しかし、それは他の開発者/ユーザーが自分のニーズに合わせて簡単に拡張できるアプリを開発することです。

于 2010-11-02T18:07:13.050 に答える
0

幅広いプラグインシステムを開発して、いつでも追加したり削除したりできるようにします。問題が解決しました。それがスパゲッティコードを書くのと同じくらい簡単だったとしたら。;)

于 2012-09-30T12:41:12.630 に答える