10

デフォルトの答えが「場合による」であることは知っていますが、優れたアプリケーションを開発するために使用している機能のリストを知りたいです。

設計時に考慮しなければならない機能に特に関心があります。追加が遅れると多大なコストがかかるからです。

最も重要な機能に投票できるように、回答ごとに 1 つの機能を挙げてください。

あなた自身の戦争の話のような追加情報は、高く評価されます.

私はゼロからアプリケーションを強化するためにこの質問をします。この目標を持っているのは私だけではないと思うので、優れたアプリケーションにあると思われる機能を書いてください。

4

27 に答える 27

14

ロギングとエラー処理

于 2009-04-13T22:49:21.390 に答える
9

セキュリティ。当然のことながら、これが 14 番目の回答であることは非常に興味深いことです。

于 2009-04-13T23:27:37.213 に答える
9

ユーザー インターフェイス/エクスペリエンス デザイン多くの技術革新は、UI デザインに依存して、技術的な複雑さを使用可能な製品にまで高めています。[通常] 技術だけでは、ユーザーの受け入れやその後の市場性を勝ち取ることはできません。

IBMから:

ソフトウェア開発において、デザインは広く誤解され、過小評価されています。多くの場合、明示的なユーザー インターフェイスの設計は、コードとは別に行われません。反復設計は再コーディングになります。これは、長期的には非常に多くのコードが作成される結果になるため、近視眼的な戦略です。設計は避けられないため、実際の問題は、それが開発中のソフトウェアに暗黙のうちに残されるか、明示されて個別にキャプチャされるかです。有用な議論は、設計作業をうまく行う方法と、それを実装する人に伝達するための最適な形式でそれを捉える方法についてです。

于 2009-04-13T23:54:44.480 に答える
8

国際化
後から考えて追加すると、費用がかかる可能性があります

潜在的な落とし穴:

  • 英語以外のOS(たとえば「ProgramFiles」ディレクトリ名を想定しないでください)
  • 参照データ(表示テキストの翻訳)
  • 画像(画像内のテキストは翻訳する必要があります)
  • UIレイアウト(翻訳後の長いテキストのパディング)
  • 多言語インストーラー、EULAなど
  • ハードコードされた文字列!
  • カルチャ固有のフォーマッタを指定しない
  • 通貨、時間のローカリゼーション(例:通貨でのコンマとピリオドの使用)
  • 設計アプローチ:組み込みリソースと衛星アセンブリ(つまり「言語パック」)
  • データベース設計:言語固有の値を保存/検索する方法
于 2009-04-13T23:16:26.583 に答える
6

個人的には、私がそれに取るべき意図を与えていなかった良い機能は
拡張性です


アプリケーション コミュニティが成長するのに役立ちます。これは、マーケティングと技術の面で良いことです。コア ビジネスに集中し、優れた機能をユーザーが構築するのに任せるのに役立ちます。

于 2009-04-13T22:53:58.977 に答える
4

ユーザーストーリーからの設計。少なくともトップレベルのストーリーの最初のカットが作成されるまで、データベース設計の決定を意図的に延期します。非常に頻繁に、さまざまなユーザー手順のコンポーネントが、リレーショナル整合性とテーブル保守手順の要件によって歪められています。新しい販売注文が入力されるのを私たち全員が見た頻度はどれくらいですか。ユーザーは、顧客の詳細(電話や不明な偽のデータが必要な場合もあります)、実際にはそうではない必須フィールド、クレジットを入力するためにいくつかのフォームをナビゲートする必要があります。本当に別の部門からの情報、不完全な情報のためにエントリがキャンセルされた、数ページの深さで発見された情報など。

ナビゲートされたページ、入力されたキーストローク、中断されたタスクなどのユーザビリティメトリックを維持およびレビューする人はほとんどいません。ただし、顧客の使命とユーザーの生産性は、ソフトウェア品質の主要な決定要因である必要があります。

于 2009-04-13T23:11:41.010 に答える
4

使いやすさ-アプリケーションがどれほど拡張可能でエラーがない場合でも、その成功は通常、エンドユーザーがどれだけ気に入っているかにかかっています。下にあるゴミのようにコーディングすることもできますが、使いやすく、非常に直感的に習得できれば、それでも勝者になります。

