質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.34%
MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

168閲覧

MERNスタックでのアーキテクチャのデザインパターンについて

pecchan

総合スコア592

MongoDB

MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

1グッド

1クリップ

投稿2024/12/14 00:48

実現したいこと

現在、Node.jsの学習の延長でMERNスタック(MongoDB, Express, React, Node.js)を勉強中です。
MERNスタックを使用してアプリケーションを構築する際に、一般的なデザインパターン(全体設計やアーキテクチャ)がどのようなものになるのかを知りたいです。

ここで知りたいデザインパターンは、
Factory パターンやSingleton パターンなどではなく、MVCやMVP、MVVMなどのアーキテクチャに関するパターンです。

発生している問題・分からないこと

例えば、以下の点についてアドバイスをいただけると助かります

MERNスタックを利用する場合、採用されることが多いデザインパターン(例: MVCパターンなど)はありますか?
あるいは要件に応じて柔軟に選ぶべきでしょうか?

経験者の方からの具体例も教えていただけると幸いです。

よろしくお願いいたします。

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

私の調べた範囲では以下のような感じかなと思いました。
・MERNスタックで実装すれば自然と基本的にMVCパターンになる
・そのため小規模アプリではMVCパターンを採用する
・大規模アプリでは、MVVMやMVP、Clean Architectureなどを採用する事もある

補足

特になし

IT001👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KT001

2024/12/14 06:15

一般的なMERNスタックであれば、(詳細・結果の)ご認識は正しいと思います。ただし、近年MEANスタックという構成では採用されないので、Reactに特化して考えた方が宜しいかもしれません。 (React自体は人気がありますが、2022年ごろからMongoDBからPostgreSQLに移行するケースが増えてきています) https://db-engines.com/en/ranking_trend 近年React公式がフレームワークを推奨していることから、ExpressではなくNext.jsやRemixなどのフレームワークが採用されます。この時に人気のアーキテクチャとしてはBFF(Backend for Frontend)があります。Reactを採用すると(自ずと)コンポーネント設計になるのと、フレームワーク特有の設計があるので、何を選択するかで設計パターンが異なってきます。 Reactフレームワークについては、React公式もご参照ください。 https://ja.react.dev/learn/start-a-new-react-project 少し古いですが、設計原則も参考になると思います。 https://ja.legacy.reactjs.org/docs/design-principles.html
pecchan

2024/12/14 23:44

IT001様 有益な情報有難う御座います。 大変参考になりました。 今後の方向性を決める際に何度も読み返します。 是非ベストアンサーにさせていただきたいので、お手数ですが回答に(一言で結構ですので)御入力いただけないでしょうか? 宜しくお願い致します。
KT001

2024/12/15 06:11

参考になったのなら良かったです。同じ内容ではありますが、回答の方に記載させて頂きました。
guest

回答1

0

ベストアンサー

一般的なMERNスタックであれば、(詳細・結果の)ご認識は正しいと思います。ただし、近年MEANスタックという構成では採用されないので、Reactに特化して考えた方が宜しいかもしれません。
(React自体は人気がありますが、2022年ごろからMongoDBからPostgreSQLに移行するケースが増えてきています)
https://db-engines.com/en/ranking_trend

近年React公式がフレームワークを推奨していることから、ExpressではなくNext.jsやRemixなどのフレームワークが採用されます。この時に人気のアーキテクチャとしてはBFF(Backend for Frontend)があります。Reactを採用すると(自ずと)コンポーネント設計になるのと、フレームワーク特有の設計があるので、何を選択するかで設計パターンが異なってきます。

Reactフレームワークについては、React公式もご参照ください。
https://ja.react.dev/learn/start-a-new-react-project
少し古いですが、設計原則も参考になると思います。
https://ja.legacy.reactjs.org/docs/design-principles.html

投稿2024/12/15 06:10

KT001

総合スコア659

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pecchan

2024/12/15 07:22

お手数おかけしました。 大変参考になりました。 有難う御座います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.34%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問