问题标签 [modularity]

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 回答
921 浏览

java - Web 应用程序的通用模块化设计

对于每个设计了模块化企业应用程序的人来说,我很想知道您如何看待模块化以及您的参数到底是什么?

  1. 基于层的模块化(如控制器/Web 模块、服务模块、域模块)是更好的方法吗?
  2. 还是基于特征的模块化更好?为什么?
  3. 在基于特征的模块化的情况下,您如何防止/解决依赖于彼此服务的各种特征模块之间的循环依赖关系?

它更多的是基于经验的设计问题,因此涉及基于该经验的各种意见。

0 投票
4 回答
680 浏览

haskell - 我应该在 Haskell 中制作多小的 make 模块?

我正在用 Haskell 写一个蛇游戏。这些是我拥有的一些东西:

  • 一种Coord数据类型
  • 一种Line数据类型
  • 一种Rect数据类型
  • 一个Polygon类型类,它允许我将 aRect作为一系列行 ( [Line])。
  • 一个Impassable类型类,它允许我将 aLine作为一系列 Coords ( [Coord]),以便我可以检测其他Impassables 之间的冲突。
  • Draw我想在屏幕上绘制的任何东西的类型类(HSCurses)。
  • 最后我使用了 QuickCheck,所以我想Arbitrary为很多这些东西声明实例。

目前我在单独的模块中有很多这些,所以我有很多小模块。我注意到我必须为彼此导入很多,所以我有点想知道重点是什么。

我对Arbitrary实例特别困惑。使用-Wall时,当我将这些实例放在一个测试文件中时,我会收到有关孤立实例的警告,我的理解是,我可以通过将这些实例放在与定义数据类型的位置相同的模块中来避免该警告,但是我需要import Test.QuickCheck对于所有那些看起来很愚蠢的模块,因为只有在构建测试可执行文件时才需要 QuickCheck。

任何有关 QuickCheck 特定问题的建议以及有关如何/在何处将程序划分为模块的更一般问题的指导都将不胜感激。

0 投票
1 回答
825 浏览

c# - 调用 Web 服务时 Prism 可以模块化吗?

我正在玩创建演示棱镜应用程序。我拥有的应用程序有一个 shell 项目和另一个具有 prism 服务和视图(和视图模型)的模块。(主要基于 Mike Taulty 的视频,但使用 WPF 而不是 silverlight)。

我设置了 prism-service 来调用我的网络服务。似乎一切都正确,但是当我调用此代码时:

我收到了这个错误:

在 ServiceModel 客户端配置部分中找不到引用合同“MyServiceReference.IMyService”的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此协定匹配的端点元素。

我用谷歌搜索了这个错误,发现我需要将 app.config 的内容放入我的 shell 项目中才能正常工作。

我将该文件复制到我的 Shell 项目中,它工作得很好。

但我不喜欢这个。棱镜的想法是模块化。如果我必须引用模块中调用的所有 Web 服务,那么 shell 必须比它应该更了解每个模块的内部工作。

有没有办法在模块中调用 Web 服务,并且仍然具有模块(通过配置文件)的酷炫 Prism 优势,并且区域是 shell 唯一需要知道的事情?

0 投票
1 回答
331 浏览

terminology - 你如何理解模块化?

我想知道您如何理解软件中的模块化,尤其是在 Web 开发中?

0 投票
1 回答
53 浏览

actionscript-3 - 函数在 AS3 中不接受高于 4 的数字是否有原因?

你知道为什么函数不接受任何高于 4 的数字的任何原因吗?

这就是我正在做的。适用于 0-4,但一旦达到 5 或更高,我就会得到“一个术语未定义且没有属性”。但是如果我只是把数字 5 放在那里,一切都很好,所以这不是 xml 的问题。由于某种原因,该函数不会接受高于 4 的任何东西。让我感到奇怪.....我看不到对此的解释。

0 投票
4 回答
1545 浏览

asp.net - 使用模块化设计组织良好的 ASP.NET 应用程序的最佳方法

我正在尝试为我们的产品开发考虑一个 Web 应用程序开发框架。我想构建一个包含许多子模块的 ASP.NET 应用程序。我的要求是这样的:

  1. 该应用程序将是一套不同的模块,如 CRM、Bugtracker、库存管理、财务管理等。

  2. 每个模块都应该有自己的 DLL。

  3. 一个项目应该用于应用程序的外部容器(如框架),并且该项目应该将解决方案中的所有其他模块(Web 应用程序类型)带到外部容器。(比如我们在 HTML 中有框架)。因此,我们将仅在一天结束时发布外部容器 Web 应用程序,所有其他 Web 应用程序项目都将通过它访问。

