質問

私はコンピュータ科学科の学生設計のプロジェクトをしたいのかなどが代表的な例としてあげられたソフトウェア、ハードウェアとの方針に従わせることにとって機能豊かな良く使える特定のユーザーにとっても脅威に新しいユーザーもう誰にもお勧めずに良いヒント/書設計のための良質なアプリケーションに機能豊かなの肥大化""?

役に立ちましたか?

解決

  

「すべてのものはできる限りシンプルですが、単純ではないことを確認します。」 - アルバート・アインシュタイン

     

は、「完璧では何もないときではないに達し追加するには、左が、そこにあるときには何も奪うように残っていません。」 - アントワーヌ・ド・サン=テグジュペリ

<時間>

私は軽薄なことをしようとしていないのですが、これらの引用符は本当に最高のアドバイスです。デザインのシンプルさがあなたの目標でなければなりません。シンプルさを実現するのは簡単ではありませんことを!逆に、それは非常に困難ですが、それは可能です。

少し異なるものを考えてみてください。ではなく

  

これは肥大化になる前に私が追加することができますどのように多くのこと?

してみてください。

  

まだ私のユーザーのための優れた体験を提供しながら、私は含めることができる機能や要素の最小数を教えてください。

他のヒント

こちらは良いスライドプレゼンテーションのトピック: 救姫2.0.

初めのサービスですの応用ます。その一言です"という声をいただき、注意書き機能の想像上のユーザー:必ず誰かが実際に必要です符号といいます。

あなたの質問に直接答えとして:ほとんどすべてのMicrosoft製品。私はここに私のバイアスを示したんだけど、Microsoftは自分のコードベースを維持し、アプリの本来の機能はほぼ増額CRUDの塚の下に失われるまでの機能の上に機能を追加する強い傾向があります。

例えば、MS Wordのを見て、あなたはまだそれを開いて、入力を開始することができますが、あなたが一人で残りの部分を残したまま、ドキュメントのセクションの番号を変更したい場合は、神が禁止しています。あなたは、付録への参照を含んで目次を生成する場合天国は禁止しています。原料のこの種は、ワープロのために何かデrigeurで、言葉はそれだけで、あなたはそれがマニュアルなしで行われ得ることができない方法でそれをサポートしているコーヒーのいくつかのカップ、そして包帯を叩いてからの出血を止めるために、それをサポートしていますあなたの机の上に頭ます。

マイクロソフトは、これを行うだけではありません。この事は、製品のすべての種類で、すべての時間を発生する傾向があります。しかし、彼らは最悪の犯罪者の中で、私が見つけたされます。

1:どのようなユーザーが必要とする、としたいですか、と

2:特徴あなたはどちらを実装するための時間を持つことになります。

あなたの質問はかなり一般的です。これは肥大化を構成していますか?その種類のウイルス対策スキャナ、OSやワードプロセッサを書いているかどうかによって異なります。

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

あなたがSDKを開発している場合、私はいくつかの小さな図書館であなたの実装を分割お勧めします(だけではなく、一つの大きなSDLライブラリ、SDLコア、SDL_MixerSDL_Image、などがあります。)

あなたがアプリケーションを開発している場合、モジュールベースのシステムおよびプラグイン機構を維持します。 こうすることで、新しい機能をより簡単に追加することができ、膨張は、より容易に検出することができます。

あなたは、いくつかは、「偉大な」を検討し、他の人「肥大化」する新機能を追加しますポイントを得ることがあります。そうでなければ、あなたのアプリケーションがいくつかは、「機能に乏しい」と呼んでますし、他の人が「ちょうど十分」それを呼び出すという点に到達することがあります。

これは、正確な引用ではありませんが、アイデアは、このようなものでした

  

を追加するより多くのものがないと、ソフトウェアの作品は、完璧ではありませんが、削除するより多くの何もないときます。

本質的には、へのポイント、より簡単で、ソフトウェアで、より良います。

優れたソフトウェア設計の例を取得するには、今日人気のある番組を見てみましょう。 Googleのアプリケーションは、見て素敵な場所でしょう。おそらくスカイプ。へぇ、でもStackOverflowの。 :)

あなたが威圧したい場合は、

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

悪いUIデザインはしばしばpropieritaryハードウェアが付属していますpropieritaryソフトウェアで見つけることができます。残念ながら、私はあなたに私の頭の上から任意の例を与えることはできません。

私はいつも彼らができるだけ拡張できるだけのスケルトンをしているような方法で私のプロジェクトを設計する傾向にあります。制限要因は、性能、複雑さやサードパーティ・制限されている。
この方法は、あなたは、基本的な構造を終えた後の追加機能を追加することができます。また、ユーザーは自分の必要な機能を追加することができます。

これはおそらく、多くの設定を行わなくても良いユーザビリティを持っている必要があり、GUIアプリケーションのための非常に良い動作しませんが、私は私が開発したものLIBSのためにこのアプローチには良いこだわっています。 (彼らは、ソフトウェアの高度modifable作品を持っていると、他のプログラマーが使用している)。

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

あなたはいつでも追加やものを取るように、

幅広いプラグインシステムを開発します。問題が解決しました。それはスパゲッティコードを書くのと同じくらい簡単だった場合に限ります。 ;)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top