问题标签 [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 - how do you organize your namespaces?
So I have logical entities (person, country, etc.), GUI elements / controls, data and navigation controllers / managers, then things like quad-trees and timers, and I always struggle with cleanly separating these things into logical namespaces.
I usually have something like this:
- Leviathan.GUI.Controls
- Leviathan.GUI.Views
- Leviathan.Entities
- Leviathan.Controllers (data and other stuff)
- Leviathan.Helpers (trees and other stuff)
Are there any good guides on this? I need to stop this mess.
svn - SVN 项目组织:每个模块或每个项目
我有一个 subversion 存储库,其中包含多个子文件夹,对应于构成我的项目的各种应用程序、配置文件、DLL 等(我将它们称为“模块”)。现在我们开始“分支”成几个相关的项目。也就是说,每个高级项目都将使用一些模块,可能会在项目之间稍作修改。项目数量(~5)小于模块数量(~20)
现在我想弄清楚如何组织回购。逐个模块地保留顶级子文件夹是否有意义,每个项目都有子文件夹?或者顶层应该是每个项目,每个项目都有自己的模块子文件夹:
回购:
-或者-
回购:
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 个项目的解决方案目前不是一种选择。我们有一个 3rd 方的 visualstudio 插件,它还不能在 VS2008 中工作。Project2 必须留在 VS2005
将 Project1 和 Project3 取消更新到 VS2005,然后创建一个解决方案也不是一种选择。我们在这些项目中依赖于 C# 3.0 和 .net 3.5 功能。
c - 在另一个中包含一个 C 源文件?
另一个文件中#include
的文件可以(甚至推荐/良好做法)吗?.c
.c
language-agnostic - 你如何为你的命名空间想出名字?
我将首先说我通常在 C#/.Net 中工作。
通常,我使用一种命名方案,将通用的、可重用的组件放入一个命名空间中,该命名空间将我们的组织和项目特定的组件反映到与项目相关的命名空间中。我这样做的原因之一是我有时会与部门外但在组织内的其他人共享我的组件。项目特定的命名空间通常以部门名称或缩写开头。当我在项目之间重用代码时,我通常将其迁移到基于组织的命名空间之一。
例如:
UIOWA.DirectoryServices
包含处理我们的 Active Directory 的特定实现的类。
UIOWA.Calendar
包含处理大学主日历的课程。
LST.Inventory.Datalayer
包含实现学习空间技术组库存应用程序的数据层的类。
我现在正在为一个与大学(一个举办慈善活动的学生团体)有更模糊联系的实体开展一个项目,该实体有可能在我们大学之外出售,因此,它并不真正适合进入我的正常命名约定,即,该部门只是可能使用该项目的许多潜在客户中的第一个客户。
我的倾向是走组织命名路线并为此应用程序创建一个“组织项目”命名空间。我想听听其他人如何处理这个问题以及您可能有的任何建议。
谢谢。
另请参阅有关命名空间组织的相关问题。
编辑
我最终创建了 org/project 命名空间UIOWA.MasterEvent
并从那里派生了更多的命名空间。仍然对未来项目的其他意见感兴趣。
build-automation - 如何使用 nmake 组织 C++ 项目的项目树?
组织项目文件似乎有两个主要约定,然后是许多变体。
约定一:高级类型目录、项目子目录
例如,wxWidgets项目使用这种风格:
优点:
- 如果存在项目依赖项,则可以从单个文件进行管理
- 平面构建文件结构
缺点:
- 由于 test 有自己的头文件和 cpp 文件,当您为 EXE 文件而不是库生成单元测试应用程序时,它们需要包含您正在测试的应用程序中的目标文件。这需要您创建推理规则并扩展所有源文件的相对路径。
- 在另一个解决方案中重用任何项目需要您从树结构中提取正确的文件并修改任何构建脚本
约定2:高级项目目录,类型子目录
例如,Wireshark项目使用这种风格
优点:
- 项目本身在其文件夹中是独立的,使它们更易于移动和重用
- 允许在构建工具中使用更短的推理规则
- 促进分层构建脚本
缺点:
- 如果项目之间存在依赖关系,则需要在项目目录之上额外增加一层构建脚本来管理构建顺序
我们目前在我们的项目中使用约定 1,到目前为止它运行良好。现在,我正在添加单元测试(通过 CxxTest)并促进使用nmake迁移到持续集成,约定 1 在创建正确的 nmake 文件时引起了一些严重的麻烦。
我的主要要求/目标是:
减少维护整个解决方案的构建脚本的工作量。
将解决方案中的项目及其构建步骤与其他项目分离。
通过使用用于签出的构建脚本来促进持续集成,以发布每次提交的媒体生成(显然也利用其他工具,例如 CruiseControl)。
使添加或删除其他项目或源文件对开发人员来说尽可能容易且不易出错。
所以我问:
- 这两种方法还有其他优点和缺点吗?
- 是否有明确的规定只支持其中一种约定?
project-organization - 从头开始项目:如何以及何时分配工作量?
我和我的朋友打算开发一个新的商业网络项目。我们有一份文档,列出了我们想要拥有的所有东西,我们想知道实际开始编码的最佳方式是什么。问题是我们过去常常以单人模式开发软件,或者加入一些处于开发过程中的项目,并且职责很容易在团队成员之间分配。现在我们从头开始,显然有诸如数据库设计或一些基本功能开发之类的东西,如果没有这些东西对我们俩来说都是一个障碍。我们之间也有七个小时的时差。
同样,我们知道团队合作是如何运作的,我们拥有所需的所有工具,并且我们知道在完成所有基础工作后如何分散工作量,但是当一切都取决于基础工作的结果时,如何在分布式团队中开始基础工作? 如果没有数据库,我的团队如何开始使用用户仪表板功能?
那么,你们将如何开始这样的开发过程呢?什么时候可以轻松开始在团队成员之间分配工作量?
我想知道 Joel 和 Jeff 是否可以分享他们在这个主题上的经验,因为 Stack Overflow 是由分布式团队在很短的时间内开发的。
谢谢!
c# - C#单项目组织
由于各种原因,我正在将我的源文件重新组织成一个带有单个项目的解决方案:
- 一个偏执的配置防病毒软件;
- 通过 .NET 程序集对代码进行分区的建议
- 控制组件依赖以获得干净的架构
- 受益于 C# 和 VB.NET 编译器的性能
这给我留下了许多名称空间,这些名称空间被拆分到多个文件中。到目前为止,我使用的是这个约定:给定命名空间Company.Project.A
,文件被命名A.f1.cs
,A.f2.cs
等等,Company.Project.B
命名空间被分割B.f1.cs
,B.f2.cs
等等。
鉴于单个项目的限制,有没有更好的方法来组织多个命名空间中的多个文件?
project-organization - 您如何订购/控制客户文档和资产?
我将自己归类为典型的小型开发人员/独立设计师,我最近为办公室购买了一些新硬件,并认为我比过去更好地组织自己。
所以我想知道你们是如何组织所有文件等的,这样你就可以很容易地找到它们,并将它们联系在一起。
目前我有一个在桌面上运行的网络服务器,我有一个名为 Projects、已关闭项目等的文件夹,每个文件夹都包含一个带有客户端/网站名称的文件夹,并且它包含它们的 Web 文件夹结构。但是您如何处理所有其他文件,通常我会收到 PSD、带有 CSS 布局的 zip 文件、图像、内容文档、电子邮件、徽标、规格、项目文档、要上传到网站的 PDF 等。
您是否使用另一个文件夹(我的文档)和每个文件夹的客户端名称,或者是否有更好的方法来控制所有客户端文件夹。
这尤其针对从客户/经理那里获得大量信息/资源的程序员,因此我认为这是一个关于如何设置自己的重要编程问题,因为干净的设置会带来更好的编码。
python - 从 wx 框架类调用应用程序方法
我从 wxPython 开始,并且一直在努力完成我可以掌握的每一个教程和示例。然而,我遇到了一个小问题,它与 wx.App 与 wx.Frame 有关,并且应该包含特定的方法。几乎我见过的每个示例都没有超出布局/大小调整和事件处理,没有一个真正解决 wxPython 项目的项目组织。
例如,我有一个获取文件夹列表的方法。大多数示例处理此问题的方式是将方法直接粘贴在框架类中。此方法有可能在应用程序的其他几个部分中使用,因此将其存储在应用程序类级别会更有意义。
我应该如何组织和调用这样的“通用”方法,以免我的框架类混乱。
更新:
为了澄清,“文件夹列表”只是一个例子,我的实际方法做了更多的工作。我要说的是我的代码不是特定于框架的。如果我在应用程序类中有这个,那么从我的框架中的事件方法和事件方法中调用它的最佳方法是什么。
我正在寻找实际的项目组织技术,而不是编程基础。