读架构漫谈&我眼中的架构师
本周是开学的第二周,读了由资深架构师王概凯 Kevin 执笔的系列专栏架构漫谈。初识这门课,懂得也不是很多,读了架构漫谈,有了一些理解。
首先作者讲述了缘起,由早期人独立自主生活到后来的集群,作者由这个例子 引出人多力量大,每个人都有自己的独特本领:多人分工配合作为生存的整体,力量就显得强大多了,所以也自然的形成了族群:有些人种田厉害,有些人制作工具厉害,有些地方适合产出粮食,有些地方适合产出棉花等,就自然形成了人的分群,地域的分群。当分工发生后,实际上每个人的生产力都得到了提高,因为做的都是每个人擅长的事情。之后便由几个更加深入的例子讲述了自己理解的架构:
(1)根据要解决的问题,对目标系统的边界进行界定。
(2)并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。
(3)并对这些切分出来的部分,设立沟通机制。
(4)根据 3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。
也是通过作者的几个例子,我也理解了架构最基本是什么。之后在读这个系列的内容,我开始认识“每个概念实际上所解决的,还是人遇到的某个特定的问题”,课堂我们也讨论了什么是“桌子”,大家给出的概念一开始我也认为让我说我也会这么说,可之后老师和我们再讨论,我也更加认识到“每个概念实际上所解决的,还是人遇到的某个特定的问题”,就比如桌子和椅子的高度也是有限定的,都是是解决人的问题。联想到软件也是解决人的问题,人的需求。作者之后便介绍到如何识别问题。做软件的最终要的就是认识到所有的需求,搞清楚需求,作者也说到:只有真正投入思考问题是什么的工程师,才可能会真正的成长为架构师 。然而现实是无论我们是敲代码还是别的什么工作,都会以自己认为对的方式完成自己的问题。这是极其糟糕的一面了吧。导致最后问题解决了是解决了,但是却跑偏了最初的目的,我们应该清楚认识到我们无论是做软件还是架构师在识别问题时,要解决的基本都是别人的问题,不是自己的问题。所以我们一定要先考虑到这一点,这一点我觉得是最重要的,也给了我们一个反思自己的机会,我们平时敲代码写系统是不是也是在解决自己的问题,我想是的。当然做架构师的下一步:调整利益。联想自己生活,每个人最擅长的肯定不是所有科目,这就需要同学之间的互帮互助了,也就是大家用自己擅长的东西去换取别人擅长的东西,扩大自己的利益(我终于在同学帮助下把这个bug改出来了!要不然不知道还能不能改出来!毕竟我一个人干这么一个大系统可能会有问题啊!)所以作者最后总结出:架构的切分实际就是对 stakeholder 的利益进行切分或合并,使得每个 stakeholder 的权责是对等的,每个 stakeholder 可以为自己的利益负责。咱们都是互相依赖的,这样每个人才会有多姿多彩的生活a!当然读这个系列的文章也带我们重新梳理了一下到底什么才是我们最熟悉的软件的问题。最后也由软件的产生加进了架构师的产生,还是和利益有关,自己的时间限制,任务繁琐,所以进行切分,互相依赖,好比盖房子,需要多个工种完成的。
当然,架构出现了,架构师也就很重要了,没错,架构师必须是一个组织的领导人。架构师要解决的是别人的问题,不是自己完成工作的问题。架构师必须是一个组织的领导人,有权利调动这个组织的架构,才能够更好的发挥架构师的作用,更好的把利益的调整落到实处。我认为一名架构师,在技术上需要有足够的自信,这样才能够去领导别人去做软件,同时也会受到信服。当遇到问题时,能提出解决问题的成本最低的方案,就是一名架构师应该做的。身为现在还在敲代码的我们,敲代码还是很现实很重要的事情,我们每个人看待代码的眼光、方式都不一样,作者介绍了从架构师的角度看待如何将代码写好:在写代码的过程中,最重要的就是逻辑方面的问题,不合理的逻辑结构,都会导致架构无法快速的横向扩展和分拆,并且增加了修改的成本,这些是不符合开发人员以及业务的利益的。写代码的时候让该出现逻辑的地方出现逻辑,让不该出现的地方不能出现。一旦不该出现的地方出现了逻辑,那么要马上意识到,这个地方是一个坑,这个问题一定和业务的分析不透彻有关系。最后介绍道:架构师应该承担起解决业务问题的这个角色,理清楚技术业务架构的关系极为重要。准确识别采用什么技术的能力,也是架构师所要具备的能力之一。
通过读这一系列的内容,我也初步对“架构”以及架构师这个职业有了初步的了解,做软件的我们,要一点一滴做起,有了一个初步的认识,就要继续入门了。架构成长之路,开始吧!
读架构漫谈&我眼中的架构师的更多相关文章
- 读<架构漫谈>系列有感
读了这一系列博文,我对架构也有了大致的了解.在简单的阅读之后,我解决了几个问题. 第一个问题,什么是架构? 要学习架构,首先要知道架构.那么,什么是架构呢?引用<架构漫谈(一)>里的话就是 ...
- <<架构漫谈>>读后感
今天按照老师的要求,看了架构漫谈1--9讲,觉得受益良多,以下是我得点点读后感: (一)什么是架构? 架构的英文是Architecture,从定义上看,架构好像是一个过程,也不是很清晰.下面从架构的缘 ...
- iOS开发之组件化架构漫谈
前段时间公司项目打算重构,准确来说应该是按之前的产品逻辑重写一个项目.在重构项目之前涉及到架构选型的问题,我和组里小伙伴一起研究了一下组件化架构,打算将项目重构为组件化架构.当然不是直接拿来照搬,还是 ...
- 【Zigbee技术入门教程-02】一图读懂ZStack协议栈的基本架构和工作机理
[Zigbee技术入门教程-02]一图读懂ZStack协议栈的基本架构和工作机理 广东职业技术学院 欧浩源 ohy3686@foxmail.com Z-Stack协议栈是一个基于任务轮询方式的操作 ...
- ShardingSphere内核原理 原创 鸽子 架构漫谈 2021-01-09
ShardingSphere内核原理 原创 鸽子 架构漫谈 2021-01-09
- 一篇文章让你读懂 OpenStack 的起源、架构和应用
OpenStack 是一个面向 IaaS 层的开源项目,用于实现公有云和私有云的部署及管理.拥有众多大公司的行业背书和数以千计的社区成员, OpenStack 被看作是云计算的未来.目前 OS 基金会 ...
- 架构C02-商业模式与架构设计
商业模式与架构设计:A段架构与B段架构 <思考软件创新设计:A段架构师思考技术> A段架构师必须具备鲜活的创新思维,睿智的策略思考,犀利的洞察力和灵活的战术才能把握稍纵即逝的商机 ...
- .NET应用架构设计—重新认识分层架构(现代企业级应用分层架构核心设计要素)
阅读目录: 1.背景介绍 2.简要回顾下传统三层架构 3.企业级应用分层架构(现代分层架构的基本演变过程) 3.1.服务层中应用契约式设计来解决动态条件不匹配错误(通过契约式设计模式来将问题在线下暴露 ...
- 基于LAMP平台的网站架构(或Web系统架构)
1.网站架构的前提(或者说需求) 我们公司是一电子商务的网站,因为线下家具建材项目的推广需求,从而有了我们公司的这个线上网站,在这里我贴一张公司的网站架构图. 总体来说网站规模不是太大,注册人数在15 ...
随机推荐
- 58同城笔试题:数组去重;分饼干(分糖果);最小路径和(leetcode64)
1. 数组去重 题目描述 /** * 有序数组去重 * 输出最终的数字个数 * 输入:1,2,2 * 输出:2 * @author Turing * */ 代码 import java.util.*; ...
- EntityFrameworkCore 学习笔记之示例一
直接贴代码了: 1. Program.cs using Microsoft.EntityFrameworkCore; using System; using System.Threading.Task ...
- Kubernetes service 三种类型/NodePort端口固定
Kubernetes service 三种类型 • ClusterIP:默认,分配一个集群内部可以访问的虚拟IP(VIP)• NodePort:在每个Node上分配一个端口作为外部访问入口• Load ...
- DAX 第九篇:文本函数
DAX中用于处理文本的函数,和其他语言很相似. 一,文本连接 文本连接也可以使用操作符 & 来实现,也可以使用函数CONCATENATE来实现: CONCATENATE(<text1&g ...
- MySQL for OPS 01:简介 / 安装初始化 / 用户授权管理
写在前面的话 取这个标题的目的很简单,MySQL 在中小型企业中一般都是由运维来维护的,除非数据很重要的公司可能会聘请 DBA. 但是运维一般存在由于所需要了解的东西很多很杂,导致学习过程中很多东西只 ...
- 带你认识MySQL sys schema
前言: MySQL 5.7中引入了一个新的sys schema,sys是一个MySQL自带的系统库,在安装MySQL 5.7以后的版本,使用mysqld进行初始化时,会自动创建sys库. sys库里 ...
- laravel 广播细节讲解
1.应用场景 1.通知(Notification) 或 信号(Signal) 2.通知是最简单的示例,也最经常用到.信号也可看作是通知的一种展现形式,只不过信号没有UI而已. 3.Activity S ...
- python 处理中文遇到的编码问题总结 以及 字符str的编码如何判断
如何处理中午编码的问题 Python的UnicodeDecodeError: 'utf8' codec can't decode byte 0xxx in position 这个错误是因为你代码中的某 ...
- JS-21点游戏
//21点游戏 let readline=require("readline-sync"); //清屏函数 let clear=()=>process.stdout.writ ...
- Outlook API
1.Outlook简介 若要从Outlook 外控制Outlook对象,必须在编写代码的工程中建立对Outlook对象库的引用. 1.1 Outlook Application说明: 代表整个Mic ...