问题标签 [code-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 投票
3 回答
266 浏览

php - 在 PHP 中为 XML 数据创建类还是只使用关联数组?

从维护和代码组织的角度来看,在 PHP5 中,为来自 Web 服务的 XML 数据创建/定义对象和类是否有意义?

Twitter 的 API为例,我将为每个 API 方法(状态、用户、direct_messages 等)创建一个类。对于statuses/public_timeline,我会有这样的事情:

还是将所有内容转储到关联数组中更好,这样可以像这样访问项目:

第一个设计:

  • 严格遵循面向对象的原则
  • 似乎是一种更适合编译语言的方法

第二种设计:

  • 如果 API 被修改,需要的维护会少很多。如果 API 将属性添加到 XML,则需要在第一个设计中更新相应的类。
0 投票
1 回答
5314 浏览

django - 为什么 django 强制所有模型类都在 models.py 中?

我刚刚了解到将模型类拆分为不同的文件会破坏 django 的许多内置功能。

我来自java背景。在那里,编写很长的类文件并不被认为是一种好习惯。但是 django 对所有模型类执行单个文件可能会导致程序员编写很长的 models.py 文件。这将使程序员很难看到整个领域模型的组织。

那么为什么 django 强制单个文件包含所有域类呢?

我通过谷歌搜索找到了解决这个问题的建议。但我不能确定这是否会正常工作。你建议这个解决方案吗?

0 投票
6 回答
328 浏览

python - Python 中的代码组织:哪里是放置晦涩方法的好地方?

我有一个类Path,在专用模块中定义了大约 10 个方法Path.py。最近我需要再为Path.

哪里是放置它们的好地方,这样它们的上下文就很清楚了?当然,我可以将它们与类定义放在一起,但我不喜欢这样,因为我喜欢将重要的事情与晦涩的事情分开。

目前我将这些方法作为函数定义在一个单独的模块中,只是为了保持独立,但最好将它们作为绑定方法。(目前他们将Path实例作为显式参数。)

有人有建议吗?

0 投票
2 回答
951 浏览

wcf - 将单独的 WCF 项目与 Silverlight 一起使用

我正在开发一个使用 WCF 的 Silverlight 应用程序。我需要将我的 WCF 项目与托管我的 Silverlight 项目的 ASP.Net 应用程序分开。我正在寻找一些关于如何组织我的解决方案并列出其他人在调试和部署过程中遇到的问题的指导。

具体来说,我的问题是

  1. 我应该为 WCF 服务使用什么类型的项目?(一个 WCF 项目,一个具有自托管 WCF 服务的 ASP.NET 项目,其他)

  2. 我需要什么才能得到它,以便当我按 F5 时我可以调试我的 Silverlight 项目和我的 WCF 服务?我需要一个跨域策略来调试这个东西吗?

关于我为什么要这样做的一些背景信息:

我有旧版 Web 应用程序,我正在逐渐将其转换为 Silverlight 应用程序。因为它是一个大型 Web 应用程序,所以它的某些功能会先于其他功能转换为 Silverlight。

旧版 Web 应用程序中有很多不再使用的代码。许多不再使用的代码引用了第 3 部分组件。这就是为什么我想摆脱旧的 Web 应用程序。所以很明显,我不想托管将在其中保留以供将来版本使用的 WCF 服务。这就是我想要将 WCF 项目分开的原因。

0 投票
3 回答
959 浏览

visual-studio - 在我的 IDE 中对齐功能块的这条虚线是什么?

我用于 Python 代码的 SPE IDE 使用这种看起来像垂直虚线的“视觉提示”来对齐(我称之为)功能块。如何在 Visual Studio 2008 中获得此选项?

这是它的样子:

0 投票
6 回答
15167 浏览

java - 如何在.NET 中组织类似于#region/#endregion 的代码?

虽然代码越来越大,但保持一切井井有条变得越来越难。我在 .NET 中开发时非常喜欢的一件事是#region/#endregion,它能够将代码组织成逻辑组,并使进一步的组织变得更加容易。

有谁知道Java中是否有类似的代码组织?

0 投票
8 回答
1045 浏览

php - 在 PHP 中组织类

假设我的项目中有以下类:

  • class Is //验证类
  • class Math //数字操作类

现在,如果我想验证给定数字的素数,那么插入我的 Prime() 方法的逻辑位置在哪里?我可以想到以下选项:

  • Is_Math ::素数()
  • Math_Is ::素数()

我讨厌这些模棱两可的东西,它们会减慢我的思维过程并经常导致我犯错误。更多示例:

  • 是::Image() 还是 Image::Is() ?
  • Is_Image::PNG() 还是 Image_Is::PNG() ?
  • Is_i18n_US::ZipCode() 或 i18n_Is_US::ZipCode() 或 i18n_US_Is::ZipCode() ?

在 Image 示例中,第一个选择对我来说更有意义,而在 i18n 示例中,我更喜欢最后一个。没有标准让我觉得整个代码库很乱。

是否有组织课程的圣杯解决方案?也许是不同的范式?

0 投票
1 回答
408 浏览

code-organization - 在生产服务器上管理演示/登台/现场之间的站点部署

我们目前管理站点推出到服务器然后在演示/acc/live“模式”之间切换站点的方式有点偶然,我希望改进整个过程。

我一直在审查自动部署工具,以及服务器的结构方式。我将把自动化部署问题留到另一篇文章中,在这里我对人们如何在生产服务器上组织代码感兴趣。

我们目前在数据驱动器上有 3 个顶级文件夹,“demo”、“acceptance”和“live”。将某些东西归类为“演示”或“acc”之间存在细微的差异,我不会进入,足以说明我想摆脱所有争论/歧义。

我们的推出程序如下,一旦开发了一个网站,就在“acceptance”主机标题下推出它,例如acceptance.project-domain.com在“acceptance”文件夹下。客户审查网站,我们对其进行测试以确保所有连接字符串/权限等都是正确的。客户同意上线。此时,我们完全重新推出“live”文件夹下的站点,并为其提供实时主机标题。当然,此时站点在其部署状态下完全未经测试(这里不讨论单元测试,我的意思是文件权限、iis 设置错误等)。然后必须重新测试该站点:(

我认为像这样的结构会好得多:

这样,可以将新站点部署到version1“acc”主机标头下的文件夹中。如果客户同意,您只需切换标题即可。如果有变更请求,他们会进入一个v1.1可以有接受标题的地方,一旦它得到确认,交换标题就可以了。冲洗并重复。

对于自动化部署脚本,这个过程也更容易管理。将站点的所有代码放在单个父文件夹下意味着上传权限可以限制在单个站点,因此您不会意外覆盖另一个站点的代码,更容易跟踪服务器上的版本,项目管理 wiki 可以轻松维护……不胜枚举!

您的代码组织和部署管理方法是什么?

0 投票
6 回答
2768 浏览

java - 组织小型实用程序功能

经过多年的编程,我们都有一组用作帮助实用程序的小函数,我们希望它是内置的,这样我们就可以在任何项目中使用它,并让更多人照顾(测试和优化)。

我有很多这些功能。想问问大家是怎么组织的?你有什么建议吗?

我就是这样做的。我把它放在一个单独的项目(一个 Eclipse 项目)中,比如说“MyUtils”,它被其他项目引用。这是可行的,但是因为 utils 集合变得越来越大,所以 utils 比项目代码大(对于小型项目)有点奇怪。并且要在 Jar 中运送它,您必须手动选择它们(或将它们全部包含在内)。有没有更好的办法?

此外,由于 Java 要求所有函数都在一个类中,所以我有大量静态函数(那些不适合 OOP 的函数),例如从文件名读取文本文件的函数。像这样:

因此,当我需要包含所有功能时,尽管它没有被使用。

有一个更好的方法吗?

如果有特殊技术,我无论如何都会在 Linux 上使用 eclipse,但如果你有其他工具的技术,我可以自由分享。

0 投票
6 回答
85215 浏览

java - maven项目可以有多个父项吗?

我们有 Java 和 Flex 项目。我们目前有 1 个基础 pom,其中包含我们要用于两个项目的配置。这样做的问题是:Flex 项目继承了配置,例如 forjavadocpmdplugins,这是不可取的。

我想清理它并拥有一个真正的基础 pom,然后是 ajava-base-pom和 a flex-base-pom。但是,这在同时具有 Flex 部分和 Java 部分的多模块中是如何工作的呢?

我们有我们自己的应用程序的插件,我们使用以下结构:

  • 我的插件
    • 我的插件客户端(flex)
    • 我的插件服务器(java)

my-plugin只包含一个pom.xmlwith<modules/>部分。我会使用my-pluginpom.xml 作为两者的父级,但是我不能也使用 java base-pom 或 flex base-pom 作为父级。最好的方法是什么?