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

对软件构造的认识

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

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

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

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

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

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

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

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

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

 

 

 

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



推荐阅读
  • 通过与阿里云的合作,牛客网成功解决了跨国视频面试中的网络卡顿问题,为求职者和面试官提供了更加流畅的沟通体验。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文详细介绍了 BERT 模型中 Transformer 的 Attention 机制,包括其原理、实现代码以及在自然语言处理中的应用。通过结合多个权威资源,帮助读者全面理解这一关键技术。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • QBlog开源博客系统:Page_Load生命周期与参数传递优化(第四部分)
    本教程将深入探讨QBlog开源博客系统的Page_Load生命周期,并介绍一种简洁的参数传递重构方法。通过视频演示和详细讲解,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文探讨了如何像程序员一样思考,强调了将复杂问题分解为更小模块的重要性,并讨论了如何通过妥善管理和复用已有代码来提高编程效率。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 摘要:为了解决下载速度慢的问题,本文介绍了一种高效的下载方法,并提供了详细的步骤和工具推荐。通过使用百度网盘分享功能,可以显著提高文件传输效率。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 本文介绍了一种有效的方法来检测硬盘上的视频文件是否损坏或存在缺帧问题。虽然一些常见的搜索引擎并未提供专门的工具,但通过使用FFmpeg等专业软件,可以全面验证各种视频格式的数据完整性,包括较为古老的AVI格式。 ... [详细]
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社区 版权所有