タグ付けされた質問 「workaround」

5
複雑なソフトウェアはどの程度の冗長性/堅牢性を実装する必要がありますか?
この質問の焦点:一部のソフトウェアは「余分な作業」を実行して、ソフトウェア内の1つまたは複数の内部エラーにもかかわらず「最終的に成功/満足」の結果を得る機会を増やします。結果が成功した場合、これらはすべてユーザーの知らないうちに発生します。 複雑なソフトウェアの定義: 存続期間中に10人以上の開発者によって作成(提供)されたコードが含まれており、同じ時間枠で記述されていない それぞれに注意事項がある10以上の外部ライブラリに依存 典型的なソフトウェアタスク(ユーザーが望む結果を生成するため)には10個以上の入力パラメーターが必要です。それらのほとんどはデフォルト値を持ちますが、ユーザーが制御を必要とする場合は構成可能です。 最も重要なことは、実行されるタスクに関連して適切な複雑さを持つソフトウェア、つまり不必要に複雑にならないソフトウェアです。 編集:複雑なものは何ですか?ComplexとComplicatedには大きな違いがあります。をご覧ください。(直接リンク) この質問内の冗長性/堅牢性の定義:(コメントに基づいて堅牢性を追加) 現在のパラメーターセットを使用したときにソフトウェアタスクが失敗した場合は、別のパラメーターを試してください。 明らかに、これらの「異なる」パラメータは異なるコードパスを使用し、結果として異なる(できればより良い)結果をもたらす可能性があるという内部知識が必要です。 これらの異なるコードパスは、外部ライブラリの観察に基づいて選択される場合があります。 最後に、実行される実際のタスクがユーザーの仕様とわずかに異なる場合、ユーザーは不一致の詳細を示すレポートを受け取ります。 最後に、10以上の構成可能なパラメーターと同様に、冗長性とレポートも構成可能です。 そのようなソフトウェアの例: データベース移行 ビジネスデータベース ソース管理データベースなど Word文書とOpenOffice文書、PowerPointおよびOpenOffice Drawなどの間のバッチ変換 ウェブサイト全体の自動翻訳 Doxygenなどのソフトウェアパッケージの自動分析。ただし、分析をより信頼性の高いものにする必要がある場合(つまり、単なるドキュメンテーションツールではない) パケットが失われる可能性があり、多くの再試行が予想されるネットワーク通信 この質問はもともと、意図的に悪いコードにどのように対処しますか?しかし、現在はソフトウェアの肥大化の原因の1つに焦点を当てています。この質問は、新機能の追加など、ソフトウェアの膨張のその他の原因には対応していません。 おそらく関連する: (巨大な)プロジェクトで複雑なコードを処理する方法 人々はどのようにして非常に複雑で読みにくいコードを書いて維持するのですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.