问题标签 [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.

0 投票
2 回答
4850 浏览

cocoa-touch - 为 MVC 设计模式组织 iOS 项目

我正在为 iPhone 开发一个多视图应用程序,目前我的视图(视图)设置和它们的转换(控制器?)运行良好。现在我想为实际的程序数据(模型)添加对象。

我的问题是:我应该如何构建我的数据以遵守模型视图控制器 (MVC) 设计模式?我知道我应该创建单独的类来实现我的数据结构,并且我的控制器类可以将消息从视图传递给它们,但是我应该检查任何其他组织考虑因素吗?尤其是 Cocoa Touch、Xcode 或 iOS 特有的那些?

其他细节:播放预先录制的和可能是用户生成的音频也很重要。我知道这些是模型元素,但它们与“V”和“C”的关系我仍然有点模糊。我想当用户操作需要音频播放时,控制器应该将消息传递给模型以准备适当的声音,但是播放的调节究竟应该在哪里进行呢?在我想象的与 ViewController 分开的“PlayerController”中?

非常感谢并原谅我的 MVC noobery。

0 投票
4 回答
18559 浏览

github - 一个爱好项目的 GitHub 与 Google 代码

注意:我已经看到了这一点,并试图从中获取尽可能多的东西;但我相信我的背景是不同的。

我正在做一个小型项目。称之为Foobar。我想让这件事更有条理..我尝试了一些项目,主要是作为一个无组织的编程作为一个轻度爱好的学生。我正在努力变得更有条理;这些项目中有 90% 是因为我根本没有记录,或者因为我丢失了它们。

因此,我一直在考虑进行版本控制/托管。它不仅会让我更有组织,而且(如果在这里的话)如果它在任何地方进入可用状态,人们会更容易获得。

我正在考虑的两个地方是 Google Code 和 GitHub。从我链接的问题:

谷歌代码:

  • 与任何 Google 页面一样,复杂性几乎不存在
  • 每个人(或几乎每个人)都有一个 Google 帐户,如果人们想使用问题系统报告问题,这很好

GitHub:

  • 可能(或可能不会)比谷歌的页面更复杂(虽然对我来说不是问题)但是......
  • ...具有比 Google 的服务更漂亮的界面
  • 它需要人们在 GitHub 上注册才能发布问题
  • 我喜欢使用 Git,您可以在本地进行自己的修订

因此我倾向于 GitHub,因为 Google Code 看起来对我没有吸引力。

对于一个小型的爱好项目——基本上是让社区功能变得无关紧要——是否有一些功能应该把我带到一边或另一边?

0 投票
2 回答
16672 浏览

git - Git子模块或子存储库或远程?

我正在使用 GIT 来管理内容管理系统 (CMS) 项目。CMS 可以有多个插件(模块)。

所以基本上,我想要 3 种类型的存储库:

  • 核心 CMS 开发(每个新项目都是对最后一个稳定和未配置版本的检查)
  • 每个模块/插件 1 个存储库。(每个新项目都会检查他们想要实现的模块的最后一个稳定版本)
  • 每个项目 1 个存储库(每个客户端将是一个代表核心 CMS 和模块的个性化的存储库)

对于类型 1 和 2,我想它是简单的基本存储库。但是当谈到客户项目时,我感到困惑:

  • 首先我将克隆 CMS,然后进入 /modules/ 文件夹并再次克隆所有必需的模块?这将在存储库中创建一个存储库!第一个 repo 会尝试记录每个模块的 .git/ 文件夹吗?
  • 我不能使用子模块,因为每个客户都需要个性化他们的模块。
  • 如果我修改模块的核心组件(不是个性化,只是错误修复),我可以将该单个文件推送到原始模块存储库吗?
  • (不谈论将四处传播的模块 unitTest )

所以问题是:我应该如何组织存储库/文件/文件夹以提高效率?

0 投票
3 回答
3188 浏览

php - 使用 git 和子模块,什么是好的文件夹结构?

我将 git 与子模块一起使用,我很难弄清楚如何组织我的文件。我用 PHP 开发,并使用单元测试。所以现在,我为每个模块使用这个组织:

  • 源/
  • 测试/

这似乎是一个绝妙的主意,但问题是当我对项目执行“git submodule add”时,我将拥有该路径:project/modules/News/src/index.php

src/ 文件夹确实有问题。

我是否应该简单地将所有文件放在模块根目录中,并在源代码中混合一个测试/文件夹?对我来说这听起来很糟糕。你在做什么 ?

编辑:由于自动加载, src/ 文件夹有问题。我不应该在我所有的班级名称中加上“src”......

0 投票
2 回答
10245 浏览

php - 测试多个文件夹

我在我的项目中使用 PHPUnit 3.5.12、netbean 6.9 和 git 子模块。

所以我的文件夹架构如下所示:

考虑到我的主要测试文件夹(带有 phpunit_netbean.xml 和 bootstrap.php)位于 /tests/ 文件夹中;我怎样才能在 /lib/*/tests/ 中运行测试?

我看过测试套件,但我无法让它工作。到目前为止,我已经在我的 tests/phpunit_netbean.xml 文件中尝试了以下配置:

当我在 Netbean 中按 ALT+F6 时,我只有 /tests 运行的测试。同样的事情:

另外,我试过这个:

0 投票
3 回答
2084 浏览

.net - 构建服务器 - 在构建服务器上安装外部控制库 (DevExpress)

什么是正确的方法?

我们的项目有一个构建服务器。我们有不同的项目,它们引用了不同版本的 DevExpress。

  1. 我们应该在构建服务器上安装每个 DevExpress 版本还是

  2. 每个项目都应该有自己的包含 DevExpress 程序集的文件夹。

  3. 是否存在其他可能的方式?

在我看来:

优势 1:每个开发人员都更容易维护自己​​的项目本地副本。缺点 1:DevExpress 版本在构建服务器上地狱,因为必须安装每个新版本。

优势2:每个项目都可以在没有先决条件的情况下构建。缺点 2:每个开发人员都必须手动将他的 dll 放在单独的 Libs 文件夹中。如果您已从工具箱中拖出 DevExpress 控件,则必须重新组织此 dll 的引用。

0 投票
1 回答
23379 浏览

domain-driven-design - 领域驱动设计 - 层应该如何组织?

我对软件开发非常陌生。我认为分层架构是减少面向对象软件开发过程中出现的复杂性的好方法,更不用说保持代码的组织性了。

我有兴趣了解领域驱动设计方法,并且我遇到了一些问题来让自己了解它(当然,初学者级别的)。
这里是 -

我想构建一个应用程序来将人员相关数据保存在数据库中并在 WPF 中显示人员详细信息DataGrid(我知道,DDD 绝对不适合这种规模的应用程序,而只是为了让像我这样的业余爱好者保持简单)。所以,我创建了一个域类“Person”,比如——

现在,我对 DDD 的理解说架构(它的最简单版本)应该如下(如果我错了,请纠正我) -
在此处输入图像描述

笔记:

  1. 我希望DataGrid绑定到一些ObservableCollection,以立即反映任何类型的变化。

  2. 这是一个 WPF 应用程序,但不一定是 MVVM 模式,我故意想使用后面的代码。

我的问题是——

  1. 什么样的代码属于Application Layer

  2. 我的猜测是,我绝对不应该将ObservableColletion我的域对象(即Person)绑定ItmsSourceDataGrid. 那么我应该从域对象中提取什么类型的对象,以及如何提取?

  3. 为了保持两者之间的脱钩Presentation LayerDomain Layer可能有一个像never instantiate domain objects directly in the presentation layer. 那有哪些non-direct方法呢?

  4. 如果代码隐藏与该对话,Application Layer那么应该与该Application Layer对话Data Repository吗?但是,如果需要某种与数据访问无关的域访问可能不在此应用程序中,但可能会发生,对吗?)在那种情况下,应该是谁(子X层/模块)谈?Domain LayerApplication Layer

我知道我的问题是非常业余的水平,但它们确实是从我面临的问题中提出的问题,以获得清晰的画面。因此,如果有人有时间,将不胜感激。

编辑:我不确定是否Data Repository应该参考Domain Model.

0 投票
3 回答
426 浏览

.net - .NET 项目/命名空间组织问题

我们有一个框架,它定义了许多接口和一些基本的默认实现。我们称它为 CompanyFramework。我有一些 ASP.NET MVC 扩展,目前存储在一个单独的项目 CompanyFramework.Web.Mvc 中。这样做的原因是,使用核心框架但与 MVC 无关的应用程序不必引用 ASP.NET MVC 库。我不太喜欢这种设置,因为额外的程序集仅包含 3-4 个类文件,但这是避免向主框架程序集引入不必要的依赖项的最简洁方法。

现在,我们有一些用于 ASP.NET MVC 的特定于 StructureMap 的扩展,即自定义控制器工厂和模型绑定器类型的东西。你会把这样的东西放在哪里?我可以把它扔到 CompanyFramework.Web.Mvc 项目中,但是任何使用它的 ASP.NET MVC 项目都会引用 StructureMap 程序集,即使它没有被使用。我还可以创建一个单独的 CompanyFramework.StructureMap 项目,但是如果我曾经开发过任何不依赖于 ASP.NET MVC 的 StructureMap 扩展,我仍然无法为使用它们的类引用 MVC 程序集。

我应该制作一个单独的 CompanyFramework.Web.Mvc.StructureMap 项目吗?这种方法总体上看起来最干净,但我觉得我开始引入一堆轻量级的附属程序集,它们使整个项目结构变得混乱。

0 投票
1 回答
3264 浏览

python - CherryPy:是否有将项目拆分为多个文件的最佳方法?

我是 CherryPy 的新手,来自 Django。我喜欢 Django 将项目的各个部分拆分为多个文件的方式,我想在 CherryPy 中做同样的事情,而不是拥有一个大文件。

我认为如果我可以将项目分成这些部分会很棒:

  • application.py :CherryPy 的核心,服务器启动的地方
  • urls.py :包含所有 url,可能使用 RoutesDispatcher
  • models.py :通过 SQLAlchemy,包含所有模型
  • controllers.py : 很明显;)

我不是在这里要求完整的代码粘贴,示例/pastebin/gist 的链接也很完美:)

谢谢你的帮助。

0 投票
4 回答
209 浏览

c# - 在 C# 代码中包含数据的格式

我有一个使用硬编码值表的程序。例如

这个数据很少改变,所以我可以硬编码它。问题是很难读取这些数据,并且格式化不起作用,因为 Resharper 重新格式化它的方式不同。

理想情况下,我想要一个带有自定义 VS2010 查看器的特殊格式文件,该文件会将这些信息显示为表格,并为这些表格生成 C# 代码作为编译过程的一部分,或者甚至将其直接编译为 MSIL (CLR)。

我正在寻找一个交钥匙解决方案,这个问题还不够严重,不足以保证任何额外的开发。