問題タブ [project-layout]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - ASP.NET MVC のプロジェクト レイアウトとサイト構造
ASP.NET MVC は初めてで、ASP.NET MVC を使用して Web サイトを作成および展開したいと考えています。
従来の ASP を実行する古いサイトがいくつかあり、サイト構造は次のようになります。
- web.root (ウェブサイトのページを保持)
- data.files (データベースを保持)
- log.files (ログファイル)
同じ構造が ASP.NET MVC に使用されているかどうか疑問に思っていました??
Visual Studio プロジェクト ファイルを保存するためのベスト プラクティスは何ですか?
python - PythonおよびGUIテストでのパッケージ内参照
Pythonパッケージとテストに関して問題があります。私はwxpythonを使用してアプリケーションを作成しており、GUIパーツ用に次の基本的なフォルダー/パッケージ構造を持っています。mainframe.pyウィンドウはlogpane.pyパネルに依存しています。これは、 mainframe.pyの絶対インポートを使用して簡単にインポートできます。
フォルダ/パッケージのレイアウト:
ただし、アプリケーションのGUI部分については、単体テストに加えて(問題は発生しません)、ビューごとに小さな「テスト」/例を用意します。つまり、ログペインの場合、レイアウトに問題がないことなどをテストするためのビューを示すベアボーンアプリケーションを起動する小さな実行可能な例が必要です。私が始めた方法は、
パネル/ビュー自体の実際の実装ファイル内。これはlogpaneにとって不思議に働きました。ファイルをスタンドアロンで実行して、ビューを確認し、一緒に保持されていることを確認できます。
しかしもちろん、logpane.pyへの依存関係を解決できなかったため、 mainframe.pyの戦略は崩壊しました。これは、現在のメインモジュールがmainframe.pyであり、mainframe.pyがutilviewsパッケージに到達できる唯一の方法は、メイン/起動されたモジュールがツリーのさらに上にある場合です。
では、これらのタイプのテストをどのように構成すればよいでしょうか。単体テストでは、 noseはmainappフォルダーごとに起動されるため、問題を処理する優れたnoseを使用します(したがって、すべてのパッケージ内参照が機能します)。しかし、これらのテストは小さなスタンドアロンプログラムのようなものです。mainappフォルダーをこれらのpythonファイルで乱雑にすることはできません(そのようなファイルはたくさんあります)。これを達成する他の方法はありますか?
どんな入力も貴重です。
ありがとう、リッカード
python - Pythonプロジェクトのデプロイ設計
状況は次のとおりです。私が現在働いている会社は、JavaまたはPythonのいずれかを使用してアプリケーションを開発する自由を与えてくれました。同社は主にJavaの経験があります。
私はPythonを使用することにしました。そのため、彼らが持っているデータベースのメンテナンスに関連するすべてのpythonプロジェクト/スクリプトのメンテナンスを依頼してくれてとてもうれしく思います。
これらすべてを処理するのはそれほど悪くはなく、Javaプログラマーと比較して私がどれだけの空き時間を持っているかを見るのは楽しいことです。1つだけですが、プロジェクトのレイアウトが混乱しています。
会社中の仮想マシンに単純に配置されるスクリプトはたくさんあります。それらのいくつかは、いくつかのモジュール(最大4つ)にまたがる複雑な機能を備えています。
考えてみると、どう対処したらいいのかわからないので、3つの質問があります。
- スタンドアロンスクリプトはどこに配置しますか?バージョン管理システムとしてgitを使用します。
- ユーザーがプログラムを実行するためにフォルダーを深く掘り下げる必要がないように、プロジェクトのレイアウトをどのように構成しますか(Javaでは、いくつかのブートストラップ操作を処理するためにjarまたはjarとシェルスクリプトを作成しました)。
- 簡単に再利用できるモジュールを作成する標準的な方法は何ですか(mycompany.myapp.mymodule?)
php - ソース管理下のプロジェクトでシンボリック リンクを処理するにはどうすればよいですか?
いくつかの php プロジェクトがあります。プロジェクトは Zend Framework を使用し、さまざまな機能を備えた共通のコア ライブラリも維持しています。
現在、私のディレクトリ構造は次のようになっています
Subversion では、シンボリック リンクに問題があるようです。シンボリック リンクだけでなく、実際のファイル (Mac では Syncro を使用しています) を追加しています。しかし、それは私に考えさせられ、同じライブラリの複数のコピーを避けるためにプロジェクトをレイアウトする最良の方法は何だろうと思っていました.
c# - ASP.NET プロジェクトを再利用できるように構成するにはどうすればよいですか
私は、さまざまな機能を提供する複数のインストール可能なモジュールを持つ Web アプリケーションを設計中です。ここでは多くの一般的なことが行われており、さまざまなプロジェクトで簡単に使用できることがわかっている 3 つの C# クラス ライブラリがあります。
私が立ち往生しているビットは、実際の Web サイト自体です。理想的には、複数のプロジェクトで再利用できるASP.NETページ ライブラリを作成したいと考えていますが、これは不可能であることを理解しています。
複数のプロジェクトでページを再利用できるように、ウェブサイト プロジェクトをどのように構成していますか? これまでのところ、私が思いついた唯一の解決策は、SVN でリポジトリを作成し、それをsvn:externals
メイン プロジェクトのプロパティで参照することです。これにより、すべての Web サイトに共通のページをそのディレクトリに追加することができ、これを使用してそれらを他のプロジェクトにチェックアウトできることがわかっています。ただし、これは少しぎこちなく、新しいプロジェクトを作成するときに問題が発生する可能性があると思います (新しいソリューションを作成するには、適切な外部が配置されていることを確認するためのいくつかの手順があります)。
より良い解決策はありますか?複数のクライアント プロジェクトで共通の ASPX ファイルを共有する場合、どの方法が最適ですか? それらに対する変更をどのように管理しますか?
前もって感謝します!
編集:
David の回答に感謝します。私はこれについてもっと考えたので、より具体的なアイデア/懸念事項のいくつかをリストしたいと思いました. まず、プロジェクトについてもう少し説明します。主に、それはCMSです。ただし、CRM を必要とするクライアントもいますし、どちらも必要とせず、ゼロから完全にオーダーメイドのシステムを必要とするクライアントもいます。
上記の最初の投稿では、複数のプロジェクト間で Web ページを簡単に再共有できるようにするために、メイン ルート (例: cms
)のサブディレクトリを持つことについて話しました。svn:externals
これがこれを行う唯一の方法だと思い始めています。私を悩ませたのは、クライアントの URL が次の場合でした。
http://www.shotgunanddribble.com/cms/content.aspx
Application_BeginRequest
ただし、クライアントのサイトの構成に応じて書き換えることで、ひどい URL を軽減するために を使用できると思います。たとえば、顧客が単なる CMS の場合、トップレベル ドメインを に書き換えることができます/cms/
。CRMの場合も同様です。両方の場合:
http://www.shotgunanddribble.com/
->/cms/
http://crm.shotgunanddribble.com/
->/crm/
この種の書き換えを使用することの欠点はありますか? 他の誰かが魔法のようなアイデアを持っていない限り、それsvn:externals
が私の唯一の希望だと思います.
c++ - 多くの小さなクラスの分布
という基本クラスがありEventArgs
ます。これから派生したのは、特定の種類のイベントのイベント引数を表す多くの特殊化です。これらのイベントの利用者は、これらの引数クラスのいくつか、多く、またはごく少数を必要とする場合があります。
私の質問は、タイプごとにヘッダーファイルを提供しますか(たとえば、さまざまなタイプのヘッダーファイルを50以上)、それらをファミリーにグループ化して、それらの「共通」ヘッダーファイルを作成しようとしますか、それともスローしますか?ウィンドウに注意して、インクルードできる使いやすいヘッダーファイルにそれらをスローしますか?
別のアプローチは、50個のヘッダーファイルを用意することです。次に、特定のヘッダーファイルを含むいくつかの「ファミリー」ヘッダーファイルを導入することができます。これらの種類のものの命名規則についてはよくわからないので、どこにあるのかは明らかです。
厳格なルールはないかもしれませんが、他の開発者が多くの小さなクラスを書いていることに気付いたときに、他の開発者が何をしたのか疑問に思っています。
前もって感謝します。
javascript - JavaScript と CSS の同期を維持するためのプラクティスは?
私は大規模な JavaScript を多用するアプリに取り組んでいます。JavaScript のいくつかの部分には、関連する CSS 規則がいくつかあります。私たちの現在の慣行は、次のように、各 JavaScript ファイルにオプションの関連する CSS ファイルを含めることです。
このようにして、に関連するすべての CSSMyComponent.js
がMyComponent.css
.
しかし問題は、これらのファイルに CSS がほとんど含まれていないことがあまりにも多いということです。また、数行の CSS だけでファイル全体を作成するのは大変だと感じることがよくあります。スタイルを JavaScript 内にハードコーディングする方が簡単です。しかし、これはダークサイドへの道だろう...
最近、CSS を JavaScript 内に直接埋め込むことを考えていました。そのため、ビルド プロセスで抽出して 1 つの大きな CSS ファイルにマージすることができます。そうすれば、CSS の小さな部分ごとに新しいファイルを作成する必要がなくなります。さらに、JavaScript ファイルを移動/名前変更/削除するときに、CSS ファイルをさらに移動/名前変更/削除する必要はありません。
しかし、JavaScript 内に CSS を埋め込むにはどうすればよいでしょうか? 他のほとんどの言語では文字列のみを使用しますが、JavaScript には複数行の文字列に関するいくつかの問題があります。以下は私見がかなり醜いように見えます:
JavaScript と CSS の同期を維持するために、他にどのような方法がありますか?
php - 汎用zendモジュールをパッケージ化するための最良の方法
当社がほとんどのプロジェクトのベースフレームワークとしてZendFrameworkの使用を開始したため、すべてのプロジェクトでいくつかの共通要素を共有したいと考えています。私は次のようなことについて話します:
- モデルの実装(doctrine2に基づく)
- ユーザー、グループ、ロールモデルを含むモデルのRBAC
- ajaxバックエンドインターフェース用のxmlベースのテンプレートエンジン
- (あなたはそれに名前を付けます)..。
基本的に、「手に負えないもの」を置いて実行するためのすべてのもの。これらのコンポーネントをパッケージ化するための最良の方法は何ですか?2つの可能性があります。
モジュールとして
必要な機能を個別のモジュールとしてmodulesフォルダーに含めます。
プロ:
- ルートを設定してコードを実行できます。これは多くのモジュールに適しています(想像上の例:paypalモジュールには何らかのコールバックURLが必要です。モジュールが独自に設定できる場合は、「プロジェクト開発者」による構成は必要ありません) 。
- 箱から出して実際の機能(ユーザー管理など)を提供できます
- 自動読み込みや教義などを設定するためのブートストラップがあります。
短所:
- 悪い場所?ユーザープロジェクトに干渉する
- プロジェクト間で共有するのが少し難しい(クラスパスの代わりにgitサブモジュール)
ライブラリフォルダ内
ライブラリフォルダに配置し、クラスパスをポイントします。
プロ:
- クリーンなソリューション
- プロジェクト間での共有
短所:
- ブートストラップは明示的に呼び出す必要があります
- 直接のルーティングやアクションは不要です。具体的なプロジェクトを通じてすべてをプロキシする必要があります。
では、これをどのように解決しますか?再利用可能な汎用のものをzfのどこに配置しますか?
php - Yii フレームワークのクラスを拡張する方法とファイルの配置場所
いくつかの組み込みフレームワーク クラスを拡張したいのですが、明確でない点がいくつかあります。
- 自分のクラスをコンポーネント フォルダに配置する必要があると思いますが、これは適切な場所ですか?
- クラスには のような名前を付け
Subfolder_ClassName
、ファイルには のような名前を付ける必要がありますClassName.php
か? - どうやって継承するの?デフォルトのインクルード パスには、フレームワーク自体は含まれません。インクルードパスを変更したり、オートロード機能を使って遊んだり、コードにインクルードをハードコードしたりすることなく、それを行うための組み込みの方法があると思います。
右?
java - Java ソース ファイルからパッケージ構造を生成する API はありますか
Java ソース ファイルを含むソース フォルダーがあります。これらの Java ファイルには異なるパッケージがあります。javac コマンドを使用してパッケージ構造を生成できますが、パッケージにはソース ファイルではなくクラス ファイルが含まれます。
Java ファイルからパッケージ構造を生成し、Java ファイルを特定のパッケージに入れる API はありますか