首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

微服务演化史(2)

第二个阶段是组件化阶段。

第二个阶段是组件化阶段。在第一阶段主要处理的比较简单的单体应用,数据结构清晰,模块简单,主要以处理CRUD为主。但是随着系统业务不断丰富和完善,糟糕的业务耦合和混乱的功能调用,重复的软件开发和大量的低层次应用,让巨大臃肿系统变得越来越难以管理并且更加难以进行高质量的交付。高内聚、低耦合、易拓展从代码级别升级到系统架构级别。这时候提出了软件复用等理念,集成化和组件化就粉墨登场并逐步开始流行。面向对象设计和基于构件开发是这个阶段的典型特征。设计和开发重心从数据库层操作转移到业务逻辑层,同时引入了一个新的概念——应用服务器。业务也都进行了分层管理,即把业务逻辑都放置在这个应用服务器的容器中,业务客户端只负责输入输出的UI界面。在传统Web应用开发中采用常用的MVC(Model-View-Controller)模式将应用程序划分为负责界面渲染和展示模型中数据的视图层、负责封装应用数据和业务逻辑的模型层、处理视图和模型之间转换关系的控制层。

集成化构件化模式下,架构已经是分层并且每层可以按照构件来进行组合,采用面向对象设计和基于构件开发,但对基础框架还是有一定的依赖性,分布式技术也开始逐步成熟起来。当时流行的就有三大技术平台——EJB、COM和CORBA。还有一个奇怪的名称——中间件。其中Java和COM/DCOM/COM+都锁定了开发语言,而CORBA是多种开发语言兼容。但这三大平台中,最成功的是EJB,这催生出一些伟大的公司,如WebLogic公司等。EJB的开发语言是Java,所以这个时代也是Java的时代。而其中开源的Java独领风骚。具有分布式整体解决方案的EJB基本上一统江湖。EJB就是把原来放到客户端实现的业务逻辑统一汇总到服务器端,并依靠RMI进行通信,通过Java对象可序列化机制实现分布计算。服务器端连接不同功能模块的服务器,以实现一个完整的功能。这是一个非常复杂的技术,让资深的架构师也谈虎色变。这种重量级EJB框架引来的更多是批评和诟病,如庞大、繁重,巨大而复杂的规范规格说明,EJB的设计、编程、调试、部署、运维都非常复杂,一点不灵活。一个新星出现了,所谓轻量级框架的Spring框架。Spring的致命工具是IOC和面向切面。口号是不重复发明轮子,一下子颠覆了EJB的应用。但是是Java对于这个世界的诠释,通过各种规范彪现出来,如JDBC、JNDI等。消息机制的分布式技术,一般也叫异步分布式技术,实现有比如MQ Series、MSMQ、JMS、TIBCO、IMS等等。

在思想层面上,这是一个IT领域建模思想的大爆炸,很多模型和手段都出来了。Martin Fowler的《应用架构模式》堪称经典,是这个时期架构师必读宝典。同时还有《UML Distilled》和《Refactoring》Robert C.Martin《敏捷软件开发-原则、模式与实践》、Craig Larman《UML与模式应用》、Martin Fowler的《UML Distilled》和《Refactoring》比如快速原型法等。一个接着一个登场表演,把这场大戏推向高潮。

在IT开发过程中,这个时期出现了极限,敏捷等开发方式。极限ExtremeProgramming(XP)编程是一种灵巧的轻量级软件开发方法。敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。敏捷开发模式有Scrum,Crystal,Extreme Programming(XP)和Feature-Driven Development(FDD))等多种形式。这些方式都在摒弃传统的开发模式。

未完待续

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180802G0916T00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券