`

轻架构(一):缘起--架构的核心目标是什么

阅读更多
 

 

 在现在这个时代,架构变得异常复杂,也异常艰深。轻架构这个概念,也就是让架构正本清源,回归本来面目。那什么是架构的本来面目呢?

 

架构的英文是Architecture,本身是一个从建筑行业学习来的词语,用在软件设计和开发这个领域,主要是指“系统在其环境中的最高层概念”(IEEE98),架构的任务指:建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。这样的决定是有关系统设计成败的最重要决定,必须经过非常慎重的研究和考察。

 

         用一个人类社会的事情来比喻,当然,我们也常常说到,一个公司的“组织架构”,例如我们建立了一整套从总经理、副总到部门经理、助理和普通职员的组织关系,建立了这些关系之间工作指派、工作汇报和工作总结的机制;我们把公司划分为几个不同的部门 分工协作,各个部门完成自己的工作目标,从而完成正规公司的目标。

 

         上面这段话其实体现了架构的几个基本点,第一是分层以及层次之间的关系;第二是分模块以及模块之间的关系,第三个基本点是划分好各个层次、各个模块的职责。各个模块、层次各司其职,系统良好运转,架构的作用隐含于其中。人们看得见各个层次和模块,倒是忘记了这个架构本身

 

         在上面的类比中,我们可以看到。其实公司的目标,都是各个层次、各个部门来完成的,但是却没有任何实际问题是由架构本身来解决的,架构本身没有提供任何“真正”的价值,但是架构却又是最最关键的,一个不好的架构,使各个层次、各个部门之间相互掣肘,内耗严重,效率极差,解决什么问题也困难,达到总体目标就很难。

 

再来看软件架构,与上面的公司架构一致,它要完成一个系统的复杂度切分,架构本身不解决系统的任何问题,只是把系统的复杂度切分到不同的子系统或模块或层次中中。架构关心的是系统整体的耦合度。模块切分时的平衡、复杂度切分时是否合理。

 

之所以在这个时候提出这个概念,是因为架构这个词被用得太泛滥。架构这个概念包含了太多的内容,以至于架构师成为设计开发过程最累的角色,负担了太多太多的东西。而且,因为事情太多太杂,导致根本性的任务做的不好,今儿严重影响产品质量,产品常常变成大杂烩。所以,有必要正本清源,把纯粹架构的内容抽离出来说。

 

抽离出来之后,架构本身应该不解决任何问题域的问题,只是使问题域的每一个问题都更容易找到解决者。或者为每个问题,提供了一个寻找解决者的途径和方法,尽可能使问题都能更快速、更顺畅的找到解决者。架构为一个组织(一个软件)内部的控制传递、数据传递提供了好的通道和路线,但本身不发送任何控制和数据。

 

例如,设计房子画出了设计图,但是画图的设计师不卖建筑材料,不卖建筑工具。在一个公司内部,组织部门的人并不解决客户的问题。

 

轻架构的目标:

         (显式)

     系统层次和模块划分

         系统层次之间和模块之间的关系和通信

         维护概念完整性和一致性

         (隐式)

         架构复杂度的评估、模块复杂度的评估

         后续设计的规范

         技术选型、技术路线的选择

        

 

纯粹架构对系统后续的设计和开发的重要性是不言而喻的,这并不是说其它部分不重要。架构的重要,在于在切分系统时,维护概念完整性和概念一致性;大体上平衡的分配系统的复杂度和工作强度,使系统能够顺畅的进行设计和开发。

最最关键的是,把所谓模块的高内聚低耦合、最大限度设计和代码重用、用哪些设计模式、采用SSH还是SSI、Tomcat还是Jetty、设计共用(通用)组件内容从架构中剥离出去。不是说 不重要,而是这些与架构无关。

 

这样来做的话,架构似乎变得容易了,很多人都会这么看,其实不是这样的。这样来拆分,其实是希望架构师能够真正的处理好本职的工作。

 

架构师的本职工作是什么?有人说“设计高质量的产品”,这句话太通用,因为这是产品设计和开发的根本目标,也是团队的整体目标。而架构师在过程中所承担的最重要的任务,其一是维护产品的概念完整性和一致性。产品一个版本一个版本的前进,新特性不断加入,不断吸收新的需求,纳入新的概念,在这个过程中,保持产品始终围绕着一个或一组概念(否则产品会被演变成拼盘和大杂烩,变成一种技术元素的堆砌),实在不容易。因为这个是产品的长远利益,所以在以短平快为目标的团队中直接被无视,固然有一种无奈,但毕竟不是一种好的选择。

其二是分层和模块划分,这个会从根本上影响系统的可扩展性、可生长性,而之后的模块设计和代码,对可扩展性和可生长性的影响是很小的。当然,效率、安全性等非功能特性,都是应该在分层、分模块时要慎重和仔细考虑的。

 

这两个本职工作,其实也就是软件产品的设计开发过程中,最最核心价值的所在,最最本质的点,最最需要付出艰苦的脑力劳动的地方。是设计开发活动中最最需要花心思花时间和精力的关键点,关键中的关键。正是因为架构师很多都是百炼成钢,经验丰富,才会担当这样的重任。

 

         反过来想,为什么现代软件开发过程会被比喻成“焦油坑”?为什么设计行业内架构这个职位这么不好做?我觉得现在设计开发过程中,架构师的职位定义是含糊不清的。从人上,救火队员,项目经理、老兵等等;从事情上,开发底层接口、编写设计文档或伪码、到客户处沟通需求这些是架构师的工作职责。很少有人意识到上边提到的架构师的根本职责、本职工作。因为这个认识不到位,所以使架构师没有把“架构”这件事做好,带来的问题就是产品质量低下,可扩展、可延续、可生长特性非常差,人力资源浪费,高投入低回报。

 

        

分享到:
评论

相关推荐

    某啤酒销售公司组织优化项目规划书.ppt

    - 项目缘起:XX 啤酒东南事业部启动《系统规范和创新》项目,旨在为当前及未来业务运作制定标准和依据,覆盖所有部门和业务范围。 - 发展阶段:公司处于规范化阶段,需解决授权、控制和组织规模问题,以适应企业...

    一份不错的软件解决方案模板

    软件解决方案模板 软件解决方案模板是一种常用的文档模板,用于描述软件项目的解决方案。该模板通常包含项目概述、需求描述、...该模板能够帮助项目团队更好地理解项目的需求和目标,并提供了一个系统化的解决方案。

    佳佳网络玩具有限公司商业计划书模板.doc

    - **公司战略与规划**:包括公司的长期目标、短期目标,以及如何通过一系列策略来实现这些目标,如市场定位、产品差异化、成本控制等。 - **财务数据**:这部分提供了公司的财务状况,可能包括启动资金、预期收入...

    普元新一代数字化企业云平台缘起

    在当今快速变化的商业环境中,数字化转型已成为众多企业的核心战略之一。随着技术的发展和社会的进步,企业的生存和发展越来越依赖于其数字化水平。普元新一代数字化企业云平台正是在这样的背景下应运而生,旨在帮助...

    专题资料(2021-2022年)“佳佳”网络玩具有限公司商业计划书.doc

    1.1 创意缘起:佳佳网络玩具公司诞生于对儿童教育与娱乐需求的洞察,致力于利用互联网技术提供创新、互动且富有教育意义的玩具产品。 1.2 公司标志:公司标志设计体现公司的核心价值,可能包括儿童友好的元素,传达...

    XXX概要设计方案.docx

    * 项目背景:软件开发项目的背景是指项目的缘起和目的,通常包括项目的历史、发展和当前状态。 * 现状分析:现状分析是指对当前项目状态的分析,包括项目的优势、劣势、机会和威胁。 * 项目范围:项目范围是指项目的...

    100亿数据量1万属性数据库架构设计

    在需求缘起部分,提到了58同城的核心业务之一——帖子业务,它累积了10亿的帖子量,读写并发吞吐量达到10万级别,并且具有高达1万的异构帖子属性,这些属性在不同品类的帖子中差异极大,且每个属性都可能成为查询...

    872【118页PPT】华为铁三角工作法详解(精华版).pptx

    - **缘起**:铁三角工作法是华为在面对日益激烈的市场竞争时,为提高客户满意度和内部运作效率而提出的一种组织架构创新。其核心思想是通过紧密协作的团队合作来快速响应客户需求。 - **发展历程**: - **2006年*...

    Nginx开发从入门到精通

    #### 缘起与目标受众 《Nginx开发从入门到精通》是一本由淘宝核心系统服务器平台组成员撰写的书籍,旨在帮助读者全面掌握Nginx的模块开发及其内部工作原理。随着Nginx在业界的广泛应用,特别是淘宝内部对Nginx的...

    聖殿祭司的ASP.NET 3.5專家技術手冊II新功能篇--使用C# 试读目录

    - **LINQ架构概观**:概述了LINQ的核心组成部分和设计理念。 - **LINQ Query查询三步骤及延迟查询特性**:解释了LINQ查询的基本步骤以及延迟执行的概念。 - **LINQ to Object**:探讨了如何使用LINQ来查询内存中的...

    IT项目立项报告模板(1).doc

    该部分应该包括项目的缘起、当前的问题和挑战、项目的目标和期望等内容。 1.3 项目主要功能和特色 项目主要功能和特色是指项目的核心功能和优势所在。该部分应该包括项目的主要技术指标、性能参数和创新点等内容。...

    创新提案可行性分析报告格式借鉴.pdf

    一、提案缘起与情境 这部分要求阐述提案产生的背景和核心问题。它应清晰地解释创新提案为何出现,以及它将解决的具体问题。这有助于读者理解提案的价值和紧迫性。 二、创新商业模式 创新商业模式需明确目标市场、...

    服务编排最佳实践.pptx

    服务编排是现代微服务架构中的关键概念,它在应对复杂业务流程时起着至关重要的作用。本节将深入探讨服务编排的最佳实践,旨在帮助开发者理解和实施有效的服务协同策略。 1. 缘起:服务拆分之痛 随着业务的发展,...

    XXXX学院安防视频监控项目整体解决方案.doc

    项目背景是指XXXX学院安防视频监控项目的缘起和目的,而需求分析则是指对XXXX学院安防视频监控项目的需求进行分析和研究,以确定项目的目标和范围。 总体设计方案 总体设计方案是解决方案的核心部分,从中可以了解...

    信息化项目立项报告.pdf

    信息化项目立项报告是信息化项目的核心文件,涵盖了项目的各个方面,包括项目名称、项目背景、项目目标、项目预算、项目计划周期、可行性分析、收益分析、风险和对策、项目需求等。本报告对信息化项目的各个方面进行...

    专题资料(2021-2022年)“佳佳”网络玩具有限公司商业计划书doc59.doc

    1.1 创意缘起:这部分可能阐述了创办"佳佳"网络玩具公司的灵感来源,可能是对现有市场空白的洞察,或者是对儿童教育玩具新趋势的把握。 1.2 公司标志:公司标志是品牌识别的重要元素,通常会体现公司的理念和形象。 ...

    [PRD]xxx项目产品需求文档模板.doc

    + 现状:描述现有的系统是什么样的,包括其架构、技术栈和性能等。 + 问题:描述现有的系统存在的问题,包括技术债务、性能瓶颈和用户体验问题等。 * 业务分析:分析项目的业务需求,包括市场需求、用户需求和商业...

    企划案的编写方法

    企划案是企业在面对复杂市场环境和竞争压力时,为了实现特定目标或解决具体问题而进行的一种策略规划。企划自1965年引入中国,随着消费者需求多样化和市场竞争加剧,其在企业中的地位日益凸显,成为企业运营的六大...

    “佳佳”网络玩具有限公司商业计划书287doc-49-精品创业书模板.doc

    在第一章中,公司简介部分揭示了“佳佳”的创意缘起,强调了其独特的商业构思。公司标志是品牌形象的重要组成部分,通常体现公司的核心价值和理念。公司战略与规划部分详细描述了公司的长期目标和短期目标,包括其...

    CRM原理与理念.pptx

    总结来说,CRM是一种管理理念和工具,它借助信息技术,将客户置于企业管理的核心,旨在通过深入了解和满足客户需求,实现企业的可持续增长。随着科技的进步和社会经济的变化,CRM的应用将更加广泛和深入,成为企业在...

Global site tag (gtag.js) - Google Analytics