エンドユーザーにとって、UIプログラムであることを忘れないでください。高度なユーザビリティをすべてのアプリケーションの機能にします。

コメントの誰かが、ユーザビリティを機能として実装する方法を尋ねました-残念ながら、それは機能要求を行うことができるものではありません(たとえば、「このWebサイトを使用可能にする」)が、UIを設計するときに従う必要のある一連のガイドラインのようなものです、プログラムを拡張可能にするコーディング中に従うガイドラインとよく似ています

この投稿はそのための十分なスペースではありません。使いやすさを心配する人の出発点として、SteveKrugの「Don'tMakeMeThink」を強くお勧めします。

于 2009-04-13T23:17:10.247 に答える
4

検索します。検索テキストボックスは簡単に見つけられるべきであり、結果はできるだけ良いものでなければなりません。

于 2009-04-13T22:54:39.990 に答える
4

テスト容易性。それができれば、モジュール性、関心の分離、再利用、適切なエラー処理、その他多くの優れた機能が無料になります。

于 2009-04-14T02:10:53.123 に答える
3

インターフェースの複雑さの階層化。最も一般的で望ましいアクションは非常に単純で実行が明白ですが、あまり一般的ではなく望ましくないアクションは、より複雑になることで達成されます。

于 2009-04-13T23:14:17.243 に答える
3

マウスを使用しない操作: アプリケーションは、可能な限り、ユーザーがマウスを使用せずに操作できるようにする必要があります。(ユーザビリティ、アクセシビリティの下のファイル。)

これは、必ずしもマウスレスの使用をサポートするために多大な努力をすることを意味するわけではありません。さらに、マウスを必要としない場所で強制的にマウスを使用することを控えるだけです。たとえば、Web フォームで Enter キーを押したときの既定のフォーム送信動作を無効にしないでください。ただし、それを使ってより便利なことを行う場合を除きます。

于 2009-04-13T23:45:03.003 に答える
3

* 最近のアクション/ホット アクション *

どこにいてもこの機能が気に入っています。

  • ウィキペディア - 何が変更されましたか?
  • スタック オーバーフロー - 本当にアクティブな質問はどこにありますか (アクションはどこにありますか!)
  • ブログ/受信トレイ - ほぼすべてのブログがこのように並べ替えられるのには理由があります

私が Reddit のような Web サイトにいるときでさえ、私たちの多くは最もコメントされているものを検索します。それが興味深いものだからです。

たとえば、この回答は無視されるため、これが回答のデフォルトであることを望みます! :)

于 2009-04-14T00:58:06.293 に答える
3

ショートカット キー(ctrl-f など)

于 2009-04-13T22:55:32.890 に答える
2

元に戻す

すべてのアプリケーション(コンパイラのように、インタラクティブなユーザーインターフェイスがないものを除く)は、ユーザーが現在の状態から戻ることができるように、すべてのユーザーイベント(ナビゲーション、ドキュメントと設定の変更など)を追跡する必要があります。

変更可能なデータがないアプリケーションでも、通常はユーザーがナビゲートできます。ブラウザの「戻るボタン」は、元に戻す機能の優れた例です。

于 2009-04-14T00:18:10.537 に答える
2

シンプルさ - できるだけ少ないクリック数で、ユーザーが望んでいることや期待していることを行います。

Stackoverflow はこの素晴らしい例です。インターフェースはクロムでロードされていません。Web サイトの最大のグラフィックは約 3k です。

于 2009-04-13T23:44:56.093 に答える
2

自動化- アプリケーションの操作に UI が必要ない場合は、コマンド ラインまたはスクリプトを使用して実行できるようにします。意図したジョブを実行するために基本的に UI を必要としない優れた FTP ツール (アーカイブ ツールも) が多数見つかりましたが、スクリプトを実行できないか、コマンド ライン機能がありません。

于 2009-04-14T01:08:06.673 に答える
1

Introspection: the ability for the system to programmatically make predictive determinations about its own structure and behavior. (Analogous to reflection at the language level, and a key element of extensibility.)

于 2009-04-13T23:21:48.770 に答える
1

受信トレイ は非常に小さいように見えますが、アプリケーションの使いやすさとパフォーマンスにも大きな影響を及ぼします。ユーザーがクリックして待つのではなく、
生成に数分かかる可能性のある重いレポートを要求できる場合を想像してみてください。
'彼は選択できます'準備ができたら最新のレポートを送ってください'

