我喜欢按功能打包的想法,它极大地减少了在编码时跨包移动的时间,并且所有相关的东西都放在一个地方(包)。但是,不同包中的服务之间的交互又如何呢?
假设我们正在构建一个博客应用程序,并且将所有与用户相关的操作(控制器/服务/存储库)放入com.mycompany.myblog.users程序包中。以及所有与博客帖子相关的操作(控制器/服务/存储库)com.mycompany.myblog.posts。
现在,我想显示用户个人资料以及他发布的所有帖子。我应该打电话myblog.posts.PostsService.getPostsByUser(userId)
给myblog.users.UserController.showUserProfile()
吗?
封装之间的耦合又如何呢?
同样,无论我在何处阅读按功能打包,每个人都说这是一个好习惯。那么,为什么许多书作家甚至框架鼓励按层次分组?只是想知道:
应该将一起重用的类打包在一起,以便可以将打包程序视为可供你使用的完整产品。一起重用的那些应该与那些不重用的那些分开。例如,你的Logging实用程序类不必与文件io类一起使用。因此,将所有日志记录分别打包。但是日志记录类可能彼此相关。因此,请创建一种用于日志记录的完整产品,例如,想要一个更好的名称commons-logging,将其包装在一个(可重用的)jar中,并创建另一个单独的完整产品用于io实用程序,再一次是为了获得更好的名称,例如commons- io.jar。如果将“ commons-io”库更新为“支持java nio”,则你不一定要对日志记录库进行任何更改。因此将它们分开会更好。
现在,假设你希望你的日志记录实用程序类支持结构化日志记录,以便通过诸如splunk之类的工具进行某种日志分析。你的日志记录实用程序的某些客户端可能想要更新到较新的版本;其他一些可能不会。因此,当你发布新版本时,请将所有需要的类打包并一起重新使用以进行迁移。因此,实用程序类的某些客户端可以安全地删除旧的commons-logging jar并转移到commons-logging-new jar。其他一些客户仍然可以使用较旧的jar。但是,不需要客户同时拥有这两个jar(新的和旧的),这仅仅是因为你强迫他们为旧的打包jar使用某些类。
避免循环依赖。a依赖b; b对c 条件; 但是d取决于a。该场景显然令人望而却步,因为很难定义层或模块等,并且你不能相对于彼此独立地进行更改。
同样,你可以打包你的类,以使如果某个层或模块发生更改,则不必一定更改其他一个或多个模块。因此,例如,如果你决定从旧的MVC框架升级到其余的API,则仅视图和控制器可能需要更改。你的模型没有。
问题内容: 最近,我遇到了有关javajava的博客文章http://java.dzone.com/articles/how-changing-java- package,其中 介绍了按功能打包Java代码。 我喜欢这个主意,但是对于这种方法我没什么疑问。我问了我一个问题,但没有得到满意的答复。我希望StackOverflow上的人可以澄清我的问题。 我喜欢按功能打包的想法,它极大地减少了在编码时
问题内容: 我正处于Web应用程序的设计阶段,该应用程序允许用户创建工作请求,而工作人员则花时间应对这些请求。该应用程序还将具有报告功能,供主管使用以获取每日总计,报告,并说明所花费的时间“成本分配”。 我过去处理过的应用程序是使用逐层方法设计的。我认为按功能设计使用软件包会更有效,我对此设计有疑问。 我目前对功能包的想法: 请求-对请求进行CRUD,然后分配,添加发票编号等。 工作时间-针对用户
我有一个完整的vue2项目,里面包含了路由和vuex怎么打包成lib包供其他vue项目npm install或者html页面通过script引入umd.js的方式,让引入的项目或者html拥有lib项目的完整功能,比如我写了一个vue商城项目,其他项目只需引入我的入口组件就可以实现一个商城的功能 或者说有没有可能实现,想像java那样,来自一个java后端开发的疑问 build -target l
Verity Sense 配有一个按钮,根据使用情况和按下时长具有不同功能。参见下文,了解按钮在不同模式下的功能以及不同颜色 LED 的含义。 按钮功能 打开/关闭传感器 短按按钮可打开传感器。 按住按钮可关闭传感器。 选择训练模式 要选择训练模式,请短按按钮进行切换,直至所需模式旁的 LED 灯亮起。 您可通过短按按钮来查看已锁定的训练模式。侧边的状态 LED 灯在心率模式下亮蓝色,在记录模式下
我使用lambda函数中的functional方法实现了函数接口。所有的工作都很好,只是我遇到了一个错误,即必须实现这个继承的抽象方法(在我的例子中是函数方法)。现在我很困惑。我使用lambda函数实现了这个函数方法,为什么我要再次实现这个方法。函数方法的实现是如何正确完成的?我的代码: 谢谢你的帮助。:)
本文向大家介绍Webpack按需加载打包chunk命名的方法,包括了Webpack按需加载打包chunk命名的方法的使用技巧和注意事项,需要的朋友参考一下 前言 最近,遇到复杂h5页面开发,为了优化H5首屏加载速度,想到使用按需加载的方式,减少首次加载的JavaScript文件体积,于是将处理过程在这里记录一下,涉及到的主要是以下三点: 使用Webpack如何做按需加载 filename和chun