问题标签 [modularization]

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 投票
4 回答
585 浏览

c++ - 学习编写有组织的模块化程序

我是一名计算机科学专业的学生,​​我刚刚开始为我的课程编写相对较大的程序(750 - 1500 行之间)。到目前为止,任何合理的模块化和面向对象的设计水平都可以应付。但是,现在我正在为我的作业编写更复杂的代码,我想学习编写更好的代码。

任何人都可以向我指出一些资源的方向,以了解在设计程序架构时要寻找什么样的东西,以便您可以使其尽可能模块化?

0 投票
4 回答
477 浏览

javascript - Javascript模块化大对象

我有一个定义为函数的对象,其中有很多方法和属性,有什么方法可以对其进行模块化以使其更易于管理?可以将对象内部的函数放入外部文件中吗?

编辑:

有人在一个答案中提到要包含其他文件,但这会有一个笨拙的 HTML 页面,即 IE:

还有什么方法可以构造代码,因此javascript文件只需要一个引用吗?

0 投票
2 回答
505 浏览

php - 将 PHP 包含语句嵌入到回显的字符串中

我一直在尝试通过将我的站点结构定义为 php 字符串变量然后将这些变量回显来清理我的站点。这将我所有的站点结构压缩到五行,在 echo 语句之间有一篇文章。我的页面如下所示:

<?php
include('modules/moddefault.php'); //链接到站点结构设置为变量
$title = "Example Page"; // 定义页面标题。这被插入到嵌入的标题语句中。

回声“$ modtop”;// 声明、头部、标题等
echo "$precontent"; // 前置内容结构
?>

<h1>Web 内容放在这里</h1>
<p>文章内容会很好而且整洁。</p>

<?php echo "$postcontent"; // 后内容结构
?>

我想知道如何将我的 CSS 包含在 PHP 字符串变量中。PHP 包含不要注册,因为 php 已经处理了该页面。包含语句正在打印到我的屏幕上,而不是作为 php 语句处理。

这是我在上一个代码块中回显的变量之一的示例:

$precontent = "<正文>";
$precontent .= "<div id='wrapper'>";
$precontent .= "<div id='header'>";
$precontent .= "<div>";
$precontent .="include 'modules/header.inc'"; //这是我遇到问题的地方
$precontent .= "</div>";
$precontent .="</div>";
$precontent .= "<div id='navtop'>";
$precontent .= "<div>";
$precontent .="include('modules/topnav.inc');"; // 这是我遇到问题的地方
$precontent .= "</div>";
$precontent .="</div>";
$precontent 。= "<div id='centerbox'>";
$precontent .= "<div id='article'>";
$precontent .= "<div id='innerarticle'>";
$precontent .= "<div>";

我尝试在字符串中嵌入另一个 php 语句,

$precontent .= "<?php include('modules/topnav.inc';?>"; 这不起作用。

我也尝试过 ssi 格式,但 php 似乎忽略了这些语句,因为它们是写在忽略语句中的。

任何帮助都会很棒。

0 投票
4 回答
785 浏览

java - 添加新字符串的调制 -> 方法调用

如果我有一个执行以下操作的程序:

将来,我可能想添加另一段代码,如下所示:

如您所见,我正在使用 SAME 函数 X 为不同的条件 BUT 添加一个新的“if”语句。未来的代码可能会有许多不同的 IF 语句(或开关),所有这些都在比较字符串与一个字符串,然后执行一个函数。考虑到未来的扩展,我想知道是否有一种可能的“更整洁”、“模块化”的方式来实现相同的结果。

很遗憾,我不能将字符串与 Java 中的哈希表(字符串,方法)中的方法调用结合起来。这样我就可以将任何新过程存储在哈希表中并获取该字符串的相关方法。

有任何想法吗?

谢谢

编辑:谢谢大家的解决方案。我对在这么短的时间内收到的回复的数量和质量感到惊讶。

0 投票
1 回答
431 浏览

jsp - 如何以编程方式呈现 JSP 文件?

目前,我正在使用 Velocity 而不是 JSP,因为它具有灵活性。由于某些原因,我需要将我的 Web 模块分发到jar存档中,而不是存档中war

