首页 > 其他分享 >漫谈架构

漫谈架构

时间:2024-03-01 18:01:34浏览次数:24  
标签:架构 框架 漫谈 系统 程序员 开发 软件架构

什么是架构?

  每当我们开发新的项目的时候都会新建一个解决方案,然后在解决方案中搭建N个项目。每个项目之间通过“引用”达到交互的功能,这个过程就可以称之架构,而架构最终的产物则是软件产品。不同的程序员在搭建架构的时候分两种情况:熟悉业务,根据业务进行架构、不熟悉业务,根据自己的理解进行架构。这两种情况在软件工程行业中有两个名词进行描述,分别是“隐式架构”和“显式架构”。

  举个例子,让一个经验丰富的程序员去开发一个Blog系统,经验丰富的程序员的脑中就会有一个Blog系统的大体架构,比如功能等等。。反之,如果让一个新手去开发一个Blog系统,那么他可能因为不了解需求、功能等问题需要耽搁很久,所以这时候就需要我们把架构给展现出来,通过草图或UML告诉程序员有哪些功能模块,以及它们之间的关联等等来帮助程序员开发。

  架构不能脱其需实现的系统而存在。在进行软件架构之前,我们需要理解系统是如何和外部环境发生关系的以及如何嵌入到外部环境中的。架构是一个系统最为核心的部分,是构造系统过程中的支柱。在进行系统架构前,我们往往需要了解很多方面的东西。例如:分析需求、设计系统、根据其技术语言的本身来确保架构的可行性。

  完美的设计不是包罗万向无所不在,而是完整自洽不可精简。

 

架构能解决什么问题

  这个问题可以用一句话来回答:架构是为了解决系统的复杂性,也同时保证了系统的可维护性。

  一旦进入开发阶段,在架构中我们所定义的一些功能则不能被轻易改变。这里仅仅是指不会轻易改变而不是不能改变。而一些功能可以会随着的业务的变更发生更改,但有了架构之后,我们改起来非常容易。举个例子,某公司需要开发一个金融系统,在开发系统前没有专业的人员进行架构,招了一些程序员分完工就开始写功能。这些程序员在写某一个功能点时根本不会去考虑这个功能别人有没有写过,直接就开始写,殊不知他们写的这个功能已经有几个人都写了。而这时,BOSS说某个功能需要修改,那么这些重复的"轮子"都要跟着修改,如果某位程序员忘记了修改则会导致系统的崩溃。再或者,当时写这个金融系统的程序员如果全部辞职,公司在招人来继续开发这个项目,由于没有整体的架构图可能会导致这个项目无法继续维护下去,最终可能导致项目失败。

  

架构和框架的区别

  很多人都会把框架和架构混为一谈,其实不然。框架是软件,而架构不是软件。

  框架是一种特殊的软件,它并不能提供完整无缺的解决方案,而是为你构建解决方案提供良好的基础。框架是半成品。典型地,框架是系统或子系统的半成品;框架中的服务尅被最终应用系统直接调用,而框架中的扩展点是供应用开发人员定制的“可变化点”。

      架构不是软件,而是关于软件如何设计的重要策略。软件架构决策设计到如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。经过完整的开发过程之后,这些架构决策将体现在最终开发出的软件系统中;当然,引入软件架构之后,整个开发过程变成了“分两步走”,而架构决策往往会体现在框架之中。或许,人们常把架构和框架混为一谈的原因就在于此吧!我们不能指着某些代码,说这就是软件架构,因为软件架构是比具体代码高一个抽象层次的概念。架构势必被代码所体现和遵循,但任何一段具体的代码都代表不了架构。

      框架技术和架构技术的出现,都是为了解决软件系统日益复杂所带来的困难而采取“分而治之”思维的结果-----先大局后局部,就出现了架构;先通用后专用,就出现了框架。下图很好地揭示了这一点。架构是问题的抽象解决方案,它关注大局而忽略细节;而框架是通用半成品,还必须根据具体需求进一步定制开发才能变成应用系统。

