問題タブ [project-organization]
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 - 名前空間をどのように整理しますか?
したがって、論理エンティティ(人、国など)、GUI要素/コントロール、データおよびナビゲーションコントローラー/マネージャー、そしてクアッドツリーやタイマーなどがあり、これらを論理名前空間に明確に分離することに常に苦労しています。
私は通常このようなものを持っています:
- Leviathan.GUI.Controls
- Leviathan.GUI.Views
- Leviathan.Entities
- Leviathan.Controllers(データおよびその他のもの)
- Leviathan.Helpers(木やその他のもの)
これに関する良いガイドはありますか?私はこの混乱を止める必要があります。
svn - SVN プロジェクトの編成: モジュールごとまたはプロジェクトごと
プロジェクトを構成するさまざまなアプリケーション、構成ファイル、DLL など (「モジュール」と呼びます) に対応する多数のサブフォルダーを含む Subversion リポジトリがあります。現在、いくつかの関連プロジェクトに「分岐」し始めています。つまり、各高レベル プロジェクトは、プロジェクトごとにわずかに変更された多数のモジュールを使用します。プロジェクトの数は、モジュールの数 (~20) よりも少ない (~5)
今、レポを整理する方法を見つけようとしています。モジュールごとに最上位のサブフォルダーを保持し、プロジェクトごとにサブサブフォルダーを作成することは理にかなっていますか? または、最上位は各プロジェクト用で、各プロジェクトには独自のモジュール サブフォルダーがあります。
レポ:
-また-
レポ:
visual-studio - 複数の Visual Studio バージョンにわたるプロジェクトの依存関係
3 つの .net プロジェクトがあります。
Project1.dll は、VS2008 プロジェクトによって生成されます。
Project2.dll は、Project1.dll を参照する VS2005 プロジェクトによって生成されます。
Project3.dll は、Project1.dll と Project2.dll の両方を参照する VS2008 プロジェクトによって生成されます。
現在、Project1.dll をビルドし、Project 2 が取得できる場所に手動でコピーしています。
次に、Project2.dll をビルドし、それと Project1.dll を Project 3 が取得できる場所に手動でコピーします。
明らかに私は何か間違ったことをしています(手動)。プロジェクトの参照を最新の状態に保つ正しい方法は何ですか?
Project2 を VS2008 に更新してから、3 つのプロジェクトすべてを含む 1 つのソリューションを作成することは、現時点ではオプションではありません。VS2008 ではまだ動作しないサードパーティの VisualStudio プラグインがあります。Project2 は VS2005 のままにする必要があります
Project1 と Project3 を VS2005 に更新解除してから、1 つのソリューションを作成することもできません。これらのプロジェクトでは、C# 3.0 と .net 3.5 の機能に依存しています。
c - ある C ソース ファイルを別の C ソース ファイルに含めますか?
別#include
のファイル内のファイルを使用しても問題ありませんか(または、推奨/グッド プラクティスでさえありますか) ?.c
.c
language-agnostic - 名前空間の名前はどのように思いつきますか?
私は通常 C#/.Net で作業していると言って前置きします。
通常、私は共通の再利用可能なコンポーネントを名前空間に配置する命名スキームを使用します。この名前空間は、組織とプロジェクト固有のコンポーネントをプロジェクトに関連付けられた名前空間に反映します。私がこれを行う理由の 1 つは、自分のコンポーネントを部門外の他のユーザーと共有することがあるためです。プロジェクト固有の名前空間は、通常、部門の名前または略語で始まります。プロジェクト間でコードを再利用するときは、通常、組織ベースの名前空間の 1 つに移行します。
例えば:
UIOWA.DirectoryServices
Active Directory の特定の実装を扱うクラスが含まれています。
UIOWA.Calendar
大学のマスター カレンダーを扱うクラスが含まれています。
LST.Inventory.Datalayer
Learning Spaces Technology グループ インベントリ アプリケーションのデータ層を実装するクラスを保持します。
私は現在、大学外で販売される可能性がある大学 (チャリティー イベントを運営する学生グループ) とのあいまいなつながりを持つエンティティのプロジェクトに着手しているため、実際には適合しません。つまり、部門は、プロジェクトを使用する可能性のある多くの顧客の最初の顧客にすぎません。
私の傾向としては、組織の命名ルートに進み、このアプリケーション用に「組織プロジェクト」の名前空間を作成することです。他の人がこれをどのように処理しているか、またアドバイスがあればお聞きしたいと思います。
ありがとう。
名前空間の編成に関するこの関連する質問も参照してください。
編集
最終的に、org/project 名前空間を作成し、UIOWA.MasterEvent
そこからさらに名前空間を派生させました。将来のプロジェクトのための他の意見にまだ興味があります。
build-automation - nmake を使用して C++ プロジェクトのプロジェクト ツリーを整理する方法は?
プロジェクト ファイルの編成には 2 つの主要な規則があり、その後に多くのバリエーションがあるようです。
規則 1: 高レベル タイプのディレクトリ、プロジェクトのサブディレクトリ
たとえば、wxWidgetsプロジェクトは次のスタイルを使用します。
長所:
- プロジェクトの依存関係がある場合は、単一のファイルから管理できます
- フラットビルドファイル構造
短所:
- test には独自のヘッダー ファイルと cpp ファイルがあるため、ライブラリではなく EXE ファイルの単体テスト アプリケーションを生成する場合、テストするアプリケーションのオブジェクト ファイルを含める必要があります。これには、推論規則を作成し、すべてのソース ファイルの相対パスを展開する必要があります。
- 別のソリューションでプロジェクトを再利用するには、ツリー構造から適切なファイルを抽出し、ビルド スクリプトを変更する必要があります。
規則 2: 高レベルのプロジェクト ディレクトリ、タイプ サブディレクトリ
たとえば、Wiresharkプロジェクトはこのスタイルを使用します
長所:
- プロジェクト自体はフォルダー内に自己完結型であるため、移動や再利用が容易になります
- ビルド ツールでより短い推論規則を使用できるようにします
- 階層的なビルド スクリプトを容易にします
短所:
- プロジェクト間に依存関係がある場合は、ビルド順序を管理するために、プロジェクト ディレクトリの上にビルド スクリプトのレイヤーを追加する必要があります。
現在、プロジェクトで規約 1 を使用していますが、これまでのところかなりうまく機能しています。現在、私は単体テストを (CxxTest を介して) 追加し、nmakeを使用して継続的インテグレーションへの移行を促進しています。規則 1 は、適切な nmake ファイルの作成に深刻な頭痛の種を引き起こしています。
私の主な要件/目標は次のとおりです。
ソリューション全体のビルド スクリプトを維持する労力のレベルを減らします。
ソリューション内のプロジェクトとそのビルド手順を他のプロジェクトから切り離します。
チェックアウト用のビルド スクリプトを使用して、コミットごとにメディア生成をリリースすることで、継続的な統合を促進します (もちろん、CruiseControl などの他のツールも活用します)。
追加のプロジェクトまたはソース ファイルの追加または削除を、開発者にとって可能な限り簡単にし、エラーの発生を最小限に抑えます。
だから私は尋ねます:
- これらの方法のいずれかの他の長所と短所はありますか?
- これらの慣習の 1 つだけを支持する明確な反対意見はありますか?
project-organization - プロジェクトをゼロから始める: ワークロードをいつ、どのように分散するか?
友人と私は、新しい商用 Web プロジェクトを開発する予定です。必要なものをすべてリストした一種のドキュメントがあり、実際にコーディングを開始する最良の方法は何かを考えています。問題は、以前はソロモードでソフトウェアを開発したり、開発中のプロジェクトに参加したりして、チームのメンバー間で責任を簡単に分散できることです。今、私たちはゼロから始めていますが、明らかにデータベースの設計やいくつかの重要な機能の開発などがあります。また、私たちの間には 7 時間ほどの時差があります。
繰り返しになりますが、私たちはチームワークがどのように機能するかを知っており、必要なすべてのツールを持っており、すべての基礎作業が完了したときに作業負荷を分散する方法を知っていますが、すべてがこの基礎作業の結果に依存する場合、分散したチームで基礎作業を開始する方法を知っています? データベースがない場合、ユーザー ダッシュボード機能の作業を開始するにはどうすればよいですか?
では、そのような開発プロセスをどのように開始しますか? チーム メンバー間でワークロードの分散を簡単に開始できるのはどの時点ですか?
Stack Overflow は分散型チームによって非常に短期間で開発されたことを考えると、Joel と Jeff がこのテーマに関する経験を共有できるかどうか疑問に思っています。
ありがとう!
c# - C# 単一プロジェクトの編成
さまざまな理由により、ソース ファイルを 1 つのプロジェクトで 1 つのソリューションに再編成しています。
- パラノイックに構成されたウイルス対策ソフトウェア。
- .NET アセンブリによるコードの分割に関するアドバイス
- コンポーネントの依存関係を制御して、クリーンなアーキテクチャを実現
- C# および VB.NET コンパイラのパフォーマンスを活用
これにより、複数のファイルに分割された多くの名前空間が残ります。これまでのところ、私はこの規則を使用しています。名前空間が与えられたCompany.Project.A
場合、ファイルには などの名前が付けられA.f1.cs
、名前空間は 、 などに分割されA.f2.cs
ます。Company.Project.B
B.f1.cs
B.f2.cs
単一プロジェクトの制限を考えると、複数の名前空間で複数のファイルを整理するためのより良い方法はありますか?
project-organization - クライアントのドキュメントとアセットをどのように注文/管理していますか?
私は自分自身を典型的な小さな開発者/独立したデザイナーと分類し、最近オフィス用の新しいハードウェアをいくつか購入し、以前よりも自分自身を整理したほうがよいと考えました.
ですから、すべてのファイルなどを簡単に見つけて関連付けることができるように、すべてのファイルをどのように整理しているのか疑問に思っています。
現在、デスクトップで Web サーバーを実行しており、Projects、クローズド プロジェクトなどのフォルダーがあり、これらにはそれぞれクライアント/Web サイト名のフォルダーが含まれており、Web フォルダー構造が含まれています。しかし、他のすべてのファイル、通常は PSD、CSS レイアウトを含む zip ファイル、画像、コンテンツ ドキュメント、電子メール、ロゴ、仕様、プロジェクト ドキュメント、サイトにアップロードする PDF などを受け取ります。
それぞれにクライアント名を付けた別の単一フォルダー (マイ ドキュメント) を使用しますか、それともすべてのクライアント フォルダーを制御するためのより良い方法がありますか。
これは特に、クライアント/マネージャーから多くの情報/リソースを取得するプログラマーを対象としているため、セットアップ方法に関する重要なプログラミングの質問だと思います。クリーンなセットアップはより良いコーディングにつながるためです.
python - wx フレーム クラスからアプリケーション メソッドを呼び出す
私は wxPython から始めて、手に入れることができるすべてのチュートリアルと例を通して自分の道を歩んできました。ただし、わずかな問題が発生しました。これは、wx.App と wx.Frame に関係しており、特定のメソッドを含める必要があります。私が見たほぼすべての例は、レイアウト/サイザーとイベント処理をはるかに超えていません.wxPythonプロジェクトのプロジェクト編成に実際に取り組んでいるものはありません.
たとえば、フォルダーのリストを取得するメソッドがあります。ほとんどの例でこれに対処する方法は、メソッドをフレーム クラスに固定することです。このメソッドは、アプリケーションの他のいくつかの部分で使用される可能性があるため、アプリケーション クラス レベルで格納する方が理にかなっています。
フレーム クラスがごちゃごちゃしないようにするには、これらのような「ユニバーサル」メソッドをどのように整理して呼び出す必要がありますか。
アップデート:
明確にするために、「フォルダーのリスト」は単なる例であり、私の実際の方法はより多くの作業を行います。私が言っているのは、フレーム固有ではないコードがあるということです。これがアプリケーション クラスにある場合、フレーム内のイベント メソッドからそれを呼び出す最良の方法は何ですか。
プログラミングの基礎ではなく、実際のプロジェクト編成のテクニックを探しています。