我希望每个模块都有单独的 DLL,因此当我部署控制整个套件的单个 DLL 时,我不必担心应用程序会中断。

我不确定我的想法是否朝着正确的方向发展。我正在寻找的最终结果是一个维护良好、组织有序且模块化的 Web 应用程序套件。

它是 ASP.NET Web 表单,而不是 MVC。我将使用 VS2010 进行开发。

执行此操作的最佳方法是什么?

编辑:

术语外部容器意味着它就像一个母版页,具有指向各种模块的链接,并且各种模块并不总是在同一个项目中。它们可以是同一解决方案下的单独项目。而且我的印象是,到一天结束时,我将只发布该项目,它将为它带来各种模块。

0 投票
1 回答
495 浏览

msbuild - 使用 MSBuild Import 模块化项目

我开发了一个大型 MSBuild 项目来构建我们解决方案的一部分。有很多事情正在进行——XML 解析/替换、Windows 服务、远程复制等。因此,尽管我尽最大努力在注释中添加装饰,但文件变得非常难以管理。

作为一个傻瓜,我将主要功能块分解为单独的文件,如“XML.targets”、“Services.targets”等,并将它们导入主“Build.proj”。构建仍然有效,我立即发现它更易于管理。

但是,我读到的关于 MSBuild 导入功能的所有信息都是它应该用于导入可重用的目标,即那些可以被 -any- MSBuild 项目使用而无需任何修改的目标。我在这里创建的单独项目是相反的——特定于一个项目,如果与其他任何项目一起使用,除非经过修改,否则默认情况下会中断。

所以我想我要问的是,即使我可以......我应该吗?将 Import 严格用于组织大型项目是否存在内在危险?有一个更好的方法吗?

谢谢

0 投票
1 回答
442 浏览

apache-flex - 模块化和弹性视图状态

我见过一些类似的问题,但与我想要弄清楚的完全不同,所以就这样吧。我有一个具有许多视图状态的 flex 应用程序,其中一些经常使用,而另一些则不是。目前所有这些状态都保存在一个 mxml 文件中,因此在客户端浏览器中只生成和加载一个 swf 文件。我想模块化这些视图状态,方法是将它们分离到不同的源文件中,并将状态从一个文件加载到另一个文件中,但是,我仍然希望用户只需要加载一个 swf 文件。我这样做的主要原因是避免源文件超过 10,000 行。有解决这个问题的标准方法吗?

谢谢。

0 投票
2 回答
362 浏览

java - 在 C++ 中实现可扩展代码

我目前正忙于一个项目,其中应用程序的主要重点是可扩展的(允许第 3 方开发人员编写插件/他们自己的接口实现)。

到目前为止,我一直在使用 Java,并在 NetBeans 平台上构建了应用程序。这工作得很好,而且很容易实现。

但是,该程序的计算量很大,必须在计算机网格上运行。我认为 C++ 可能更适合我需要的大规模计算。

我想知道什么。有没有C++ 的 NetBeans 平台这样的库。还是我必须从头开始实现所有内容(我不介意,我只是想知道)?此外,用 C++ 编写可扩展代码并实现更新中心之类的东西有多容易?这是您通过 NetBeans 平台免费获得的东西。我使用该平台的经验是它允许您编写非常模块化的代码,这是我喜欢的。新模块可以独立安装,而平台提供服务发现以查找所有已安装的插件/实现。

这可以在 C++ 中类似地完成吗?

谢谢!

0 投票
4 回答
14802 浏览

c - 如何在 C 中创建模块

我有一个接口,我希望能够静态链接模块。例如,我希望能够调用称为 FOO 或匹配某个原型的所有函数(尽管在单独的文件中),最终在文件中调用一个函数,而在其他文件中没有标题。不要说这是不可能的,因为我找到了一个可以做到的黑客,但我想要一个非黑客的方法。(hack 是使用 nm 来获取函数及其原型,然后我可以动态调用该函数)。另外,我知道您可以通过动态链接来做到这一点,但是,我想静态链接文件。有任何想法吗?