2017-10-25 15 views
1

これはアーキテクチャ設計の質問です。角度(2+)コンポーネントの構造とデザイン - ベストプラクティス

私はXと呼ばれるmySQLテーブルを持っています。 そして、私は角度2 +フロントエンドからCRUD操作をしています。

私は事をキックオフするために、私はcreate-newと呼んでいたコンポーネントを作成しました。この男は現在/create-newルートで走っています。

しかし、この新しく作成されたコンポーネント(.ts、.html & .cssフレンド)は、新しく作成された(挿入された)状況だけでなく、しかし、更新も。

この更新プログラムは、新しく作成されたレコードの即時更新を許可するために、新しく作成された操作の直後(新しく挿入されたIDで作業する)だけでなく、別のレコードのデータをその更新フォームを提供する。

だから、当然、この作成/新しいルートは今、このようなアクション=編集& rec_id = 10

作成/新しい/?としてPARAM基づいて要求を処理することが可能になってきていると私は、元のその事実が好きcreate-newコードベースは非常に簡単にこの機能を強化しました。挿入、更新操作が完了したので、DELETE、LIST-VIEW、およびDETAIL-VIEW機能を追加してやり直してみてはどうでしょうか?経験豊かな脳を選ぶ必要があるという建築設計上の問題を念頭に置いています。

プロのこのアプローチでは、1つの単一のフォルダ、1つの単一の.ts、.html、.css、およびそのテーブルで作業するために完成されたサーバー側の.phpページこれは非常に簡単にこの機能を複製して、クローンベースを少ししか調整せずにテーブルYのCRUDニーズをすべて処理する準備が整った自分自身を得ることができます。

一般的なパターンは、create-new、view-record、view-list on、onのいずれかのコンポーネントを持つことです。

私の質問は次のとおりです。このdo-it-allのアプローチは、すべてのケースで絶対的なNO-NO-APPROACHですか?

また、大したことではないことは言うまでもありませんが、事実に応じてRECOMMENDED-APPROACHになる可能性がありますか?

この統合アプローチを適応させることができたら、私はcreate-newという名前をmanage-Xで変更し、それを使って完了します。それから、次の人はmanage-yという名前になります。私は、このアプローチでは、HTML部分がこのdo-it-allスタイルにもっと敏感になるかもしれないことを認識しています。この場合、私はより長い.HTMLファイル(テーブルXと交信する追加編集フォームをホストするだけでなく、テーブルXのレコードを表示するビューリストとビュー詳細の状況もホストする) 。しかし、それは ?

は、このアプローチはに従事したことがないことなら...背中の質問に、再び。

私が一緒に暮らすことができる限界ですか、それはそれはへの道であることを保証する場合がありますgo

このようなコンポーネントを作成することができれば、この統合アプローチのために決定する主な基準は何でしょうか?

答えて

0

実際には、それをしてはならないが全く反対のスタイルガイドがあります。コンポーネントはできるだけ小さく、単一の責任の原則に従うべきです。ドキュメントから

は、すべてのコンポーネント、 サービス、およびその他のシンボルに単一責任の原則(SRP)を適用します。これにより、アプリをよりきれいにすることができ、 の読み込みと管理が容易になり、さらにテストが可能になります。

REF:https://angular.io/guide/styleguide#single-responsibility

+0

だから、それは確かだ...すべてcases'で '絶対NO-NO-アプローチ。右? –

+0

私の経験から、そして公式のガイド(少なくとも私がそれらを読んでいる方法)から - 絶対的なものはありません。私はなぜ誰もがそのようにしたいと思う単一の理由を考えることはできません(もちろんマゾクリスチャンな理由以外)。) –

関連する問題