问题标签 [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.
c# - 我应该为模块化创建 DLL 吗?
我正在创建一个应用程序,它将解析 MSDN 文章的元信息,例如文章标题和同一集合中的其他文章。这个应用程序还有一个 GUI 前端。
我有兴趣通过将前端与后端和后端分成两部分来使这个程序更加模块化——一个处理 HTML 文档的检索和一般解析,另一个处理更具体的与 MSDN 本身相关的解析。其想法是,这将允许自定义 UI 被添加到后端,并允许应用程序能够通过插入不同的 DLL 来解析其他站点(可能是 Google 搜索结果)。
我的理解是,您通常会创建 DLL 以在不同的应用程序之间共享代码。但是,在这种情况下,我只是在为这个特定的应用程序寻找模块化。在这种情况下创建 DLL 是否仍然合适?或者我应该考虑一个不同的选择,比如把所有的类一起放在一个程序集中?
我应该注意,我对编程比较陌生,所以即使答案是“否”,这仍然是我学习的一个很好的练习。如果是这样的话,我想知道是否应该修改这个练习以使其更合适。
r - 纽曼图的模块化聚类
我有兴趣在大图上运行 Newman 的模块化聚类算法。如果您可以将我指向实现它的库(或 R 包等),我将不胜感激。
最好的〜劳拉
jsf - 在 JAR 中打包 Facelets 文件(模板、包含、组合)
是否可以将具有公共内容的 JSF2 Facelets 文件放入 JAR 中,以便在其他 Web 应用程序中使用它,例如<ui:composition template>
、<ui:include src>
、<cc:implementation>
等?如果是,我怎样才能做到这一点?是否需要一些额外的配置?
c++ - c/c++如何进行模块化开发?
我只能处理最简单的情况,即只有 2 个模块A和B
A依赖于B,因此我将B构建为库并将B的头文件包含在A中,并且在构建A时也链接到B库。
当A和B相互依赖时,这将不起作用,当模块数量增加时更糟..
那么在中进行模块化开发的一般方式是c/c++
什么?
更新
对不起,似乎我的标题不准确,改写的版本是:我怎样才能将一个模块分成许多文件(.h
而.cpp
不是一个文件)?
silverlight - 减慢 Silverlight Prism 模块加载的最佳/标准方法(用于测试)
在基于 Prism 的模块化 Silverlight 应用程序的 localhost 测试期间,XAP 模块下载速度过快,无法感受最终结果。这使得很难看到需要在哪里显示进度、闪屏或其他视觉状态。
在本地开发设置中有意减慢 XAP 模块和其他内容的加载速度的最佳(或最标准)方法是什么?
我一直在添加偶尔的计时器延迟(通过基于代码的故事板),但我更喜欢我可以放置在引擎盖下的东西(比如 Unity 加载器?),以便为所有模块加载和调试构建添加大量延迟只有.
欢迎提出建议*
*注意:我已经调查了“大文件”选项,它对于大型项目是不可行的(并且无法使用非常大的文件创建 XAP 并出现内存不足错误)。该解决方案需要基于代码,并且最好在后台集成以减慢本地主机环境中的模块加载速度。
****注意:为了澄清,我们专门寻求与 Microsoft PRISM 模式和 PRISM/CAL 库兼容的答案。**
java - 在 Eclipse 上创建 Android 模块化应用程序
我目前正在将用于在 J2ME 上构建应用程序的框架移植到 Android。这个框架由几个编译成库(jar)的项目组成。每个单独的 JAR 都可以包含图形数据(资源、J4ME 屏幕等)。每个项目通常都有一个定义明确的入口点(模块)。当有人想使用框架构建应用程序时,他只需创建一个 Midlet 项目并添加库依赖项并使用导入的类。
我们一直在使用相同的方法来开发 Android 框架。在这种情况下,我们只在 Eclipse 中使用了编译为 jar 库的普通 Java 项目。这些项目依赖于 Android 框架 (android.jar)。在构建新应用程序时,我们在 Eclipse 中创建一个 Android 项目并添加依赖项。
我们的下一步是为 Android 构建更高级的模块,这些模块还可以包含图形信息(Activity、Dialogs、Literals、Drawables 等)。到目前为止,只需要一个 Android Eclipse 项目(最终应用程序),它包含所有与图形相关的类和资源。似乎在使用资源(文字、可绘制对象等)时,唯一的方法是创建一个 Android 应用程序,因为这些资源只能通过 ADT 插件 (R.XXX) 自动创建的整数处理程序来引用。因此构建图形模块可能无法通过普通的 Java jar 项目构建。
Android开发者资料说明模块化应用是可行的,但是我还没有找到一个简明的教程来解释这个过程,但是一些技巧,比如当一个应用调用一个由其他应用提供的意图时如何防止错误发生。这在构建使用来自其他应用程序的资源的应用程序时有效。我不需要在系统上安装几个应用程序,而是一个由多个组件构建的应用程序。
有没有人有类似需求的开发经验?有什么好的教程或技巧可以开始吗?
jakarta-ee - 传统 Java EE 服务器内的 OSGI 运行时
我知道它可能应该是另一种方式(OSGI 运行时托管 Java EE 服务器),因为它显然已经可以使用 glassfish。
然而,我们的客户在管理传统 Java EE 服务器和大量投资(许可证、培训等)方面拥有丰富的经验。我们的架构将受益于 OSGI 模块化架构,但我不能要求我们的客户从 Java EE 服务器切换到 OSGI 运行时。
有没有办法在传统的 Java EE 服务器中将 OSGI 运行时安装为 war 或 ear,即使它们不使用容器管理的资源(例如线程或连接池)也不使用 JNDI、EJB 等其他 Java EE 功能?
我们的应用程序使用 Hibernate、Spring 等技术。
javascript - 处理标准的面向用户的场景
*我想知道我是否可以在 javascript 中完成所有这些操作,而不是使用 rails 助手
在我的应用程序中,有几种类型的“if-else”UI 案例。这是一个相当普遍的情况,我想知道是否有人有一个整洁的方法来做这些?
EG 1)可能有几种类型的链接具有相同的行为:“upvote”等。
如果是用户自己的文章,我不希望传给服务器,而是弹出一个对话框
EG 2) 可能有几个链接称为“关注”、“成为粉丝”等
如果用户之前已经完成了给定的操作,则它应该是“已关注”的文本而不是链接。
frameworks - 主要的行业标准自动化测试框架是什么?
我正在致力于在组织中建立自动化测试实践和测试套件。一位同行告诉我,我们“应该使用框架”。对我来说,框架是任何一组代码和/或其他工具,可以帮助你创建一些东西。
我的同行似乎在暗示存在行业标准的自动化测试框架。
我以前在设计测试系统时看到过以下模式:
- 数据驱动
- 关键字驱动
- 模型驱动
- 查询驱动
我的对手包括“模块化”作为其中之一。由于我在软件工程方面的背景,我听到“模块化”这个词并想到模块化编程(与面向对象、面向方面或过程编程相反)......一种组织代码的方式,而不是一种方法或框架类型在其本身。
我已经看过“模块化自动化”的维基百科定义,它看起来与编程范式相同。
我错过了什么?我可以阅读什么来与我的对手在同一页面上?是我还是他什么都不懂?我有十多年的软件工程经验,而我的同行从事 QA 的时间也差不多。他无法站点参考。我已经在谷歌上搜索了 6 个小时,试图了解这个“模块化框架”,但找不到技术示例,仅是标准编程范式(例如将代码组织成模块)。
c++ - 保持模块独立,同时仍然相互使用
我的 C++ 应用程序的很大一部分使用类来描述数据模型,例如 ClassType(它实际上模拟普通 C++ 中的反射)。
我想在我的应用程序中添加一个新模块,它需要使用这些 ClassType,但我不想在 ClassType 上引入新模块的依赖关系。
到目前为止,我有以下选择:
- 不使其独立并引入对 ClassType 的依赖,有在我的应用程序中创建更多“意大利面条”依赖的风险(这是我最不喜欢的解决方案)
- 引入一个新类,例如 IType,并让我的模块只依赖于 IType。然后 ClassType 应该从 IType 继承。
- 使用字符串作为识别方法,并在需要时强制新模块的用户将 ClassType 转换为字符串,反之亦然。
- 使用 GUID(甚至简单的整数)作为标识,还需要 GUID 和 ClassType 之间的转换
在应用程序中解耦模块时,您应该尝试多远?
- 只是引入一个接口,让所有其他模块依赖该接口?(就像上面描述的 IType 一样)
- 甚至通过使用其他标识(如字符串或 GUID)进一步解耦?
恐怕解耦得太远,代码会变得更不稳定,更难调试。我在 Qt 中看到过一个这样的例子:信号和槽是使用字符串链接的,如果你输入错误,该功能将不起作用,但它仍然可以编译。
你应该让你的模块解耦到什么程度?