不过,我已经阅读了 servlet 规范,但我没有找到以编程方式调用 jasper 引擎的方法。

我的想法是,将 Web 应用程序拆分为几个模块:

  • 一个顶级war模块,其中包含web.xml和所有 3rd-party jar 依赖项。
  • 其他jar模块包含 http servlet(jsp是 servlet 的一种特殊形式)。

在类资源中嵌入 Velocity 模板非常容易,所以我想知道是否可以使用 JSP 完成相同的工作?

编辑

Velocity 的问题是,我们必须使用一些 taglibs、JSF 等来创建丰富的 Web UI,而这是 Velocity 模板无法做到的。

0 投票
1 回答
369 浏览

python - MVC 是 GAE 应用程序的良好设计模式吗?

我的 GAE 应用程序当前设置有以下文件名

  1. main.py(2个主要模型以及用于创建和更新模型的逻辑)
  2. i18n.py(用户界面逻辑如何使用 i18n 查看对象)
  3. reports.py(基于 cron 的报告脚本)

我认为名称很清楚,但我正在考虑遵循模型-视图-控制器模式,因此将这三个文件重命名为 model.py view.py controller.py 是我认为遵循更标准化约定的选项。您是否同意这种针对 MVC 约定的模块化在这种情况下是合理的方式,您是否需要更多信息什么是我的应用程序:我有很多对用户有用的代码,我觉得这些代码是以遵循普遍接受的设计模式(例如 MVC、发布者-订阅者、工厂等)的方式进行重构的权利。在这种情况下,我认为 MVC 设计模式是合适的。您是否同意或建议其他代码和数据处理方式?感谢您的任何评论和讨论。

0 投票
3 回答
1106 浏览

java - 一个 OSGi 用例——我对不对?

我只是熟悉 OSGi 技术 - 从未使用过但听说过很多次。我已经阅读了几篇“傻瓜”文章,但我认为我仍然无法完全理解它的用例。也许你们中的一些人可以确认我是否理解正确。

这是我可能想做的一个例子。让我们假设我想构建一个 Java Web 应用程序。简单的战争。但是,以包含不同模块的方式组织。每个模块将包含不同的功能。也许每个模块都会被打包成一个单独的罐子,我不确定。

现在,我想要的是应用程序的 UI 部分,它能够检查哪些模块也已部署,以便显示(或不显示)相关的菜单、项目、页面部分等......

那么,OSGi 技术到底能不能解决这类问题呢?这是它的用途还是我偏离了轨道?

预先感谢您的回答。

0 投票
5 回答
1369 浏览

ruby-on-rails - 如何在 Rails 应用程序中实现模块化?

将大型 Rails 应用程序拆分为较小的应用程序?

模块化 Rails 应用程序

构建“大型”Rails 应用程序的最佳实践

我有一个关于大型 Rub​​y on Rails 应用程序中的模块化的快速问题。

设置:

我正在构建一个存储有关人员信息的核心应用程序。我还有几个“模块”以非常不同的方式使用这些信息。(例如,一个可以显示有关人员的信息,另一个可以找出他们之间的联系和共同点,等等)。

问题:

如何有效地模块化这个应用程序?

可能的答案:

由于模块与核心应用程序(以及彼此)共享模型和视图,因此将它们组合成一个应用程序对我来说是有意义的。但是,随着应用程序的增长,这显然会导致问题。这对我来说建议对控制器和模型进行命名空间“如何在中等大小的 Rails 应用程序中组织控制器? ”或使用引擎“模块化 Rails 应用程序”。

由于模块正在积极开发中,因此在它们上使用 rails 生成器非常有帮助,这似乎使使用引擎变得很痛苦。从 Rails 的角度来看,虽然引擎得到了完全的支持,但在缺乏生成器支持和数据库迁移方面,它们似乎仍然相当老套。有人有成功开发引擎的经验吗?如果您有一个工作应用程序并希望将其移植到插件中(即复制粘贴代码),那么引擎似乎是一个很好的解决方案,但如果您正在积极开发它(更改模型等),这将很困难。

我看到的最后一件事是使用多个应用程序和一个数据库。这种方式似乎是迁移和保持模型笔直等的皇家痛苦。但我想我也会对此有所思考。

