问题标签 [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.
javascript - 如何将此匿名函数转换为命名函数,以便可以将其移动到外部 JS 文件以便可能重用
如果我重复发布这个问题,我很抱歉。我没有看到它出现在我在个人资料中提出的问题下,所以我认为它实际上并没有发布。反正。我在堆栈溢出的某处找到了此代码的主要逻辑,并对其进行了修改以供我自己使用(不记得在哪里找到它)。虽然此代码按预期工作,但由于可扩展性问题,我想将其转换为格式的标准函数
function serializeObject(form_name){...}
没有 jQuery 并且没有封装在括号中,所以我可以将此函数移动到另一个 javascript 文件中,然后我的网站上多个页面上的多个表单可以使用该文件。有没有办法做到这一点?基本上,它需要能够将表单名称作为参数并在该表单上进行操作。由于它现在被封装,当且仅当它与调用它的函数在同一个文件中时它才有效。这是一种糟糕的做法,因为这段代码重复了多次,但据我所知,打破 JS 的唯一方法是在每个文件中重写这个函数。
它被称为
但是这种情况发生了很多次,我希望能够只编写一次这个函数,然后在必要时从多个单独的文件中调用它,这可能是朝着创建类似反应的模块迈出的一步。有任何想法吗?
java - Java 9 如何避免拆分包
我是 Java 9 的新手,正在观看 YouTube 上 Java 的模块化视频讲座。他们提到了模块化的 3 个好处 - 1. 没有丢失的依赖项 2. 没有循环依赖项 3. 没有拆分包。
据我了解拆分包是假设一个应用程序依赖于多个依赖项,假设包 abc.pqr.xyz 存在于 1 个以上的 jar 中。然后有可能该包中的某些类将从 jar1 中使用,而其他类则从 jar2 中使用。这可能会在运行时导致一些难以调试的问题。
视频说模块化解决了这个问题。但这就是我想要理解的?
假设有 test.module1 具有以下模块信息 -
另一个具有以下模块信息的模块2-
现在假设在我的应用程序中我添加了这两个模块的依赖项-
现在我再次有 2 个模块化依赖项,其中一些类可能会出现在这两个模块中。那么在运行时它将如何从哪个模块中获取类定义呢?Java 9 如何避免拆分包问题?
sapui5 - 具有重用库的 MTA 应用程序
我们在 SAP CP 中部署了 SAP UI5 MTA 应用程序,由 3 个应用程序(HTML5 模块)组成。所有这些应用程序现在独立站立,无需相互交流。在这两个应用程序中,控制器代码具有相似的功能,因此我们存在代码重复。我们需要将这段代码模块化。所以我们计划使用 Fiori 库。在 WebIDE MTA 项目中创建新的 HTML5 模块时,SAP Fiori 库不能作为项目类型使用。
参考以下网站 https://github.wdf.sap.corp/fiori-cf/support/issues/377
有人做过,这很复杂,仍在讨论中。
这里的任何人都可以帮我解决如何为我的问题实现更好的解决方案吗?
有人从事过 MTA 项目吗?我们如何模块化代码并在 MTA 下的不同应用程序中重用它?
java - 使用DriverManager模块化后如何在jar(只读)中打开HSQLDB资源?
内部只读数据库存储在其自己的 resource-only-jar 文件中。模块化后,DriverManager 找不到数据库文件,导致以下错误消息。
我正在使用模块化和 Maven 将我们公司的应用程序从使用 ANT 的 JDK8 转换为 JDK11。它是用 Eclipse 开发的。许多问题已经得到解决,但对于这个问题,我自己无法找到解决方案。
我已经尝试将数据库文件从它自己的项目移动到使用它的项目内核的 maven 资源文件夹中。我也尝试打开数据库;(资源文件夹)在内核项目的 module-info.java 中。
数据库文件prodsoft.properties和prodsoft.script现在位于
运行 DriverManager 的类是
已成功找到hsqldb-2.4.1.jar -driver 并由 DriverManager 使用。
sass - 在不同的视图中在引导程序中获取不同的主题
我想用引导程序为页面设置主题,但在某些页面中,我只想为按钮设置主题并保持输入字段不变,而在其他页面中,我想以相反的方式进行,只为输入字段设置主题而不是按钮。
我希望能够写出类似的东西
在第 1 页中:
@import input-theming.css ... 使用按钮的默认样式
在第 2 页:
@import button-theming.css ... 对输入使用默认样式
我已经考虑过在组件中模块化我的custom.scss以便我在每个组件中为不同的部分设置主题,例如输入、按钮、表格等。但是我必须为每个组件创建一个 custom.scss 文件那些看起来很复杂的模块的组合。
我想要的是一种恢复引导程序某些部分的默认行为的方法,尽管我在 custom.scss 中对它们进行了不同的主题化。如果不生成仅以引导程序的不同部分为主题的不同 custom.scss 文件,这是否可能?
python - 我应该将所有自定义异常包含在一个文件中吗?
我有一个包含多个文件的模块,其中一些文件声明了一些自定义异常。这些异常主要在声明它们的文件中引发,但有时它们也会在模块中的其他文件中引发。最好的做法是创建一个新文件(即errors.py
)并将所有异常放在那里,还是继续将它们保留在相应的文件中?
java - 私有方法的更改重建 Gradle 依赖模块
所以我有一个 Android 项目,其模块 App 依赖于模块 A,该模块 A 依赖于模块 B(App -> A -> B),模块 A 的 gradle 文件如下所示:
然后在 B 模块中,我有以下类:
所以问题是每当我改变doSomething()
方法时,例如通过设置value
6 而不是 5,然后我重建项目,我得到这个日志:
根据这个 Google IO '17 谈话(https://www.youtube.com/watch?v=7ll-rkLCtyk&t=1566s),模块 A 根本不应该重建,因为 B 中唯一改变的是私有方法的实现......因此,A 的所有任务都应该是“最新的”......
我的模块 A gradle 文件上是否缺少某些内容?谷歌的那个人编造的吗?
非常感谢!
android - 多模块项目:如何设置 Dagger 以提供接口但隐藏特定于实现的依赖项?
在我的应用程序中,我有两个模块:app
和repository
.
repository
依赖于 Room,并且有一个GoalRepository
接口:
和一个GoalRepositoryImpl
内部的类,因为我不想将它或 Room 依赖暴露给其他模块:
app
取决于repository
获取GoalRepository
实例。
目前,我有一个GoalRepositoryModule
是:
问题是这不会编译(显然),因为公共provideRepository
函数正在公开GoalRepositoryImpl
,即一个internal
类。
如何构建我的 Dagger 设置以实现我想要的?
编辑:
我尝试provideRepository
按照@David Medenjak 评论进行内部设置,现在 Kotlin 编译器抱怨它无法解决 RoomDatabase 依赖项:
为了完整起见,我的组件在app
模块内的代码:
flutter - 如何在 Flutter 中进行模块化以分离每个应用程序功能
在 Android 原生上,为了分离每个应用程序功能、构建项目、实现架构组件并让团队更容易工作,您可以使用模块化,这样每个人都可以通过只关注模块来专注于各自的工作。如果我想用 3 个应用程序功能(登录、注册、配置文件)的示例制作一个颤振应用程序,并希望为每个功能实现模块化,以便更轻松地作为团队工作。你如何实现模块化?是否有参考其模块化 Flutter 的最佳实践?因为如果在 Android Native 上已经有很多相关的文章,而我检查 Flutter 时它还没有找到它。
javascript - 在 React Router Routes 中动态注入数据
我一直在尝试模块化我的 React.js 应用程序(将作为桌面应用程序与 Electron 一起交付),如果我将来制作一个新模块,我可以添加一个新文件夹并修改一个几个文件,它应该可以很好地集成。我最初受到这篇文章的启发:https ://www.nylas.com/blog/react-plugins/
在那之后,我开始尽可能多地进行研究,并最终创建了一个 JSON 文件,该文件将存在于服务器中,其中包含为该特定客户端注册的插件清单。像这样的东西:
之后,我创建了几个与path
值匹配的文件夹,其中包含与清单中的名称匹配的组件(例如testplugin/test.jsx
,将组件导出TestPlugin
为默认值)。我还制作了一个pluginStore
文件来读取清单并将插件安装在this.state
.
然后,在谷歌和这里做了大量的研究并找到了这个答案:React - Dynamically Import Components
使用该函数,我能够遍历清单,在目录中找到文件夹,并this.state
通过运行我在主页中的方法中mountPlugins()
创建的函数将插件安装在 中。pluginStore
componentDidMount()
到现在为止还挺好。我正在使用 React-Router,我能够在 State 中动态安装插件,并能够通过像这样调用它们来将它们加载到我的 Home Route 中<TestPlugin />
:
component
我现在遇到的问题是,我想通过使用或方法动态地创建将从状态加载这些组件的路由render
,但我没有运气。我总是会得到相同的结果......显然我传递的是一个对象而不是一个字符串。
这是我这次尝试的最后一次迭代:
之后,我创建了一个调用PluginShell
组件的路由,该组件由Navlink
发送插件名称的组件调用以动态注入和加载它。
但我最终遇到了同样的问题。我正在传递一个object
并且createElement
函数需要一个string
.
我搜索了整个 StackOverflow,发现了许多类似的问题和答案。我尝试应用所有可能的解决方案,但没有成功。
编辑:我整理了一个 GitHub 存储库,其中包含最少的文件集来重现该问题。