问题标签 [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 投票
1 回答
182 浏览

php - 我应该如何组织我的 ajax 动作文件

我想知道用 ajaxActions 文件组织我的 php 项目的最佳方法是什么。

目前,我有一些./process/ajaxAction_pagename.php包含我的操作的文件,如下所示:

我只是想知道是否有更好(或更标准)的方法来做到这一点。

0 投票
5 回答
22069 浏览

python - 组织模块和包的 Pythonic 方式

我来自通常每个班级创建一个文件的背景。我也在目录下组织公共类。这种做法对我来说很直观,并且已被证明在 C++、PHP、JavaSript 等中是有效的。

我很难将这个隐喻带入 Python:文件不再只是文件,而是正式的模块。在一个模块中只包含一个类似乎是不对的——大多数类本身是无用的。如果我有一个automobile.py和一个Automobile类,那么总是引用它似乎很愚蠢automobile.Automobile

但是,与此同时,将大量代码放入一个文件并收工似乎并不正确。显然,一个非常复杂的应用程序应该有 5 个以上的文件。

什么是正确的——或pythonic——方式?(或者如果没有正确的方法,您首选的方法是什么,为什么?)我应该在 Python 模块中输入多少代码?

0 投票
1 回答
2513 浏览

.net - 大型 .net 应用程序的理想项目结构是什么?

我目前正在与 5 个开发人员一起开发一个项目。该应用程序由一个胖客户端、一个瘦管理客户端和多个支持维护应用程序组成。目前,胖客户端是用 VB6 编写的,并计划在未来 6-12 个月内转换为 .NET。瘦客户端是一个管理 Web 应用程序,允许管理人员管理胖客户端上的设置。支持维护应用程序用于运行夜间批处理作业和需要定期发生的作业,以保持数据在整个应用程序中移动。目前我们有以下结构:

文件系统:

当前文件系统布局 http://img130.imageshack.us/img130/5387/currentprojectlayout.png

SVN:

当前 SVN 布局 http://img707.imageshack.us/img707/2320/currentsvnlayout.png

如您所见,我们的 Subversion 存储库基本上反映了我们的文件系统布局,对标准 Subversion Trunk、Tags 和 Branches 文件夹进行了明显的更改。我们的项目有一个 lib 文件夹,其中包含我们所有引用的非 GAC dll。在我们的 src 目录中,我们有两个文件夹和我们的持续集成构建文件。这两个文件夹包含两种类型的应用程序,我们的胖客户端 (VB6) 和我们的其他项目 (Other)。VB6 应用程序分为不同的模块,这些模块包含应用程序的不同业务逻辑。在 Other 文件夹中,我们有许多不同的项目(上面用 Project1 - Project6 描述,还有更多)。有一个 Web 应用程序,其中包含我们的瘦客户端代码。这里的其他一些项目是支持应用程序,在应用程序的不同部分以及我们的维护应用程序中访问的公共类。当我们使用 VB6 应用程序转到 .NET 时,我想稍微重组项目并想知道重组这个应用程序的最佳方法是什么。我的第一个想法是具有以下结构:

建议的文件系统布局 http://img248.imageshack.us/img248/7712/proposedprojectlayout.png

我知道有很多堆栈溢出问题可以解决这类问题,但这更多是关于我的项目的具体问题,而不是像许多其他问题一样的一般问题。这是整理项目的最佳方式,还是有更好的方式?

谢谢,

斯科特蓝

0 投票
5 回答
8980 浏览

ruby-on-rails - 用于组织多文件 Ruby 程序的系统?

是否有组织多文件 Ruby 程序的标准或常规系统?我在 Ruby 中开始了我的第一个大型“项目”,这是一个按逻辑组织成多个文件和目录的搜索程序。我在下面概述了我的潜在结构:

  • 主文件. 该文件实现了搜索类和通用搜索协议。
  • 算法分析文件。该文件实现了解释搜索结果的函数。
  • 协议目录
    • 每个协议包含一个要搜索的文件。
  • 提要目录
    • 该程序的部分目的是搜索存档的新闻提要。此功能的文件位于此文件夹中。

但是,代码目前有一个类(我们称之为 Searcher),每个协议的搜索类都继承自(GoogleSearcher < Searcher)。为了管理这个,我需要在这些协议文件中包含主文件(对吗?),考虑到我理想的结构,这似乎是不可能的。

除了我的具体示例之外,我想知道是否有任何约定,例如“更多文件而不是更少”,或“文件的逻辑结构是不必要的”。有一个“帮助”函数的文件(比如在 Rails 中)是否常见?什么级别的抽象被认为是合适的?

最后,我计划有一天将它作为一个库集成到 Rails 中(不是插件;我希望它也能独立工作)。我不知道这是否会影响组织。

我知道这是一个非常开放的问题,但那是因为我会很感激任何远程相关的建议。提前致谢。

0 投票
1 回答
1203 浏览

version-control - 组织一个使用多种语言的项目?

我目前正在开发一个包含 perl、.NET、C/C++ 和 Java 组件的项目。这些组件是相互关联的,但不依赖于相同的发布时间表。由于非常不同的构建/测试环境要求,将它们全部归入相同的 /bin /src /lib /etc /tests 层次结构有点笨拙。

在处理这种性质的项目时,可以在源代码控制中使用哪些好的组织层次结构?我目前倾向于每种语言都有自己的分支:

回购/project1/perl/main/...

回购/project1/.NET/main/...

回购/project1/Java/main/...

如果他们确实有一个捆绑的发布时间表,你推荐的层次结构将如何变化?

0 投票
1 回答
939 浏览

c++ - 中小型项目的 Maven 学习曲线和开销?

将 Maven 用于中小型 C++/Eclipse/Linux 项目的初始学习和设置曲线以及后续开销是多少(粗略估计,当然是平均值)?

我们一开始是 4 名开发人员。我们目前有大约 20 个原生 eclipse C++ (CDT)“项目”,我们以交互方式编译它们。我们希望有一个自动结帐和构建脚本。

在这个阶段这似乎有点过头了,但也许我们应该尽早采用它,前提是它不会产生开销。我们现在没有带宽进行广泛的配置管理。非常感谢!

编辑/详细:

我意识到我没有很好地描述我的需求。阅读了下面提供的参考资料后,我发现 CI 工具目前对我们来说似乎有点过头了。我想要的是一个构建工具,它一方面与 eclipse 很好地集成,另一方面允许离线、非交互式构建。我喜欢使用 Eclipse 项目的简单性:您只需添加文件、添加对内部组件和第三部分库的引用,就可以了。您不需要手动维护 makefile 等。与几年前我使用 MSVS 时一样,它的问题在于它没有为您提供非交互式构建的选项。那么,这样的工具存在吗?

0 投票
2 回答
7046 浏览

namespaces - 在 Clojure 中使用命名空间的常见约定是什么?

我很难找到在 Clojure 中使用命名空间的好建议和常见做法。我意识到名称空间与 Java 包不同,所以我试图梳理出 Clojure 中的约定,这似乎很难确定。

我想我很清楚如何将函数拆分为 clj 文件,甚至大致了解我希望如何将这些文件组织到目录中。但除此之外,我很难找到适合我的开发环境的机制。一些相互关联的问题:

  1. 我对 Clojure 命名空间使用的唯一性约定是否与我通常用于 Java 包的唯一性约定相同?[即向后公司域.project.subsystem]
  2. 我应该将文件保存在与我的命名空间匹配的目录结构中吗?[阿拉爪哇]
  3. 如果我有多个命名空间,我是否需要将所有代码编译到一个 jar 中并将其添加到我的类路径中以使其可访问?
  4. 每个命名空间都应该编译成一个 jar 吗?或者我应该创建一个包含来自许多命名空间的 clj 代码的单个 jar?

谢谢...

0 投票
2 回答
414 浏览

asp.net-mvc - 如何组织 asp.NET MVC 项目以允许“精简”版本

我正在将 Web 表单应用程序迁移到 ASP.NET MVC。今后,我们可能希望提供此应用程序的“精简”版本。这是一个非常模糊的概念,但我希望底层数据库是一样的,我们只会简化 UI,用户甚至可以随意在完整版和精简版之间切换。

我们显然希望尽可能多地重用,也许使用相同的模型但不同的视图。一些页面将保持完全相同,其他页面可能会被删除或与其他页面合并。

我想要避免的是,以这样一种方式组织项目,如果最终我们决定这样做,那么它就很难做到这个“精简”版本。在这一点上,我能想到的只有控制器和视图区域,按“完整”、“精简”和“共享”组织。

有没有人有使用 MVC 的多种应用程序的经验?

0 投票
4 回答
1347 浏览

git - 您将如何对个人数据(例如个人网站)使用版本控制?

这更像是一个用例问题,但我使用 txt2tags 为个人网站生成静态文件。我在考虑也许将这些信息存储在 git 存储库中。通常我使用 RCS,因为它最简单,而且我只是一个用户。

但是似乎人们使用 git/svn/cvs/etc 的趋势很大。对于个人数据,我认为这也可能是至少学习该工具的一些基础知识的好方法。显然,大部分学习都是在您协作的环境中完成的。

回到这个问题:你将如何使用 git 等版本控制系统来管理个人网站?

0 投票
2 回答
438 浏览

php - 我想更好地组织我的网站文件,但我可以使用文件夹层次结构访问 .php 文件。我怎样才能覆盖它?

例如,要访问我的搜索文件夹中的页面,我必须编写:

mywebsite.tld/search/searchJob.php

我不希望用户必须写下文件夹结构等等。我能做些什么来改变这一点?

或者,有没有更好的方法来组织我的文件?因为我只有两页,所以我决定移动一些文件并在层次结构中迷失了(这就是为什么我像图片中那样移动它们)。