問題タブ [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# - クラスを編成するにはどうすればよいですか?
写真を管理するために ASP.NET MVC で小さなプロジェクトを開発していますが、名前空間でクラスを整理する方法がわかりません。
2 つの基本クラス (写真とカテゴリ) があります。これらのクラスをどの名前空間に配置する必要がありますか? ドメイン?ポコ/ポジョ?
データ アクセスについては、DAO 名前空間に PhotoDAO と CategoryDAO の 2 つのクラスがあります。(そうですか?)
ビジネス ロジック クラスはどの名前空間に配置する必要があり、どのように名前を付ける必要がありますか?
誰かが私が使用/研究しなければならないデザインパターンについて何かアドバイスがありますか?
初歩的な質問ばかりですみません。ありがとうございました。
oop - オブジェクト指向ソフトウェアの設計原則
私はSOLIDやDRYなどのソフトウェア設計原則の大ファンです。オブジェクト指向ソフトウェアの設計には、他にどのような原則が存在しますか?
ノート。「コードにコメントしてください」のような答えを探しているのではなく、代わりにUncle Bobで議論されているようなオブジェクト指向の設計原則を探しています。
oop - データアクセス:「教えて、聞かないで」の例外?
データアクセスオブジェクトは、「教えて、聞かないで」というルールの例外ですか?たとえば、テーブルデータゲートウェイから最後の10件の投稿を取得しますか?
javabeans - JavaBeans の設計は情報隠蔽とどのように対応していますか?
2学期前、私には次のような教授がいました。
一部のユーザーは、すべてのプライベート インスタンス変数に対して常にセッター メソッドとゲッター メソッドを含めるように言われています。これは情報の隠蔽を破り、多くの場合、不変条件を強制できないシステムになると私は言います。
今、それは私には正しいように聞こえます。しかし、これらの種類のセッター/ゲッターを含めることは、JavaBeans を作成するためのコア部分ではありませんか? もしそうなら、なぜですか?そうでない場合、JavaBeans について何を誤解していますか?
c++ - ヘッダーの背後にある理論的根拠は何ですか?
ヘッダーを持つ意味がよくわかりません。DRYの原則に違反しているようです!ヘッダー内のすべての情報は、実装に含まれています (含めることができます)。
couchdb - CouchDB ドキュメントのモデル化の原則
しばらく答えようとしているのですが、わからない質問があります。
CouchDB ドキュメントをどのように設計または分割しますか?
ブログ投稿を例に取ります。
それを行う半「リレーショナル」な方法は、いくつかのオブジェクトを作成することです。
- 役職
- ユーザー
- コメント
- 鬼ごっこ
- スニペット
これは非常に理にかなっています。しかし、私は同じことをモデル化するためにcouchdbを使用しようとしています(それが素晴らしいというすべての理由から)が、非常に困難でした。
そこにあるブログ投稿のほとんどは、これを行う方法の簡単な例を示しています. 彼らは基本的に同じように分割しますが、「任意の」プロパティを各ドキュメントに追加できると言っています。これは間違いなく素晴らしいことです。したがって、CouchDB では次のようになります。
- 投稿 (ドキュメント内のタグとスニペット「疑似」モデル付き)
- コメント
- ユーザー
コメントとユーザーをそこに入れることができると言う人もいるので、次のようになります。
p>とても見栄えが良く、わかりやすいです。また、ユーザーとタグと同じように、すべての Post ドキュメントからコメントのみを抽出してコメント モデルに取得するビューを作成する方法も理解しています。
しかし、「サイト全体を 1 つのドキュメントにまとめてみませんか?」と思います。
p>必要なものを見つけるためのビューを簡単に作成できます。
次に、ドキュメントをより小さなドキュメントに分割するタイミング、またはドキュメント間に「関係」を作成するタイミングをどのように決定しますか?
次のように分割すると、より「オブジェクト指向」になり、値オブジェクトにマップしやすくなると思います。
p>...しかし、リレーショナル データベースのように見え始めます。また、「ドキュメント内のサイト全体」のように見えるものを継承することが多いため、リレーションでモデル化するのはより困難です。
リレーショナル データベースとドキュメント データベースをいつ、どのように使用するかについて多くのことを読んできたので、それはここでの主な問題ではありません。CouchDBでデータをモデル化するときに適用するのに適したルール/原則は何ですか。
もう 1 つの例は、XML ファイル/データの場合です。一部の XML データには 10 レベル以上の深さのネストがあり、ActiveRecord、CouchRest、またはその他のオブジェクト リレーショナル マッパーから JSON をレンダリングするのと同じクライアント (たとえば、Ajax on Rails、または Flex) を使用して視覚化したいと考えています。以下のようなサイト構造全体である巨大な XML ファイルを取得することがあります。それを値オブジェクトにマップして Rails アプリで使用する必要があるため、データをシリアル化/逆シリアル化する別の方法を記述する必要はありません。 :
p>したがって、一般的な CouchDB の質問は次のとおりです。
- ドキュメントを分割するためにどのような規則/原則を使用していますか (関係など)?
- サイト全体を 1 つのドキュメントにまとめてもよろしいですか?
- もしそうなら、任意の深さレベル (上記の大きな json の例や xml の例など) のドキュメントのシリアライズ/デシリアライズをどのように処理しますか?
- それとも、それらを VO に変換しないで、「これらは Object-Relational Map にネストされすぎているので、未加工の XML/JSON メソッドを使用してアクセスするだけです」と判断しますか?
お世話になりました、CouchDBでデータをどう分割するかという問題は、「これからはこうすればいい」と言い切るのが難しかったです。私はすぐにそこに着くことを願っています。
以下のサイト/プロジェクトを調査しました。
- CouchDB の階層データ
- CouchDB ウィキ
- ソファ - CouchDB アプリ
- CouchDB 決定版ガイド
- PeepCode CouchDB スクリーンキャスト
- カウチレスト
- CouchDB README
...しかし、彼らはまだこの質問に答えていません。
security - ストロングリンク-ソフトウェアセキュリティのウィークリンク
ソフトウェアのセキュリティコンポーネントを設計する際に、ストロングリンク-ウィークリンクの原則をどのように適用できるかについて例を挙げてください。ソフトウェアセキュリティに「弱い」モジュールの概念がありますか?攻撃の場合、これらは最初に意図的に失敗し、攻撃者が他のより機密性の高いデータにアクセスして侵害することが不可能であると判断しますか?
package - パッケージおよびコンポーネントの設計に関するガイドライン/原則
了解しました。ビジュアルスタジオソリューションは、プロジェクト数の点で大きく成長しています。明らかなことを除いて、今の状態がどうあるべきか、あるいはもっとうまく再編成/パッケージ化できるかどうかを確認したいと思います。
私が参照できるガイドライン、パッケージの原則、およびコンポーネントの設計に関する優れたテキストを知っていますか?層a、b、cまたは層1、2、3などだけでなく、適切な分析を備えた詳細なもの。
ありがとう。