架构技术

来源:互联网 发布:网络诈骗常见汇款方式 编辑:程序博客网 时间:2024/05/08 19:52

                                          架构的本质


-装逼开始-

        任何系统,自然情况下,都是从有序到无序,这是有科学依据的, 按照热力学第二定律,自然界的一切自发过程都有方向性,一个孤立系统会由有序变为无序,即它的熵会不断增加,最终寂灭。但生物可以通过和外界交互,主动进行新陈代谢,制造 “负熵” 来保证自身有序,继续生存。
   同样,一个软件系统随着功能越来越多,调用量急剧增长,整个系统逐渐碎片化,越来越无序,最终无法维护和扩展,所以系统在一段时间的野蛮生长后,也需要及时干预,避免越来越无序。
   架构的本质就是对系统进行有序化重构,不断减少系统的 “熵”,使系统不断进化。

-白话-

        举个栗子:java有很多技术解决方案,restfull,等等技术,这些就是散落在架构师脑海里的积木,而架构师要做的便是如何通过对这些积木的了解(大小、形状等属性功能)对这些积木进行有序的整合(从上到下,从左到右)形成最终形态(城堡,飞机,玩偶等)。而这个过程便是系统架构。

-架构需要掌握哪些知识-

        系统架构中有哪些架构(面向技术,面向服务等),你了解了多少java技术(解决方案),如何让这些解决方案更有效的组合搭配(这个需要对java技术解决方案的熟悉程度),兼具技术的广度(多领域知识)和深度(技术前瞻),兼具思维的高度(抽象思维)和深度(问题到本质),兼具感性(沟通)和理性(平衡)等知识(例如对于负责开发的人来说,怕的是业务太复杂,代码逻辑太乱,超出他能理解的范畴,系统无法维护。因此开发的需求是系统整体概念清晰,容易理解,方便扩展。对于负责运行的机器来说,怕的是业务并发量太大,系统核心资源不够用(如数据库连接)。它希望在业务量增加时,系统能够支持水平扩展,支持硬件容错(如避免单点故障)。)。

-例子-

        在 Web 1.0 时代,一个 ASP 或 JSP 页面里,HTML 和脚本代码混在一起,此时脚本代码越多,系统越混乱(即熵增加),最终连开发者自己都无法理解。此时就需要对系统重新架构,办法是引入 view helper 模式,分离 HTML 和脚本,HTML 成为 view,脚本成为帮助类。然后再简单整合在一起。通过重新分和合,整个系统层次清晰,职责明确,系统的无序度降低,容易扩展。同时不同技能的开发人员,如 UED 和程序员,可以负责不同部分,有效提高开发效率。

0 0
原创粉丝点击