問題タブ [design-principles]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oop - Liskov Substitution Principleの例は何ですか?
Liskov Substitution Principle (LSP) がオブジェクト指向設計の基本原則であると聞いたことがあります。それは何であり、その使用例は何ですか?
java - インターフェイス分離の原則の背後にある理由は何ですか?
Interface Segregation Principle (ISP) は、多くのクライアント固有のインターフェイスが 1 つの汎用インターフェイスよりも優れていると述べています。何でこれが大切ですか?
oop - オープン/クローズド原則の背後にある意味と理由は何ですか?
オープン/クローズの原則では、ソフトウェア エンティティ (クラス、モジュールなど) は拡張に対してオープンである必要がありますが、変更に対してはクローズされている必要があります。これは何を意味し、なぜそれが優れたオブジェクト指向設計の重要な原則なのですか?
algorithm - 単一の権限のあるコレクションを参照せずに、一連のオブジェクトのサイズを追跡するエレガントな方法は何ですか?
更新: この質問は、デザインの原則、エレガンス、意図の表現、特にデザインの選択によって他のプログラマーに送信される「シグナル」のコンテキストでお読みください。
オブジェクトのセットの 2 つの「ビュー」があります。1 つは、文字列値によってオブジェクトにインデックスを付けるディクショナリ/マップです。もう 1 つは、オブジェクトを序数 (順序付け整数) でインデックス付けするディクショナリ/マップです。オブジェクト数の信頼できる情報源として機能できるオブジェクト自体の「マスター」コレクションはありませんが、2 つの辞書には常にすべてのオブジェクトへの参照が含まれている必要があります。
新しいアイテムがセットに追加されると、参照が両方の辞書に追加され、オブジェクトの新しい合計数の影響を受けるいくつかの処理を行う必要があります。
オブジェクトのセットの現在のサイズを参照する信頼できる情報源として何を使用すればよいですか? 私のすべてのオプションには、ある次元または別の次元で欠陥があるようです. 辞書の 1 つを一貫して参照することはできますが、それは、その辞書が他の辞書よりも優れていることを示唆するものです。信頼できるリストとして機能するオブジェクトの単純なリストである 3 番目のコレクションを追加することもできますが、これにより冗長性が増します。実行中のカウントを格納するのは最も簡単に思えますが、冗長性も増し、コレクションの自己追跡カウントをオンザフライで参照するよりも脆弱です。
より小さな悪を選択することを避けることができる別のオプションはありますか、それともエレガンスの妥協を受け入れる必要がありますか?
oop - Scala のパターン マッチングは Open/Closed Principle に違反していますか?
新しいケース クラスを追加する場合、すべてのパターン マッチング コードを検索して、新しいクラスを処理する必要がある場所を見つける必要があるということですか? 私は最近この言語を学んでおり、パターン マッチングの賛否両論を読んでいるうちに、パターン マッチングをどこで使用すべきかについて混乱していました。以下を参照してください。
短所: ビースト
コメントもそれぞれのケースでかなり良いです。では、パターン マッチングはわくわくするものですか、それとも使用を避けるべきものですか? 実際、「使うタイミング次第」という答えになると思いますが、ポジティブなユースケースとネガティブなユースケースは何ですか?
design-principles - 優れたアプリケーションが「設計上」考慮すべき機能
デフォルトの答えが「場合による」であることは知っていますが、優れたアプリケーションを開発するために使用している機能のリストを知りたいです。
設計時に考慮しなければならない機能に特に関心があります。追加が遅れると多大なコストがかかるからです。
最も重要な機能に投票できるように、回答ごとに 1 つの機能を挙げてください。
あなた自身の戦争の話のような追加情報は、高く評価されます.
私はゼロからアプリケーションを強化するためにこの質問をします。この目標を持っているのは私だけではないと思うので、優れたアプリケーションにあると思われる機能を書いてください。
asp.net-mvc - すべてのフォーム コントロールを HtmlHelper でレンダリングできないのはなぜですか?
System.Web.Mvc.HtmlHelper (hidden、checkbox、password、textbox) を使用してレンダリングできる HTML フォーム コントロールと、HTML で明示的に記述できない (file、submit) 必要がある理由を知っている人はいますか? この分離の原理は何ですか?
c# - C# でのユーザー コントロールの理解に問題がある
これまでに作成したのは1つだけなので、ユーザーコントロールは初めてです。今日、ユーザーコントロールは自己完結型であり、親コンテナーからの情報に依存しないことになっていることを読んでいます。その部分はわかりますが、理解に苦労しているのは、その原則に基づいてプログラムを設計する「正しい」方法です。
そのページにユーザーコントロールがあるページがあるC#でWebフォームを作成しています。ascx ファイルでユーザー コントロールを作成し、それを aspx ページにドラッグしました。ユーザー コントロールは、SQL ストアド プロシージャの結果を表示するための 2 つの日付ボックスとグリッドビューです。
このコントロールを再利用したいのですが、「依存しない」に違反せずに、現在の特定のページに対して実行したいストアドプロシージャをユーザーコントロールに「伝える」方法がわかりません親コンテナ」ルール。
ありがとう
design-principles - 「メタデータ設計原則」とは何ですか?
応募を検討している職務内容書を検討していますが、記載されている要件の 1 つに「メタデータの設計原則に精通している」というものがあります。
簡単な説明をしてもらえますか?私はおそらくその概念に精通していますが、その用語はこれまで聞いたことがありません。
Google で詳細情報を検索しましたが、良い結果が得られませんでした。メタデータの原則と実用性というタイトルのこのホワイト ペーパーを除きます。少し重かったので、簡単な説明を見つけたいと思っていました。
追加メモ: これまでのすべての回答に感謝します。彼らはとても良かったです。メタデータとは何かについてはよく知っていることを明確にしたかったのですが、「メタデータ設計の原則」については聞いたことがありません。メタデータにはどのような設計原則がありますか? これは、本を書くのに十分なトピックですか? パンフレット用?Robert Harvey が指摘するように、人事部の誰かが発明したあいまいな用語のように聞こえます。
solid-principles - 単一責任の原則: 参考文献クラスを Reader、Writer、Container クラスに分ける必要がありますか?
カウボーイ コーダーは、SO ベテランの助けが必要です。
ファイルから読み取られる参考文献を使用する特定のアプリケーションがあります(実際には、異なるファイルである可能性がありますが、単一のファイルのみを想定しましょう)。
アプリケーションと同じ方法で参考文献を使用する必要がある新しいアプリケーションを作成するため、対応するクラスをコピーしました。
数日後、私は物事を実行しました %-| ...
問題は次のとおりでした。
Bibliography クラスには、参考文献を読み取り、書き込み、保持するためのコードがあります。参考文献を読み取るためのクラスが 1 つと、すべての値を保持するコンテナー クラスがあれば、私の作業はずっと簡単だったでしょう。参考文献を書いたり編集したりしたくありません。ただ読み込んで値を保持するだけです。
参考文献クラスをBibliographyReader、BibliographyWriter、およびBibliography(Container)クラスに分割するのが最善であるという私の考えは正しいですか?
PS: 誰か「カウボーイ コーダー」、「カウボーイ コーディング」などのタグを付けてもらえませんか? このタグが本当に恋しいです ;)