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

架构漫谈读后感

时间:2023-02-19 15:24:07浏览次数:36  
标签:读后感 架构 计算机 漫谈 程序 任务 软件 模拟

  在软件发展的初期是没有架构而言的。从最早的汇编语言到过程语言,他们处理的是一个个任务,为此编制了一个个的函数来执行对应的任务。这时候的软件编程语言还是过程语言,所以谈不上架构。
随着硬件技术的成熟,能够处理的任务越来越多,为了处理这么多的任务,编程语言也从面向过程转变为面向对象,从而更好的适应任务的发展。软件越来复杂,要处理的任务越来越多,最终导致了系统架构的产生。
  架构是在复杂软件结构中产生的,它的任务就是让这些复杂软件中的任务能够互相协作从而来完成共同的任务。当然这是从软件的目标来说的。如果再考虑软件的实现和扩展性,那么好的架构需要让系统可读性和可扩展性更强,给未来留出一定的空间。如果从可靠性和可用性来讲,好的架构还需要保证系统高可用和容错性。
  我们要注意的是,架构并不是空想而来的,它的基石在于编写的程序。所以架构需要跟程序紧密结合才能产生活力。

  系统的架构主要描述的是系统的主要组件和这些组件之间的关系和他们如何进行交互。
  软件的历史,实际上可以说是用机器模拟人的历史。不管大家(包括在这个历史过程中的参与者)有没有意识到,我们都有意无意的在计算机上模仿人类的行为。从冯诺依曼结构开始,程序逻辑开始脱离硬件,采用二进制编码。加上存储,配合输入输出,一个简化的大脑就出现了。图灵机则是模拟大脑的计算,用数学的方式把计算的过程定义了出来,著名的邱奇-图灵论题:一切直觉上能行可计算的函数都可用图灵机计算,反之亦然。软硬件两者一结合,一个可编程的大脑出现了,这也是现在为什么我们把计算机叫做电脑。在硬件上编写出的程序,就是软件,是用来控制硬件的行为的。

  随着软件的规模的变大,做好一个软件也变得越来越难了。早期的程序员写程序,主要是为了帮助自己研究课题。这些程序员熟练了之后,提高了自己的生产力,并发现还可以帮助别人写程序,慢慢软件就变成了一个独立的行业。程序从早期由一个人完成,也逐渐变成了由很多不同角色的人共同合作来完成。以下讨论的前提,都是基于帮助别人写程序,多人合作的基础上的。结论对于单人为自己写程序也适用。   在没有软件之前,每个人干自己的工作,自行保存自己的工作结果。人们面对面或者通过电话等沟通,如下图所示。   有了软件之后,实际上,我们是把我们日常生活中所做的事情,包括我们自己本人都一起虚拟化到了计算机中。而人则演化成了,通过计算机的输入输出设备,控制计算机中的自己,来完成日常的工作,以及与其他人的沟通。也就是说,软件一直以来的动力,始终都是来模拟人和这个社会的。比如模拟大气运动(天气预报),模拟人类社会(互联网社交),模拟交易,包括现在正在流行的VR,人工智能等等。模拟的对象越来越高级,难度越来越大。   软件工程师是实现这个模拟过程的关键人物,他必须先理解人是怎么在日常生活中完成工作的,才能够很好的把这些工作在计算机中模拟出来。可是软件工程师需要学习大量的计算机语言和计算机知识,还需要学习各行各业的专业知识。软件工程师本身的培养就比较难,同时行业知识也要靠时间的积累,这样就远远超出了软件工程师的能力了。所以软件开发就开始有分工了,行业知识和业务的识别,会交给BA,系统的设计会交给架构师,设计的实现交给架构师,实现的检验交给测试,还有很多其他角色的配合。为了组织这些角色的工作,还有项目经理。这就把原来一个人的连续工作,拆分成了不同角色的人的连续配合,演化成了不同的软件开发的模式。然后慢慢演变出专门为别人开发软件的软件公司。

标签:读后感,架构,计算机,漫谈,程序,任务,软件,模拟
From: https://www.cnblogs.com/wangao666/p/17134764.html

相关文章

  • 架构漫谈读后感
          一直以来,我们耳边就有人谈论各种架构,比如说知识架构,社会架构,营养架构。在软件工程中,也有架构这么个概念,在了解架构以前,我一直停留在字面意思来,认为架构就是一......
  • 架构漫谈
    今天阅读了王概凯的架构漫谈,下面我从以下几点来表达一下自己的认识.     第一节讲的是什么是架构,在文中,他首先列举了Wikepadia上的定义。然后他从早期人们为了生......
  • 阅读笔记——架构漫谈
    在第一章王概凯先生就为我们阐述了架构的定义:我个人理解的架构就是将一件事儿分切成小块的问题,然后再进行解决。根据要解决的问题,对目标系统的边界进行界定并分配角色......
  • 读--架构漫谈之后
    在阅读过王概凯的架构漫谈之后我理解到关于架构的更深层次的东西。思考了以下几个方面我有自己的一点认识:1.         什么是架构:作者说架构实际上就是指人们根......
  • 架构漫谈读后感
    概念是为解决某一特定问题的解决方案所起的名字,因此由概念本身可以帮助架构师在了解未知领域时,更快的嗅到用户所处的领域的问题的线索,概念本身是精炼化的,所能展露出信......
  • spring架构改造持续改造
    1、Causedby:java.lang.ClassNotFoundException:org.mybatis.logging.LoggerFactory2、UnabletostartServletWebServerApplicationContextduetomissingServlet......
  • etcd学习笔记-组件架构
    etcd项目结构其中核心模块etcdserver,lease,mvcc,raft整体架构客户端层包括clientv3和etcdctl等客户端,用户通过命令行或者客户端通过restfulapi降低了etcd客户端的使用复杂......
  • 软件架构师该如何工作
    软件架构师基本要求:1.对项目开发涉及的所有问题领域都有经验,包括彻底地理解项目需求,开展分析设计之类软件工程活动等;2.具备领导素质,以在各小组之间推进技术工作,......
  • 23春第一周学习总结--软件架构入门
    软件架构(softwarearchitecture)就是软件的基本结构。合适的架构是软件成功的最重要因素之一。大型软件公司通常有专门的架构师职位(architect),只有资深程序员才可以担任。......
  • 【系统架构设计师】计算机组成与体系结构 ② ( 冯诺依曼结构 | 哈佛结构 | 常见的芯片
    文章目录​​一、冯诺依曼结构​​​​二、哈佛结构​​​​三、常见的芯片​​一、冯诺依曼结构冯诺依曼结构:指令存储器与数据存储器应用场景:PC机,使用i3,i......