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

软件体系架构

架构在软件发明的很多年前就已经存在了,但是架构的定义一直不是很明确。由于产生分工把所有事情划分为由不同角色的人来完成然后再进行交易,这实际上就形成了社会的架构。对于不同的行业,都可以有

    架构在软件发明的很多年前就已经存在了,但是架构的定义一直不是很明确。

    由于产生分工把所有事情划分为由不同角色的人来完成然后再进行交易,这实际上就形成了社会的架构。对于不同的行业,都可以有同样的思考,根据自己对世界的认识,为解决某个问题,主动地、有目的地去识别问题,并进行分解、合并,解决这个问题的实践活动。架构实际上解决的是人的问题,而概念是认识这个世界的基础。根据架构的定义,能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。做好框架首先要识别出需要解决的问题,这个能力基本上决定了架构师的水平。架构师应该问的第一个正确的问题就是目标问题是谁的问题。找出问题的主体是做架构的首要问题,要明白是谁的问题,有什么问题。

    切分就是利益的调整,由于利益,人们认识到要主动的去切分一个系统。构架切分的最终结果都会体现在组织构架上,只有这样才能够让构架落地并推进,构架切分的结果一定是树状。软件就是在硬件上编写的程序,用来控制硬件的行为。利用软件使每个人能够负担的工作越来越多,成本越爱越低。软件工程师不堪重负,自然而然就分拆为不同的角色,形成了一个独特的架构体系。软件实际上就是把现实生活模拟到计算机中,需要解决业务以及计算机问题。软件架构的落地,需要软件的组织架构和流程来保障,不管怎么分拆,所达到的目标没有任何变化,就是完成业务在计算机中的虚拟化。

    要成为架构师,必须要明白解决的是别人的问题,而不是自己完成工作的问题,成本越低越号,并且这个成本是长期成本。明白如果问题不解决,究竟谁会有利益的损失? 如果问题解决了,究竟谁会有收益,谁的收益最大?这两个问题才能知道问题的主体 。架构师是要去平衡别人的利益,甚至去调整别人的利益,但是架构师也一定要了解一定的技术以及语言的知识。结合每个部署单元所承担的责任,可以拆分成表达业务逻辑的代码、对用户提供访问并保存业务逻辑运行结果的代码。技术是为了解决业务的问题而产生的,没有业务就没有技术存在的前提,对于架构师来说专注计算机相关的技术,忽略业务本身,可能会产生技术和业务冲突的问题,架构师应该承担起解决业务问题的角色来,专注于Business Domain和软件本身的架构,让技术人员致力于为业务在计算机中跑起来而努力。只有把这两者很好的结合起来,才能更好地完成业务的目标,才会让软件更好地服务于大家。架构师要具备准确识别采用什么技术的能力,考虑的主要因素也是长期的成本和收益。

    这就是看完架构漫谈之后对于架构的认知。


推荐阅读
  • 死锁的概念“死锁”指的是:多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能进行,而导致两个或者多个线程都在等待对方释放资源 ... [详细]
  • 运用DDD分层架构优化微服务代码设计
    在微服务实施过程中,确定合理的代码结构至关重要。本文探讨了如何利用领域驱动设计(DDD)的分层架构来优化微服务的代码模型,确保系统的可维护性和扩展性。 ... [详细]
  • 第十代英特尔酷睿H系列处理器发布,i9-10980HK领衔登场
    2020年4月2日,英特尔正式发布了第十代酷睿H系列高性能处理器,专为移动平台设计。此次发布的处理器阵容强大,包括多款i5、i7及顶级i9处理器。 ... [详细]
  • CentOS 7.4 KVM虚拟化平台搭建指南
    本文详细介绍了如何在CentOS 7.4系统上搭建KVM虚拟化平台,包括环境准备、网络配置、KVM安装与管理等步骤,适用于希望利用KVM进行虚拟化部署的技术人员。 ... [详细]
  • 精选10款jQuery内联编辑插件
    本文精选了10款优秀的jQuery内联编辑插件,旨在帮助开发者实现页面内容的动态管理和即时编辑,提升用户体验。 ... [详细]
  • HQChart 是首个将传统的PC端股票客户端(C++)移植至 jspy 平台的项目,支持 K 线图和麦语言(分析家语法)指标计算。此次更新主要增加了通达信集合竞价图等功能。 ... [详细]
  • 本文介绍了如何通过修改Android应用的配置文件和编写布局与Activity代码,利用DOM模式将用户输入的数据保存为XML文件。 ... [详细]
  • HTTP(超文本传输协议)是互联网上用于客户端和服务器之间交换数据的主要协议。本文详细介绍了HTTP的工作原理,包括其请求-响应机制、不同版本的发展历程以及HTTP数据包的具体结构。 ... [详细]
  • 初学者必备:iBATIS入门指南与常见问题解决
    本文旨在为iBATIS初学者提供一份详细的入门指南,并针对官方文档中示例不足的问题提出解决方案。适合零基础学习者。 ... [详细]
  • 本文详细探讨了在Python开发中遇到的ImportError: 无法找到名为Crypto.Cipher的模块的问题,并提供了多种解决方案,包括环境配置、库安装和代码调整等方法。 ... [详细]
  • 探讨了requireJS的domReady插件与window.onload事件在实际应用中的不同表现,特别是在处理页面加载过程中图片资源的影响。 ... [详细]
  • 本文提供了详细的指导,帮助开发者了解如何使用PHP插件进行网站内容的翻译,特别是针对WordPress插件和主题的汉化及多语言支持。 ... [详细]
  • ECharts图表绘制函数集
    本文档提供了使用ECharts库创建柱状图、饼图和双折线图的JavaScript函数。每个函数都详细列出了参数说明,并通过示例展示了如何调用这些函数以生成不同类型的图表。 ... [详细]
  • 本文探讨了Lua中元表和元方法的使用,通过具体的代码示例展示了如何利用这些特性来实现类似C语言中的运算符重载功能。 ... [详细]
  • Web网络基础
    目录儿1使用HTTP协议访问Web2HTTP的诞生2.1因特网的起源2.2互联网、因特网与万维网2.3万维网与HTTP3网络基础TCPIP3.1TCPIP协议族3.2TCPIP的分 ... [详细]
author-avatar
手机用户2502910651
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有