问题标签 [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.
angularjs - angular.js - 定义实用程序库的最佳实践
我正在使用 Angular 迈出第一步,我需要定义一个实用程序帮助库,其中包含几个函数方法,例如
dataHelper.parse
, dataHelper.sanitize
, 等
以角度组织它的推荐方法是什么?
c - C 多重定义/第一次在这里定义错误
我正在尝试编写一个书店程序,并且在我的函数实现中的源代码文件中出现“多重定义”的错误。
这是我的 Book.c 文件:
这是我的 Book.h 文件:
这是我的 main.c 文件:
错误发生在 Book.c 中的 scanBook 函数中,但我不知道为什么,因为我包含了头文件以及 #pragma 一次,并且在头文件中我声明了该函数。它说 'scanBook' 和 obj\Debug\Book.o .... 的多个定义首先在这里定义。
任何帮助或澄清将不胜感激!
javascript - 模块化 JavaScript - 除了 CommonJS 和 AMD 之外,还有什么方法可以考虑吗?
我目前正在为我的公司准备评估 JavaScript 模块化方法。我们正在为我们的项目定义“JavaScript 最佳实践”,模块化是核心问题之一。
到目前为止,我的研究揭示了两种主要方法:
周围有大量的加载器、插件、库等。
除此之外,还有goog.provide
/goog.require
来自Google Closure Library。
是否有进一步的方法需要考虑?我错过了任何重要/相关的规格吗?
我们的要求,简单地说:
- 在单独的文件中构造 JavaScript 代码。
- 在运行时加载相关模块。
- ...无需将每个文件都包含为脚本标签。
- 不必维护 JavaScript 文件的索引。
- 支持聚合和缩小 - 能够构建和使用单个缩小/优化的 JavaScript 文件。
- 能够以不同的组合使用模块——通常有不同的网页/客户端需要不同的模块子集。
- 支持文档(使用 JSDoc?)。
- 适合测试。
- 适用于网页,跨浏览器。
- 合理的IDE支持。
潜在地:
- 与 ES6 模块对齐。
- 适用于 Node.js 和移动平台(如 PhoneGap/Cordova)。
来自答案的新建议:
- ecmascript-harmony加上额外的编译器。
- angularjs(见下面的注释)。
- extjs(见下面的注释)。
旁注:
- 问题不在于哪种方法更好。
- 我不是要特定的库和工具,而是要方法和规范。
- 我并不是专门要求场外资源。(如果没有 SO 标签,我们可能不合理考虑它。)
- 关于angualjs或extjs等框架的注释。这在这个问题的框架中并不适合。如果项目需要一个框架(无论是 AngularJS 还是 ExtJS),那么几乎没有模块化问题,因为框架必须提供模块化 OOTB。如果项目不需要框架,由于模块化,带框架就大材小用了。这是我特别不询问库/工具的原因之一。
java - 从单独的类打印私有字段
我的任务是将两个类联系在一起。第一类是售票机,它允许人们购买一张票,然后将其打印出来(通过 System.out.println)。第二类是显示时间的时钟显示器。
我的任务是让票类打印时钟显示类中当前显示的时间。有人告诉我,我不需要编辑 NumberDisplay 类或 ClockDisplay 类。
我最初的想法是在我的 ticketmachine 类中创建一个新的 ClockDisplay 字段,然后使用
因为 displayString 是我用来在时钟显示类中查找值的。但是,由于该字段是私有的并且我不能编辑时钟显示类,所以我不能这样做。有什么想法吗?
谢谢你。到目前为止,这是我的代码,上面提到的 TicketMachine 类中的代码。
数字显示
时钟显示
}
售票机
}
python - 最喜欢的乐队 Python
您好,我遇到了一个问题,我必须列出一个列表并在这些列表中找到各个乐队,看看他们是否都有一个共同喜欢的乐队。如果是这样,我应该输出true。我需要遵循这种编程方法来模块化我的代码,但我似乎无法理解它。到目前为止,这是我的代码。感谢您提供的所有帮助。
php - How to structure/modularize an application with a cross-module search?
I'm developing a Zend Framework 2 application, that should provide:
- a search in projects with a result list of projects
- a single project view
- a search in images with a result list of images (every image belongs to a project)
Also there are two main entities: image
and project
andthe first idea was to create two modules (Image
and Project
) and to give to each of them a separate search fuctionaly. But it would mean much of duplicated code. OK, maybe a separate Search
module? But then this module would essentially depend on the other modules.
What would be a good approach for such case? Are there a best practice for this?
javascript - 将 Express 4 添加到模块化 Angular ui-router 应用程序
我现在必须将 Express 4 添加到我的模块化 AngularJS ui-router 应用程序中。以前我使用本教程来模块化我的 Angular 应用程序。我目前在src/app/
目录中拥有 AngularJS 应用程序的所有模块,如下所示:
现在我想知道我应该如何分解 Express 4 代码以适应我的 Angular 模块。我真的找不到任何专注于此的教程。有任何想法吗?
swift - 如何模块化和重用视图和控制器的部分?
例如,我有一个带有导航栏、按钮和与之关联的操作的视图。有没有办法打包视图和控制器的一部分,以便我可以将它连同它的代码一起拖放到其他视图中?当然,将代码维护在一个地方,更改会反映在所有使用它的页面中。
这是否可以通过创建框架和超类来实现,以便在项目甚至其他项目之间共享?不确定是否也打包 UI 视图组件本身。任何经验或方向将不胜感激!
c++ - C++ 分配有助于创建代码以实现可重用性?
我在做这个任务时遇到了麻烦。我只是很难理解,我不完全确定该怎么做。我研究并观看了视频,但无法找到正确的具体信息。这是一堆问题,所以我希望有人不仅可以给我答案,还可以向我解释,以便我有很强的理解:)。以下是问题:
1)在本练习中,我们得到了一些程序代码,它们将接受两个整数作为输入,并评估哪一个拥有更大的值。此评估发生在整个代码的多个位置。编写一个程序可以用来执行相同评估的函数,而不是一遍又一遍地复制代码。首先在代码文件的开头编写一个合适的函数声明。您必须决定您的函数是否会返回一些输出。
2) 编写声明后,继续定义函数,包括将评估两个整数中哪一个最大的适当代码段。如果您之前声明您的函数将返回一个值,请务必在此处定义它将返回的内容。
3) 使用第 (1) 和 (2) 部分的结果来减少主函数中重复代码的数量,方法是将整数比较的多个实例替换为调用您创建的函数的调用。请记住,该函数将需要两个整数作为参数传入,如果您从函数返回一些值,则应该使用它(存储在变量中,输出到屏幕等)。作为一个忠告,只替换一个评估后测试你的函数是否正常工作,不要一次全部替换它们(如果该函数在第一次替换时正常工作,那么它应该适用于其他人)。
4) 由于您创建的函数只比较其参数的值而不写入它们(即更改存储在其中的值),我们应该在函数声明和定义中指定这些参数应该被视为常量。对该功能进行必要的修改并再次测试以验证该功能是否仍然有效。通过尝试在函数中包含会更改变量之一的值的操作(例如 number2 += 10;),确认函数不会让您更改参数的数据
- 这是代码(我为冗长的文字道歉):
}
dependencies - 没有传递依赖的适配器和模块化
我曾多次遇到以下情况,但找不到完全令人满意的解决方案:
我正在使用 OSGi 开发 Java 应用程序,并且遵循 OSGi 的最佳实践,它是高度模块化的。这是我的一些插件和类的摘录:
在哪里
DatabaseManager
是直接与数据库交互的低级结构。BusinessObjectManager
是一个高级构造,它(除其他外)充当DatabaseManager
.SomeBusinessObjectManagerConsumer
消费BusinessObjectManager
并且不应该知道底层数据库,甚至不知道有数据库。它不应该知道DatabaseManager
; 相反,它应该只与BusinessObjectManager
.
到目前为止,一切都很好。但是现在SomeBusinessObjectManagerConsumer
需要更新数据库中实体之间的一些边(我使用图形数据库,这意味着我的实体(通常是表中的行)是节点,它们之间的关系是边)。如前所述SomeBusinessObjectManagerConsumer
,它对数据库一无所知,但它知道存在一些“业务对象”(节点)并且其中一些(边)之间存在链接。
在BusinessObjectManager
中,我创建了一个方法replaceLinks
如下...
...这应该确保在它返回时,from
业务对象只会链接到to
对象,可能会删除以前的链接并添加新的链接。我想知道这些删除和添加。我创建一个界面UpdatedLinks
我在插件中com.example.core.business.objectmanager
:
但BusinessObjectManager
实际上并不是要执行此链接替换并将UpdatedLinks
返回对象放在一起的人。相反,它将这个委托给DatabaseManager
. 因此,我在 中创建了一个等效方法DatabaseManager
,BusinessObjectManager
并将简单地调用此方法。
现在的问题是在哪里放置接口UpdatedLinks
:它是需要的DatabaseManager
,BusinessObjectManager
并且SomeBusinessObjectManagerConsumer
但是这些类(及其相应的插件)之间的依赖关系朝着这个方向发展:
所以:
- 我无法
UpdatedLinks
放入BusinessObjectManager
s 插件,因为它对于DatabaseManager
. - 我不能把它放在
DatabaseManager
's 的插件中,因为那样它对于SomeBusinessObjectManagerConsumer
(记住它SomeBusinessObjectManagerConsumer
不知道任何关于DatabaseManager
; 由于 OSGi 中的模块化,它只能访问DatabaseManager
关于不想做)。 - 把它放在某种“实用程序”插件中太具体了。
- 我目前没有任何插件可以放置此接口,这将使所有相关插件都可以使用它。
基本上,我必须为这个界面创建一个新插件,考虑到谁将依赖它,我什至找不到该插件的任何有意义的名称。(但主要是,我反对为这个接口创建一个插件的想法,它的存在只是作为传递方法结果的replaceLinks
一种手段)。
我已经多次遇到这种情况(尤其是最近使用 OSGi,因为模块化),我永远找不到完全令人满意的解决方案。在这种情况下你会/做什么?
“元”免责声明:
- 标题可能会更好;我只是想不出更好的。随意改变它。
- 我不确定 stackoverflow 是否适合这个问题的 StackExchange 社区,所以请随时推荐其他可能更合适的社区。我找不到更好的了。
- 我试图详细解释,以便您可以想象这种情况。我希望我没有做得过火;)