問題タブ [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.
design-patterns - デザインパターンに簡単に/段階的に触れるための良い情報源
毎週新しいデザイン パターンを紹介するという目標を設定したいと思います。私は今インターンシップで働いているので、パターンを学ばずに仕事をしなければならないという罪悪感を常に感じているので、これをやらせるのは難しい.
デザイン パターンとアプリケーション アーキテクチャ/パターンの両方をカバーする優れた情報源、できればウェブサイトのチュートリアル/デモステーションだけでなく書籍も知っていますか。テキストの単なるブロックではなく (これは私が学ぶ最良の方法ではありません)、チュートリアルに従うか、パターンのグラフィカルなデモンストレーションを見るのが好きな良いソースを知っていますか?
私は良い情報源を探しましたが、それらはいくつかのデザインパターンしかカバーしていないか、読むべきテキストの巨大なブロックのようです.
c# - UOM (測定単位) 設計パターン
既知の値 (メートルからフィート) の保存と変換に関する一般的な設計パターンの原則を探しています。運が悪かったので、何かが足りないに違いありません。
1 つのテーブルにさまざまな UOM を持つ多くのフィールドがあると仮定すると、ベスト プラクティスは何ですか? 現在、フィールドの多くは暗示的であり、これを標準化することを検討しています。ユーザーは自分の UOM を自由に入力できますが、他のユーザーは好みの UOM で表示できるようにしたいと考えています。
「入力された値」を保存して、一般的なプリミティブに変換する必要がありますか (ユーザーはフィートを入力し、メートルに変換して保存します)? この入力したフィート値を監査バックアップとして保存する必要がありますか?
一部のデータベーステーブルの消費者は私だけではありません。他のアプリケーションが常に値+UOMと生のユーザー入力値を認識して変換を行う方がよいでしょうか。
私が見逃している可能性のある、精度に対する深刻な変換の影響はありますか。メートル > フィート > メートルは、基幹業務アプリの変換に十分な信頼性が必要です (変換は小数点以下 17 桁まで可能ですが、表示および入力される値は小数点以下 2 桁から 4 桁に制限されます)。
既知の問題の解決策を再発明していないので、私を正しい方向に向けるための他の考えやリンクはありますか?
演算子のオーバーロードを伴う壮大な解決策を思い描いているわけではありませんが、平均的な Joe 開発者が維持できる実用的なアプリケーションで機能するものはもっとあることに注意してください。
php - MVCを理解しようとしています-私はすでにそれをやっていますか?
私はどんどん大きなアプリケーションにひざまずき始めているので、パターンとは何か、それらがどのように機能するかなどを学ぶのは良い考えだと思いました。そこで、私はyoutubeでいくつかのチュートリアルを見て、パターンと設計原則とMVCが登場します。私はそれを聞いたことがありますが、それを実際に理解したことはなく、ZendやCodeIgniter、またはそれを本質的に使用する他のものをまだ使用していません。
とにかく、MVCのトピックを勉強している過程で、私はすでにそれを使用しているようです。誰かが確認できますか?たとえば、ログインシステムを使用してアプリケーションをセットアップする方法は次のとおりです。
login.php-これはフォームを表示するhtmlページです。フォームの送信先:
process.php-このクラスはsubmitの値をチェックし、その値に基づいて入力を検証し、パスワードをチェックし、該当するエラーを送り返します。すべてがコーシャである場合は、Userオブジェクトをインスタンス化します。
user.php-これは、データベースへのユーザーの追加、プロファイル情報のプル、ログアウト、ユーザーからのプライベートメッセージオブジェクトのインスタンス化、必要なセッション変数の設定など、ユーザーが必要とするプロパティとメソッドをテンプレート化するクラスです。その後、情報はprocess.phpに返され、プロセスはログインに成功するとヘッダーがメインページにリダイレクトされます。
それで...これは単純なMVCですか?私が行った調査では、ログインはビューのように聞こえ、プロセスはコントローラーのように聞こえ、ユーザーはモデルのように聞こえます。ここにはもう少し詳細な情報があると思いますが、私は実際にこのようなものに頭を悩ませようとしているので、ロジックの調整は大歓迎です。ありがとう。
oop - oop 言語が読み書き用の個別のアクセス修飾子をサポートしないのはなぜですか?
取得と設定では異なるアクセス レベルが必要になるという理由だけで、ゲッターとセッターを書いていることがよくあります。そして、これらのゲッターとセッターは簡単です (ゲッターは返すだけで、セッターは値を設定するだけで、内部に他のコードはありません)。フィールド値を外部に対してのみ読み取りたい場合の典型的なケース (そして、すべてのフィールドに対して大量の getter 関数を記述します)。
ゲッターとセッターは内部の関数です。また、関数の呼び出しは、引数のコピー、スタック フレームのプッシュとポップ、結果のコピーなどを行う必要があるため、フィールドを設定するよりも時間がかかります。
まあ、コンパイラは関数呼び出しを最適化し、代入をインライン化するかもしれませんが、これは制御できません。C++ の inline キーワードでさえヒントに過ぎず、コンパイラはそれを自由に無視できます。関数が呼び出され、それが遅くなると想定する必要があります。
さらに、言語 (C# など) はプロパティをサポートせず、このことを模倣することはありませんが、それらはフィールドのように見える関数にすぎず、それが関数またはフィールドであることさえわかりません (IDE の助けがなければ)。
カプセル化の独断的な原則に違反することを伝えるだけでなく、書き込みと読み取りに異なるアクセス修飾子を設定できたら (たとえば、ファイル システムが行うように)、どのような問題が発生するでしょうか?
design-patterns - 作成者と依存関係の注入を把握する
GRASP Creator は Dependency Injection と完全に矛盾していますか?
そうでない場合は、その理由を説明してください。
web-services - REST 原則に準拠しながら、可能な限り効果的にコレクションを処理する方法に関する REST API の質問
私はRESTにはかなり慣れていませんが、収集した限りでは、次のURLがRESTの原則に準拠していることを理解しています。リソースは次のように配置されます。
しかし、このサンプル API を最適化するにはどうすればよいでしょうか? たとえば、ライブラリに 1 万冊の本があり、ライブラリ内のすべての本の詳細を取得したいとします。/library/book/<id>
で指定されたすべての ID に対してhttp 呼び出しを強制する必要があり/library/book
ますか? または、複数の ID をパラメーターとして有効にする必要がありますか? /library/book/<id1>,<id2>...
一度に 100 個の ID を一括フェッチするのは好きですか?
この種の状況について、REST の原則は何と言っていますか? あなたの意見は何ですか?
再度、感謝します。
c# - UMLはC#の設計原則を支援します
以下のUMLの理解に問題があります。
PersistentSet
具体的には、との関係は何ThirdPartyPersistentSet
ですか?PersistentObject
との関係は何ThirdPartyPersistentSet
ですか?
UMLは、C#のアジャイルの原則、パターン、および実践からのものであることに注意してください。MartinC. Robert、MartinMicah2006。第10章
前もって感謝します!
c# - UML ヘルプ C# 設計原則
どなたか下のグラフの意味を教えてください。
- PolicyLayer と PolicyServiceInterface の関係は何ですか?
- PolicyServiceInterface と MachanismLayer の関係は何ですか。
C# コードも大歓迎です。
UML は、Martin C. Robert 著、Martin Micah 2006 による C# の Agile Principles, Patterns, and Practices からのものであることに注意してください。
2011/6/2 15 追記
以下は同じ意味を持っていますか? 1) 一端に三角形がある実線 2) 一端に三角形がある破線
2011/6/3 1st追記
違いは何ですか: 1) 一方の端に矢印がある実線 2) 一方の端に矢印がある破線
サンプルの例と、以下のリンクの PersistentObject および ThirdPartyPersistentSet:
2011/6/3 2nd追加
PolicyLayer と PolicyServiceInterface の関係は次のようになります。
それにかんする
php - 変数プロパティの直接呼び出しとゲッター/セッターの呼び出し - OOP 設計
これはおそらく主観的であることはわかっていますが、Google から PHP 用のこの最適化ページを読んだところ、ゲッターとセッターを必要とせずに変数プロパティを直接使用することが提案されています。当然のことながら、これでパフォーマンスが向上することがわかりますが、これは本当に従うべき良い設計プラクティスですか?
ゲッター/セッターを使用した例:
推奨される最適化:
ゲッター/セッターの必要性がなくなるので、これは私の設計プロセスの歓迎すべき変更ですが、これを行うことで他にどのようなハードル/利点が発生する可能性がありますか?