2017-01-27 15 views
0

私はWeb DevelopmentとNodeJSには新しく、私たちのアプリケーション(コードとディレクトリ構造)をリファクタリングしています。NodeJS - ディレクトリ構造パターン

そして、経験豊かな開発者が私が使用したいファイル構造のパターンについて意見を述べたいと思います。

通常のMVCアプリの構造は次のようになります。この構造

/config 
/server 
    /controller (business logic) 
    /models (contain all models) 
    /routes (contain all routes) 
    /middlewares (express middleware) 
/views (server templates) 
/app (contain JS client app) 
/public (assets, ...) 
/test 

懸念して、グループファイルに私たちを可能にします。

しかし、我々はサービスによって、アプリケーションの構造グループファイルを使用する場合 - 例えば:

/config 
/lib 
    /middlewares (express middlewares) 
    /services (utils modules, db modules, ...) 
    /config 
/views 
/public 
/app 
/server 
    /user 
     /routes 
     /logic 
     /test 
     /model 
     /validation-schema 
     /... 
    /articles 
     /routes 
     /logic 
     ... 

ビュー、テンプレートおよびクライアントのディレクトリが最初の構造のように同じです。これは、サーバーAPIの構造に関するものです。

これにより、ユーザーエンティティに関連するすべてのファイルを同じディレクトリに置くことができます。テスト、モデル、ルートを含む..

あなたはこれについてどう思いますか?

答えて

2

あなたは宗教戦争@SimonBruneaudを開始するつもりです。 :)。どちらのバージョンも完全に実行可能で、多くの人がどちらかを使用します。もう1つはモジュール化されていますが、実際には、必要に応じて、それぞれのサーバーサブフォルダを個別のnpmモジュールとして開発してバージョンアップすることは間違いありません。 MEANフレームワークは、同様のものを使用しますが、実際にはすべてのコード(クライアントコードとテンプレートを含む)をそれらの行に沿ってパッケージ化します。

最終的に私はそれは個人的な好みの問題だと思うし、あなたの質問は長い間、主に意見として閉じられるだろうと思う。

+0

あなたの答えをありがとう。それを覚えておいてください。 –

+0

Np。私はモジュラー設計の難しさを指摘しませんでしたが、これは不可避的な相互依存性であることがわかりました。例えば、あなたの "articles"モジュールは、必然的にあなたのユーザモジュールについて知り、ユーザモジュールからインポートする必要があります。克服できないものではありませんが、最初のファイル構造が示唆しているように、決して完全に分離されていないことを意味します。 – Paul

+0

そうですが、モジュラーパターンを使用できるかどうかわかりません。 私たちのチームはマイクロサービスアーキテクチャに取り組んでいます。そうするために、モジュラー構造は簡単にコードの一部を管理することを可能にします。 –

関連する問題