• 我们如何将大型系统分解为更小,更易于管理的模块化组件?在领域驱动设计中,大型系统被分解为有界上下文,这些上下文在代码中成为微服务和组织中的团队的自然边界。识别良好边界没有捷径可走。对业务和领域的广泛而深入的了解至关重要。本文介绍的方法围绕这些需求而设计,并使用两个工具来找到最有效的系
  • 模块模式用于实现由模块化编程定义的软件模块的概念。 icon
  • 在我看来,软件架构与建筑物的架构非常相似。你可以建造一个没有精心建筑设计的房子,但它永远不会是完美的。如果没有好的计划,你就无法建造一座大楼。在规划阶段,您需要注意几个想法:选择正确的墙壁,规划电力,水系统,所有房间,照明系统,空调和暖气等等。所以这是一项复杂,困难但必要的工作。在软 icon
  • 从Java 8迁移到Java 11比大多数升级更棘手。以下是这个过程的一些注意事项。 模块在Java 9中Java引入了历史上最大的变化之一 是模块,但: 不必将你自己的 icon
  • Jenkins的核心问题是它的单体巨石。一切都耦合在一起,插件,配置,web ui,Jenkins核心,一切都在一个大型Web应用程序中。是时候我们开始将我们在自己的生产系统上学到的经验应用到Jenkins本身,Jenkins需要是一个云原生模块化系统。Jenkins于2005年开始 icon
  • 该文认为单体巨石架构如果经过良好设计也是很好的,但是什么是良好设计呢?原文: DevOps Days London今年很棒!会谈很有意思,文化包容性和友好性。 我一直认为我们应该建立'正确的服务',而不是为了用' icon
  • Shopify是现存最大的Ruby on Rails代码库之一。它已被超过一千名开发人员使用了十多年。它封装了来自计费商家,管理第三方开发者应用程序,更新产品,处理运输等许多不同功能。它最初是作为整体构建的,这意味着所有这些不同的功能都构建在相同的代码库中,它们之间没有边界。多年来,这种架构 icon
  • 模块化编程使人们能够将代码组织成独立的,有凝聚力的模块,这些模块可以组合在一起以实现所需的功能。本文摘自Nick Samoylov和Mohamed Sanaulla撰写的一本名为 icon
  • 使用由多个子视图组成的复合视图。整个模板的每个子视图可以整体动态地包括在内,并且可以独立于内容来管理页面的布局。 Apache Tiles和SiteMesh  框架使用Composite View Design Pattern。 为简单起见,这种模式分为若干部分,如问题,动因 icon
  • 让DDD为你的JavaScript混乱带来秩序。我不会把自己当作JavaScript开发人员,我总是开玩笑说这是一种我从未打算学习的语言。它现在如此普遍,它刚刚发生。我经历了享受它和鄙视它的阶段。但是通过爱的高峰和低谷并不是很讨厌。一个问题仍然存在:如果我要成为一名优秀的JS开发人员 icon
  • 几十年来,对软件重用的讨论远比实际的软件重用更常见。今天,情况正好相反:开发人员每天都以软件依赖的形式重复使用其他人编写的软件,而且情况大多未经审查。我自己的背景包括使用Google的内部源代码系统十年,该系统将软件依赖关系视为一流的概念, icon
  • Java 9引入了一个主要的新功能:JPMS,即Java平台模块系统,但是对于专门提供库包开发的程序员却有负面效果。 Java 8可能是有史以来最成功的Java版本,它被广泛使用,因此,几乎所有开源库都在Java 8上运行。 icon
  • 如果您是库包或框架的作者,你可能希望看到你的库包在大量应用程序中使用。提升库包使用量的一种方法是使其与旧版Java兼容。同时,你可以考虑对库进行模块化,以使其对充分利用Java平台模块系统(JPMS)的应用程序具有吸引力。但是,JPMS仅由Java 9和更新版本实现。那么,如何在9之 icon
  • 我听说你想成为一个更好的程序员。您希望使用可重用的部分,并希望更轻松地维护旧代码。您可能还希望在团队中更好地工作并确保减少错误。对更好代码的渴望通常会让人们发现“清洁代码”这个术语。这很可能是由 icon
  • 如果你转向微服务的动机是为了实现模块化,那么请三思而行。 模块化是JVM内部的解决方案,比如JPMS, OSGI和JBOSS模块。JPMS对于应用程序级别的模块化是没有用的,OSGI的复杂臃肿会掩盖程序本身。 在 icon
  • 最近,我浏览了公司的代码库,发现它有三个版本的仪表板,都是用于分析页面,我很确定客户不需要那样做。这引发了我幼稚脑中的一些事情,我开始在互联网上寻找相关的想法。就在那时,我发现了这篇古老的论文: icon
  • "Write shy code - modules that don't reveal anything unnecessary to other modules and that don't rely on other modules' implementations." - Dave Thoma icon