问题标签 [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.
c# - 我将所有这些接口放在哪里?
我试图通过单元测试让我的脚湿透。我目前没有为类编写接口的习惯,除非我预见到某些原因需要换成不同的实现。好吧,现在我预见到一个原因:嘲笑。
考虑到我将要从少数几个接口发展到数百个接口,我脑海中闪现的第一件事是,我应该把所有这些接口放在哪里?我只是将它们与所有具体实现混合在一起,还是应该将它们放在一个子文件夹中。例如,控制器接口应该放在 root/Controllers/Interfaces、root/Controllers 中还是完全放在其他位置?你有什么建议?
.net - 针对多个框架,如何实现?
我在 Mercurial rep 中有 ac# 库(在 VS2010 中开发),目前针对 netFX-3.5。我想在我的库中使用 netFX-4.0 中的一些功能,但由于有很多项目仅限于 2.0 CLR,我还想保留和维护 netFX-3.5 版本。自然会有一些代码(甚至可能是大部分代码)在两个版本中都是相同的。现在我很困惑,这是保持这一点的最佳(或至少是好的)方法。
我应该在 VS 中创建一个单独的项目吗?或者也许创建存储库的克隆?有一些行之有效的策略吗?
更新: 我发现了 VS Add as Link功能,它允许在项目之间共享文件,这对于在同一个解决方案中将两个目标作为两个项目实现是一个巨大的优势。我很确定我会使用这个解决方案,但如果有更多建议,那就太好了!
更新2:
正如我之前所说,使用添加为链接功能来实现如下所示的结果:为旧的(3.5)框架创建一个新项目。将所有文件添加为顶级版本项目的链接。在 v4.0 项目中,通过partial class
诸如ClassName.Net40.cs
. 对我来说很好。
xcode - Xcode 4、子项目导入问题
我想将一个项目添加为子项目。当我将子项目拖到主项目中时,它显示为文件引用而不是子项目。下图说明了问题:
google-app-engine - GWT多模块应用
我是一名 GWT 初学者,正在考虑开发一个管理软件并将其部署在 AppEngine 上。
在我看来,有一个“标签式”用户界面。
Tab1=销售额;Tab2=发票;Tab3=库存...等等。
我刚刚完成了 Stockwatcher 教程,它非常酷,但现在我想知道如何组织我的代码。
我的意思是,为每个选项卡制作一个 gwt 模块是个好主意吗?例如,我只想在选择该选项卡时加载“发票”选项卡的界面。即使我关于多模块的想法是错误的,你能告诉我如何避免将我的所有代码都放在“Stockwatcher”类中。例如,我阅读了有关复合材料的信息,但我无法理解。
希望你能理解我的疑惑。谢谢你们!
svn - 将多头项目从 SVN 过渡到 HG
我们正在加入现代世界并从 SVN 过渡到 Mercurial 以进行源代码控制。其中大部分非常简单——只需将当前主干导入 HG 并进行克隆。一个项目有点花哨,我没有看到正确的方法来做到这一点。
有问题的项目实际上是 4 个独立的 Web 应用程序,其中 3 个实际上是单个公共线程 [称为 CORE] 的分支。从 SVN 的角度来看,它看起来像:
在工作流程方面,对核心的更改可以来自 PROJECT-A 或 PROJECT-B,并合并回 CORE。
我的问题是“我应该如何将它放在 HG 中并且仍然能够将更改合并到 CORE 中?
flash - 组织 Actionscript 项目
我学习不同的编程语言超过 4 年,但我从未想过如何组织东西,因为在 php 中它比 flash 更容易。现在我需要做一个收音机播放器,但我不知道如何组织这些东西,以免迷失自己。请给我建议,我应该在这个项目的主要课程中做哪些课程以及做什么和不做什么。
先感谢您。
很抱歉占用您的空闲时间。
拉脱维亚雷蒙兹
codeigniter - 一个网站有两个应用程序文件夹:如何在 CodeIgniter 中共享代码?
我有一个 CI 网站,其中包含两个应用程序文件夹,一个用于前端(用户),另一个用于管理员用户:
在里面/applications/front/helpers/
我们有一些类,比如MY_url_helper.php
,然后因为我们想在管理区域中使用它,我们有相同的确切代码
/applications/admin/helpers/MY_url_helper.php
- 所以当我们修改代码时,它在两个地方。
可以想象,这违反了许多规则!使用 CI 在单个网站上与两个应用程序共享相同的帮助程序/库的更好方法是什么?
c++ - C++项目组织
我已经成为一个共享库项目的维护者。该库分为几个模块,每个模块都编译为静态库,然后链接在一起。Eclipse 用作IDE,代码存储在SVN 服务器上。到目前为止,构建过程是通过手动构建库来处理的,将所有 .a 和 .h 移动到共享文件夹中,然后构建共享库。代码需要针对linux、ARM和windows编译。
问题是我需要更多地拆分当前模块,以便更好地测试(多个测试和示例简单程序,只有一个带有 .cpp 的文件main
)和模块间代码共享(模块 A 和 B 都使用 C,但是我不想连接A和B)。这会导致更复杂的依赖树,很难手动处理。我还需要能够为一个项目构建更多配置,可能链接到不同版本的依赖项目。
您将如何组织代码并设置开发环境?
编辑:我需要从 DE 获得的具体内容:
- 带 GUI 的 IDE(我喜欢 vim 和 shell,但其他人不喜欢)
- 单独的项目,每个项目都创建静态库、要包含的标题集和示例程序
- 每个项目的不同配置,链接/包括不同版本和/或依赖项配置
- 代码完成和 SVN 支持
visual-studio-2010 - 大型 Visual Studio 解决方案中的单元/集成测试组织
我开始为一个非常大的 Visual Studio 解决方案开发和组织测试。(是的,我知道测试应该与代码一起开发,而不是在项目接近完成时进行,但事情就是这样。)
我已经看到有关在 Visual Studio 解决方案中组织单元测试的类似问题,但我也没有看到任何解决集成测试的问题。我会很感激一些关于在哪里放置测试项目的指导,这样它们就不会弄乱已经很大的代码库。
这是解决方案中事物的基本层次结构。(所有不以 .proj 结尾的项目都是项目中的文件夹或解决方案文件夹。)
- 硬件服务
- 硬件服务1
- HardwareService1.Core.proj
- HardwareService1.Host.proj
- HardwareService1.Service.proj
- 硬件服务2
- HardwareService2.Core.proj
- HardwareService2.Host.proj
- HardwareService2.Service.proj
- 硬件服务1
- 基础设施
- MyApp.Database.proj
- MyApp.Infrastructure.proj
- MyApp.ReportViewer.proj
- MyApp.SettingsManager.proj
- 应用模块
- AppModule1.proj
- 常见的
- 报告
- 服务
- 视图模型
- 意见
- AppModule2.proj(与其他 AppModule 类似的结构)
- AppModule3.proj(与其他 AppModule 类似的结构)
- AppModule1.proj
- 模块
- 计算引擎.proj
- 页脚项目
- 头文件.proj
- CommonServices.proj
我的想法是制作一个名为“Tests”的解决方案文件夹,然后模仿上面的层次结构,为每个生产代码项目制作一个测试项目。在每个测试项目中,我会创建名为“UnitTests”和“IntegrationTests”的文件夹。
我的重点是创建一个一致的命名/组织方案,以便在新测试应该去哪里以及在哪里找到现有测试方面没有歧义。鉴于这个项目/应用程序的规模很大,我希望结构非常坚固,这样以后就不会痛苦了。
感谢您的时间和建议。
android - 我应该如何组织包括库在内的 Android 项目的源代码控制?
我需要一些帮助来找出组织我的 Android 项目的最佳方式(或最佳实践)。为简单起见,假设我的 Android Eclipse 工作区是C:\Android\Projects\
. 在该文件夹中,我喜欢将应用程序与库分开,并且我还有另外两个文件夹C:\Android\Projects\Applications
和C:\Android\Projects\Components
.
对于一个项目,我从 GitHub 克隆了一个库到Components
文件夹中,假设C:\Android\Projects\Componentes\SampleLib
(在该文件夹中有两个文件夹TheLib
和TheLibExample
)。我的应用程序被创建到C:\Android\Projects\Applications\MyTestApp
. 然后我按照这些说明将库包含到应用程序中。
现在假设我想使用 GitHub 与开源社区共享我的应用程序。我将创建一个存储库并将所有内容推C:\Android\Projects\Applications\MyTestApp
送到某个存储库中。
如果有人想分叉我的应用程序甚至帮助我,它将需要库来编译和运行它,这不包含在我的项目本身中。该default.properties
文件将具有类似的内容android.library.reference.1=../Components/SampleLib/TheLib
,并且有人也需要手动克隆该库,并且他需要将其放置在相同的相对路径中,否则它会弄乱我的应用程序的源代码控制。
我能想到解决这个问题的唯一方法是像这样组织我的工作区:
我的存储库应该充满来自C:\Android\Projects\Applications\MyTestApp\
.
但是当库更新时会发生什么?我不能简单地提取新更改,我需要将它们复制到TheLib
文件夹中。在以前的文件夹组织中,这将不需要,因为我引用的是原始克隆存储库而不是副本。
那我该怎么办?我应该使用选项一并让任何分叉我的项目的人按照他们认为合适的方式处理库依赖项,还是我应该使用第二个选项并通过在原始文件夹中提取更改时保持两个文件夹同步来给每个人更多的工作。存储库?