标签:架构,框架,漫谈,系统,程序员,开发,软件架构
From: https://www.cnblogs.com/yangkaiwen/p/18047640

相关文章

  • 《架构漫谈》读后感
    在深入阅读了《架构漫谈》之后,我对软件架构有了全新的认识和理解。曾经,我错误地将架构视为技术的堆砌,以为只要技术足够先进,架构就能自然而然地形成。然而,王概凯先生在这本书中的独到见解让我意识到,架构的真正魅力远不止于此。首先,优秀的架构并非一成不变,它需要根据业务需求的变化......
  • 《架构漫谈》读后感
    《架构漫谈》读后感阅读博客地址:王概凯(infoq.cn)对于软件架构,通过学习王概凯的老师的博客讲解,有了一些基础认识,并有了以下的见解与感受。1、什么是架构?首先什么是架构,每个专家都有自己的见解,结果发现,没有大家都认可的定义,每个人都在谈论它,但好像没有人真正了解他,架......
  • 架构漫谈读后感
    在深入研读《架构漫谈》之后,我对软件架构的理解与认知经历了前所未有的变革。这本书不仅是一本关于技术细节的指南,更是一部关于如何成为优秀架构师的精神启示录。它不仅丰富了我的知识体系,更重塑了我对软件架构的全方位理解。首先,王概凯在书中对架构的定义,让我对其有了更为深入的......
  • 《架构漫谈》读后感
    在上本学期软件体系架构课程之初,我阅读了王概凯老师的《架构漫谈》博客文章,王老师以很多生动的例子为我们讲解了什么是架构、认识概念、识别问题、架构切分、什么是软件、什么是架构师、从架构的角度来看如何写好代码以及技术、业务、架构三者的关系。首先,什么是架构?什么会有......
  • 《架构漫谈:王概凯的技术思考》读后感
     今日王老师建议我看王概凯《架构漫谈》这本书。我觉得这是软工的圣经书籍,必读书目,在信息技术日新月异的今天,软件架构的重要性日益凸显。我深感其对于软件架构的独到见解和深刻思考。在此,我想分享一下我的读后感。王概凯作为一位资深的技术专家,对于软件架构有着丰富的实践经验......
  • 架构漫谈读后感
    这几天,读了一篇系列文章《架构漫谈》,其中通俗易懂的语言,风趣幽默的风格,形象明了的对比形式让我对架构有了更进一步的了解。首先,第一个问题什么是架构?架构,英文的定义是:Architecture(Latinarchitectura,fromtheGreekἀρχιτέκτων arkhitekton"architect",fromἀ......
  • 《架构杂谈》读后感
    今天阅读了王概凯的架构漫谈:     第一节讲的是什么是架构,在文中,他首先列举了Wikepadia上的定义。然后他从早期人们为了生命的延续分工合作来解释了为什么要产生架构?——把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分......
  • 互联网架构点
    设计大型互联网网站的项目架构是一个复杂而关键的任务,它需要考虑性能、可伸缩性、可靠性、安全性以及维护性等多方面因素。大型互联网项目的架构设计应该根据具体的业务需求和规模来调整,同时要考虑未来的扩展性。这通常需要深入了解业务需求、技术趋势和最佳实践,以做出明智的决策......
  • 架构漫谈
    首先来看,什么是架构?为什么会出现架构?文章中是这么说的。在每个人都必须自己完成所有生活必须品的生产的时候,是没有架构的(当然在个人来讲,同一时刻只能做有限的事情,在时间上还是可能会产生架构的)。一旦产生的分工,就把所有的事情,切分成由不同角色的人来完成,最后再通过交易,使得每个个......
  • 云计算 - 阿里云最佳云上实践介绍 卓越架构
    相较传统IDC,云计算的快速迭代增加了维持良好架构的难度。云应用需关注稳定性、安全性、性能和成本。阿里云通过多年经验,发展了一套名为"AlibabaCloudWell-ArchitectedFramework"的优秀架构框架,以协助用户构建出色的云架构。关注【TechLeadCloud】,分享互联网架构、云服务技......