デザインパターン/設計/アーキテクチャ
いっぱいある&抽象的でいまいち理解してないので整理
デザインパターン/設計/アーキテクチャの違いもわからん
デザインパターン/設計/アーキテクチャの違いもわからん
↓GPT
デザインパターン
デザインパターンは、特定の頻繁に発生する設計問題に対する再利用可能な解答を提供します。パターンは、設計上の課題に対する経験に基づいたベストプラクティスの集積です。たとえば、GoF (Gang of Four) のデザインパターンには、シングルトン、ファクトリーメソッド、デコレーターなどがあります。
アーキテクチャ
アーキテクチャは、システム全体の構造を示します。これには、システム内の主要なコンポーネントとそれらの間の関係、およびシステムが満たすべき非機能要件(例えば、拡張性、性能、信頼性など)を含みます。アーキテクチャはシステム全体の視点から構築される計画であり、ソフトウェア、ハードウェア、ネットワーク、データベースなど複数の技術要素がどう統合されるかを含みます。
設計
設計は、ソフトウェア開発において具体的なシステムやコンポーネントの詳細な計画と仕様を作成するプロセスです。設計には、モジュール設計、データ構造設計、インターフェース設計など、ソフトウェアの実装レベルに近い詳細が含まれます。設計のプロセスではデザインパターンを利用する事もあります。
違いのまとめ
- デザインパターン
• 特定の問題解決のための再利用可能なテンプレート。
• 具体的な設計の実装と関わる。
• 使い方は小規模で、メソッドやクラス設計に重点をおくことが多い。 - アーキテクチャ
• 全体的なシステムの構造。
• 大規模な設計に対応し、異なるコンポーネントの相互作用やシステムの整合性が焦点。
• 高レベルの計画と指針を提供する。 - 設計
• システムやソフトウェア開発のための具体的な計画。
• 実装に向けた細かい詳細や仕様を含む。
• デザインパターンやアーキテクチャの指針をもとに進められる。
これらの概念は互いに補完し合っており、効果的なソフトウェア開発のためにはそれぞれの役割と相互作用を理解することが必要です。
あとでまとめる。HOCいまいちわからん
Container/Presentational
ロジックを責務とするContainer Componentと、UIを責務とするPresentational Componentに分けて実装
- Containerはスタイルを持たない
- PresentationalはStateを持たない(UIに関する状態であれば持つこともある)
Next.jsで私が取る構成だと大まかにページコンポがContainerで、各コンポがPresentationalにはなりそう。UIに関する状態ってのはアコーディオンの開閉とか?
オニオン/クリーンアーキテクチャ