数日前、新しい会社で働き始めました。私の前では、すべてのフロントエンドとバックエンドのコードは1人の人によって書かれていました。
ご存知のように、Djangoアプリには、フロントエンド用の2つのメインディレクトリが含まれています。/static-静的(パブリック)ファイル用と/ templates-Djangoテンプレート用
現在、大規模なアプリケーションがあり、ホーム、管理者、スパネル、モバイルなど、10以上の異なるモジュールがあります。
これはファイルとディレクトリの現在の構造です:
最初-/ staticディレクトリ。あなたが見ることができるように、それはいくつかの名前のようなモジュールとの混合ディレクトリであり、いくつかはグローバルライブラリを含んでいます。
もう一つ:
SECOND-/ templatesディレクトリ。混合テンプレートを含むモジュールのような名前のディレクトリ、新しいバージョンに依存するディレクトリ=)、モジュールでのみ使用されるがグローバルに配置されるディレクトリ.
もっと:
これは、醜く、維持できない、ストレスのかかる構造だと思います!
ある程度の時間を費やした後、モジュール構造に基づいたこのスキームを使用することをお勧めします。
最初に、プロジェクトの完全なバックアップを保存するために使用されるバージョンディレクトリがあります。
プロジェクトの本番バージョン。
古いバージョンまたは新しいバージョンのファイルにすばやく簡単にアクセスできるので、それは正しいと思います。また、異なるバージョン間の壊れた、または間違った依存関係から救われます。
次に、すべてのバージョンにスタンドアロンモジュールとグローバルモジュールがあります。
すべてのモジュールには、独自の/ staticおよび/ templatesディレクトリが含まれています。この構造は、すべてのモジュールが独自のjsアプリ、cssテーブル、ローカルイメージを持っているため、異なるモジュール間の壊れた、または間違った依存関係を回避するために使用されていました。
グローバルモジュールには、すべてのライブラリ、メインスタイルシート、ロゴやファビコンなどの画像が含まれています。
この構造は、保守、更新、リファクタリングなどにはるかに優れていると思います。
私の質問は:
このスキームは現在よりも優れていると思いますか?このスキームは生きられますか、それともDjangoアプリに実装することは不可能ですか?
私には醜く見えるポイント:
admin
モジュールがjQuery X
を必要とするのに対し、製品モジュールはjQuery Y
を必要とする場合、問題があります。保守が難しく、各モジュールがjQuery X
の特定のバージョンを必要とする理由と、jQuery Y
で実行できない理由を知っているのはあなただけです。ローカルドライブに各展開の完全なコピーがあるので、A module
が特定のbootstrapバージョンを必要とする理由。特定の異なるjs/cssファイルの場合単一のモジュールにするには、各アプリケーションの下に静的ディレクトリを作成し、アプリケーション固有のファイルをここに配置できます この投稿を参照として参照templates
ディレクトリがあり、アプリケーション固有のテンプレートをここに配置できます。templates
およびstatic
ディレクトリを作成するかどうかは、開発者次第です。同じディレクトリにあるすべてのファイルが見苦しい場合は、アプリケーション固有のソリューションを選択できます。 Djangoは両方をうまく処理します。特にたくさんのアプリケーションがある場合、すべての場合に名前の共謀があるかもしれませんテンプレートと静的ファイルの同じディレクトリの下にあります。現在の形式は古い形式よりもはるかに優れています。しかし、Django docsをチェックし、同様の状況と解決策についてSO /プログラマーをチェックすると、より良いアイデアが得られると確信しています。
「モジュール」とは、アプリのことですか? Djangoには、ファイルを配置するためのかなり標準的な構造がすでにあります。
その構造の使用を検討することをお勧めします。一つには、あなたが得るであろうほとんどすべての助けがこの構造を持つ例を持っているでしょう。
あなたの構造については、私にはかなり広大に見えます。それはあなた次第です。特にそれがビジネスの問題に当てはまる場合、ナビゲートに問題はありません。