热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

对软件构造的认识

架构,一个明确又模糊的概念。或许我们在百度百科上可以查到“架构”的概念,但是有谁能清楚地说出架构到底是什么?下面是我读完架构漫谈的一些对于

架构,一个明确又模糊的概念。或许我们在百度百科上可以查到“架构”的概念,但是有谁能清楚地说出架构到底是什么?下面是我读完架构漫谈的一些对于架构的理解。

必须由人执行的工作,并且每个人的能力,时间都是有限的,加上人对目标系统的要求更高,导致了框架的产生。那什么是架构呢?以社会为例,把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。

要想做好架构,必须要做好两件事,1.学会识别问题,2.架构切分。

首先识别问题之前需要先问自己两个问题:①这是谁的问题?②有什么问题?

当有人回答的不确定时,说明我们发现是谁的问题了,发现问题的负责人之后,具体的问题根据他的实际活动中查找就可以了;在架构的切分方面,由于人们的负荷太重(时间上和空间上的负荷)导致了架构的切分,在架构切分时需要注意,保证权利和义务是对等的。每个负责人对自己的部分负责。而且架构切分的结果一定是一个树状,这也是为什么会产生分层。层数越多沟通越多,效率越低,分层要越少越好。尽可能变成一颗平衡树,才能让整个系统的效率最大化。

         软件的出现就是在模拟社会,随着软件数量的增加,客户对于软件的要求越来越高,导致对软件有意识的切分,演变成了不同的架构。软件实际上就是把现实生活模拟到计算机中,并且软件是需要在计算机的硬件中运行起来的,我们需要解决来两个问题:软件的适用主体是谁,以及如何使用等业务问题;如何把现实生活用软件来模拟和模拟出来的软件,需要哪些硬件设施才能够满足要求等的计算机问题。

      当提到软件架构的时候,一定要分清楚是部署的架构,还是代码的架构。软件架构的落地,需要软件的组织架构和流程来保障,离开了这个,软件架构是一句空。软件架构中包括什么呢?软件因为流量增大而分拆成不同的运行单元,在不同的机器上部署所形成的架构,属于软件架构;每个运行单元为了让不同角色的人,比如前端,业务,数据存储等能够并行工作,所分成的代码架构,也属于软件架构。软件架构的意义就是在软件不断地扩大的过程中,超出人的负荷,把软件进行切分,之后扩大的。

当然我们也需要把架构和业务以及技术的关系。就以古代人取火为例,业务目标是为了取火,钻木取火这个技术的出现解决了这个问题。钻木取火的效率不高,影响了业务(取火)的效率,就有了进一步改进的动机,改进转动木棍的方式,产生了弓弦转动木棍的技术。所以当我们通过技术完成业务目标时,我们会提高技术的效率来提高我们的利益,因而可能导致一个人不足够完成,从而引起任务的切分,使新的技术通过和原有的技术连接成一个整体,原有的方法或技术可以用更高的效率解决问题。

 

 

 

转:https://www.cnblogs.com/double1/p/5443413.html



推荐阅读
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • C#设计模式学习笔记:观察者模式解析
    本文将探讨观察者模式的基本概念、应用场景及其在C#中的实现方法。通过借鉴《Head First Design Patterns》和维基百科等资源,详细介绍该模式的工作原理,并提供具体代码示例。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • 解决Spring Boot项目创建失败的问题
    在尝试创建新的Spring Boot项目时遇到了一些问题,具体表现为在项目创建过程中的两个关键步骤出现错误。本文将详细探讨这些问题及其解决方案。 ... [详细]
  • 丽江客栈选择问题
    本文介绍了一道经典的算法题,题目涉及在丽江河边的n家特色客栈中选择住宿方案。两位游客希望住在色调相同的两家客栈,并在晚上选择一家最低消费不超过p元的咖啡店小聚。我们将详细探讨如何计算满足条件的住宿方案总数。 ... [详细]
  • JSOI2010 蔬菜庆典:树结构中的无限大权值问题
    本文探讨了 JSOI2010 的蔬菜庆典问题,主要关注如何处理非根非叶子节点的无限大权值情况。通过分析根节点及其子树的特性,提出了有效的解决方案,并详细解释了算法的实现过程。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文详细介绍如何使用CSS自定义HTML5视频播放器的样式,涵盖常见属性及跨浏览器兼容性问题。发布时间:2020-09-14 14:46:29;来源:亿速云;阅读量:58;作者:小新。 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • 理解UML的重要性及其应用
    探讨为什么大多数开发人员难以成为架构师,介绍从现实世界到业务模型的抽象过程,并详细解释UML在软件设计中的关键作用。 ... [详细]
  • 百度安全应急响应中心(BSRC)与补天漏洞响应平台共同举办2021年暑期挑战赛,提供丰厚奖励、联名证书及更多惊喜。活动时间从7月12日至7月31日。 ... [详细]
  • JMeter接口关联与数据提取:正则表达式和JSON Extractor的使用
    在使用JMeter进行接口测试时,常常需要从前一个接口的响应中提取数据并应用于后续请求。本文将详细介绍如何利用正则表达式提取器(Regular Expression Extractor)和JSON Extractor来实现这一需求。 ... [详细]
  • matlab gamma函数_MATLAB做晶体结构图(固体物理)
    写在前面最近在复习考研复试《固体物理》这一门课,去年学的内容已经忘干净了,所以就翻开前几页。突然看到了面心立方和体心立方结构图,想到了去年 ... [详细]
author-avatar
丽sd园印章
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有