首页 > 其他分享 >读架构漫谈有感

读架构漫谈有感

时间:2024-02-28 19:48:30浏览次数:25  
标签:架构 有感 框架 漫谈 系统 程序员 开发 软件架构

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

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

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

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

 

架构能解决什么问题

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

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

  

架构和框架的区别

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

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

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

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

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

相关文章

  • 架构漫谈读后感
    作者以一种通俗易懂的语言,向我们揭示了软件架构的本质与核心价值。它并非仅仅是代码堆砌的艺术,而是对系统逻辑、业务需求、性能考量、可扩展性、可维护性等多方面因素进行综合权衡与设计的过程。作者通过生动具体的案例,阐述了良好的架构设计如何影响并决定着项目的成败,使我对架构......
  • 架构漫谈读后感
    什么是架构:架构产生的必要条件包括:必须由人执行的工作;每个人的能力有限;每个人的时间有限;人们对目标系统有更高要求;目标系统的复杂性超出单个人的能力范围。架构的本质是对目标系统的规划、设计和构建过程,具体体现为:根据要解决的问题,明确目标系统的边界;基于某个原则对......
  • 架构漫谈读后感
    架构设计中的问题识别与切分在阅读了所提供的四篇关于架构设计中问题识别与切分的文章后,我对于架构设计这一复杂而关键的领域有了更深入的理解。这些文章深入探讨了问题识别、切分原则以及与利益相关的重要性,为我提供了宝贵的思考和启发。首先,文章着重强调了在解决问题......
  • 架构漫谈读后感
    为什么会产生架构?想象一下,在最早期,每个人都完全独立生活,衣、食、住、行等等全部都自己搞定,整个人类都是独立的个体,不相往来。为了解决人类的延续的问题,自然而然就有男女群居出现,这个时候就出现了分工了,男性和女性所做的事情就会有一定的分工,可是人每天生活的基本需求没有发生变化......
  • 架构漫谈读后感
    今天第一次接触软件架构这门课程,首先阅读了架构漫谈这一系列博客的前三篇,初步了解了什么是架构、认识概念是理解架构的基础以及如何做好架构之识别问题。要谈软件架构,首先要了解什么是架构,这对我来说是一个新概念。所谓架构,起先源于建筑学,后来广而用之,在社会各个方面行业......
  • 架构漫谈读后感
    架构产生的动力主要源自以下几个方面:自动化程度有限:对于需要人工干预才能完成的工作,即使存在一定程度的自动化,仍需要架构来协助规划和设计。个体能力和专注度有限:每个人都有自己擅长的领域,但由于个人能力和专注度的限制,单个人很难完成复杂系统的设计和实施。因此,需要将工作分解......
  • 架构漫谈——1500字
    架构漫谈:首先是什么是架构,读完之后我自己的对架构的理解就是一种为了方便人们解决问题的一种方案,具体是怎么方便解决问题的呢? 总结下来:先对问题进行分析,再对问题进行切分,由不同的人进行不同的工作,然后使这些部分有机的结合为一个整体,这就是架构,是一个方便解决问题的过程。接......
  • 2.28王概凯架构漫谈读后感
    架构漫谈是由一个架构师王概凯写的一个专题,是以他的实际架构经验为基础,讨论是什么是架构,怎样做好架构,怎么写好程序等一些问题。共分为九个部分:1) 什么是架构?首先把架构的概念讨论明白,然后在对架构进行分析才显得清晰有意义。架构这个词在软件工程很早之前就已经出现了,在人类的......
  • 王概凯架构漫谈阅读笔记
    架构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,专栏将会以Kevin的架构经验为基础,逐步讨论什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题。什么是架构?根据要解决的问题,对目标系统的边界进行界定。并对目标系统按某个原则的进行切分。切分的原则,要便......
  • 2.28架构漫谈读后感
    (1)什么是架构把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。(2)为什么要出现架构必须由人执行的工作(不需要人介入,就意味着不需......