于 2009-04-14T00:34:00.720 に答える
1

入力フォーカスのデフォルト設定: ユーザーが入力を行うことが期待されるインターフェイス プレゼンテーションでは、入力フォーカスは、入力を開始する可能性が最も高い場所にデフォルト設定する必要があります。(これはユーザビリティ領域の特定の機能です。)

Web フォームの場合、残念ながら、フォーカスのデフォルト設定がチェックされているときにユーザーがすでに入力を開始している場合、フォーカスのデフォルト設定もユーザーの邪魔にならないように注意する必要があります。

(恥知らずなプラグイン: Web フォームでこれに対処する一般化された Javascript をいくつか維持しています。)

于 2009-04-13T23:40:45.073 に答える
1

パフォーマンス(必要に応じてレイテンシーと読み替えてください)。

無数の人々が時期尚早の最適化を全面的に叫んでいるにもかかわらず、それは単純な機能要件です。差別化を図り、より良い品質 (または時期尚早の最適化ピッカーではなく、パフォーマンスを考慮した設計) で挑戦します。

Java と CLR の VM のようなソリューション以上にパフォーマンスのレトロフィットを必要とするプロジェクトは世界に他にありません。これは、.NET 3.5 と呼ばれる、すべての製品、テクノロジ、エディション、そしてもちろん肥大化の明らかな成果物です (笑)。

VM は、すべての新機能のパフォーマンス ヒット、編集、およびその上でアプリを構築するだけであり、正直なところ Cray が必要です。

スケーラビリティはまったく別の話ですが、人々は高レイテンシのアプリを使用せず、ほとんどの CLR アプリを使用しません (このサイト/アプリのように、60% の時間の単純で適用できない Web のものは別として)それ。深刻なものをロードすると、管理されていないオフィス、管理されていない IDE、管理されていないデータベース、管理されていないゲーム、管理されていないブラウザーなどで実行されます。

誰かがバットで GC 愛好家を殴り、目を覚ますように言うべきです..

于 2009-04-13T23:03:33.213 に答える
0

回帰テスト:システムが変更されても、主要な機能要素が期待どおりに機能し続けることを簡単に定期的に検証する機能。(これは「拡張性」のより具体的な要素です。)

于 2009-04-13T23:17:43.633 に答える
0

Unicode のサポート。プレゼンテーション レイヤーのエンコーディングが ISO-8859-1 であり、パーシスタンス レイヤーのエンコーディングが UTF-8 であることにメリットがないためです。

于 2009-04-15T15:46:48.410 に答える
0

コメント。 内部標準のコメント システムを実装します (まず、文書化してください)。自動化されたコメント文書化システムが適切である場合もあれば、標準的なプログラム ヘッダー コメントとコメント規則のセットである場合もあります。コードにコメントを付ける方法を事前にプログラマーに知らせてください。クロス プログラマーのコード レビューを行い、将来の変更を視野に入れて可読性/理解可能性をチェックします。もしあなたがこのコードで次に作業する人なら、それはあなたにとって意味がありますか?

于 2009-04-13T23:48:58.160 に答える
0

モジュール性 - 生産性 - 拡張性

それが、たとえばSmart Client Software Factoryの全体的な設計目標です。そして、それは機能します。

于 2009-04-13T22:58:13.320 に答える
0

クラッシュ レポート。クラッシュする可能性があり、開発チームはいつクラッシュするかを知る必要があるため、問題を把握しておくことができます...

于 2009-04-13T22:58:40.667 に答える
0


データベース内のほぼすべてのテーブルからデータを読み取る 1 つのレポートを実行するのは常に苦痛であるため、レポートを作成する前に
データ ウェアハウスのデータベース設計パターンについて説明しているプレゼンテーション (もう見つけることができません) を見たことがあります
。解決策は、特定の期間ごとにレポートが発行される特別な非正規化データベースを作成することでした

于 2009-04-14T00:01:13.323 に答える
0

タグ付け

コミュニティ中心のアプリケーションだけでなく、基幹業務アプリケーションにもタグ付けを許可することで、従業員はこれを見る」で新しいタグを作成し、学生の記録、領収書などに添付できます...

于 2009-04-14T00:08:12.327 に答える