0 投票
2 回答
2596 浏览

delphi - Delphi中模块化编程的最佳方法

这是我从这里开始的讨论的延续。我想找到模块化 Delphi 源代码的最佳方法,因为我在这个领域没有经验。我将不胜感激您的所有建议。

让我把我已经写在那里的东西贴出来。

我工作的公司开发的软件由 100 多个模块组成(其中大部分是不同设备的驱动程序)。它们中的大多数共享相同的代码 - 在大多数情况下是类。问题是这些类并不总是放在单独的、独立的 PAS 单元中。我的意思是共享代码通常被放入包含特定于模块的代码的单元中。这意味着当您修复共享类中的错误时,仅将其定义的 PAS 单元复制到所有软件模块中并重新编译它们是不够的。不幸的是,您必须将固定的代码片段一个接一个地复制并粘贴到适当的单元和类中。这需要很多时间,这就是我想在不久的将来通过选择正确的方法来消除的问题 - 请帮助我。

我认为使用与 EXE 一起分发的 BPL 将是一个很好的解决方案,但它有一些缺点,正如前面讨论中提到的那样。最糟糕的问题是,如果每个 EXE 需要多个 BPL,我们的技术支持人员必须知道哪个 EXE 需要哪些 BPL,然后为最终用户提供适当的文件。只要我们没有软件更新程序,这对我们的技术人员和最终用户来说都是一笔大买卖。他们肯定会迷路和生气:-/。

还可能出现兼容性问题 - 如果一个 BPL 由多个 EXE 共享,则对该 BPL 的修改可能对一个 EXE 有利而对其他一些 EXE 不利。

那么我应该怎么做才能在这么多项目中更快地修复错误?我想到了以下方法之一。如果您有更好的想法,请告诉我。

  • 将共享代码放入单独和独立的 PAS 单元中,因此当其中一个有错误修复时,将其复制到所有项目(覆盖旧文件)并重新编译所有项目就足够了。这意味着每个单元的复制次数与使用它的项目数量一样多。

就很少修改的代码而言,此解决方案似乎没问题。但我们也有具有通用功能和程序的 PA 单元,这些单元经常进行修改。每次有人向此文件添加新功能时,都无法执行相同的过程(复制和重新编译这么多项目)。

  • 为所有共享代码创建 BPL,但将它们链接到 EXE,以便 EXE 是独立的。

对我来说,这似乎是现在最好的解决方案,但也有一些缺点。如果我在 BPL 中修复错误,每个程序员都必须在他们的计算机上更新 BPL。如果他们忘记这样做怎么办?但是,我认为这是一个小问题。如果我们注意互相通知变化,一切都应该没问题。你怎么看?

  • 最后一个想法,由 CodeInChaos 提出(我不知道我是否理解正确)。在项目之间共享 PAS 文件。这可能意味着我们必须将共享代码存储在一个单独的文件夹中,并让所有项目都在那里搜索该代码,对吧?我猜,每当需要修改项目时,都必须从 SVN 连同共享文件夹一起下载。共享代码中的每次更改都必须导致重新编译使用该代码的每个项目。

请帮我选择一个好的解决方案。我只是不希望公司因为一种愚蠢的软件开发方法而在错误修复上浪费更多的时间和金钱。到目前为止,没有人关心它,您可以想象它会导致多少问题。

非常感谢你。

0 投票
2 回答
526 浏览

javascript - 使用 Ext JS 编写的代码的模块化和重用

我需要清楚地了解能够模块化我利用 Ext JS 的 JavaScript 代码。我的目标是创建扩展 Ext JS 小部件的自定义类,在多个 JavaScript 文件(.js 文件)之间分发代码。

我已经查看了文档,Ext.Loader但我并没有完全遵循确保类依赖解析的方法。鉴于代码顺序化是根据依赖关系,我在单个 JavaScript 文件中的代码可以正常工作。但是,一旦我在几个 JavaScript 文件中破坏代码并想在多个页面中使用,我的依赖关系就会变得混乱,因为我的所有页面都需要具有不同依赖关系的不同类。

考虑到我在常规后端编码中很容易实现代码分离和重用,这让我感到困惑。请帮忙输入。我正在使用 Ext JS 4.1.1