刚哥谈架构 (二) 我眼中的架构师

2023-11-09 18:20
文章标签 架构 架构师 眼中 刚哥

本文主要是介绍刚哥谈架构 (二) 我眼中的架构师,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

之前在公司,有小伙伴在向别人介绍我的时候,经常会有人这么说:“刚哥是我们的architcture”,如果来人是老外,心中一定是一惊,心中暗叹,“这位匪首看上去貌不惊人,难道已经做到了架构和本人天人合一和最高境界了?” 回头,我不免又要唠叨两句,“同学们,没文化,很可怕,我是架构师 architect,不是架构 architcture” 就像我上次跟大家聊的一样,人是架构要解决的核心问题之一,那么说“人暨架构”,似乎也是有些道理。但是你要是硬说架构师就是架构,恐怕你是对架构师有什么误解。

从企业的角度来看,会定义不同的架构师的角色,像什么系统架构师,解决方案架构师,软件架构师等等。我们要谈论的是软件架构师这个角色。其实很多的软件企业和团队,都没有定义架构师这个角色。在我早期参与的软件开发团队中,主要的角色无非是产品,开发,测试和管理角色。后来的敏捷开发就更为简单的分成三个角色Scrum Master, Product Owner, Dev。在这样环境中,并不是说没有架构师,也不是说不需要架构设计,而是说,架构设计的工作被团队经理,开发等其它的角色所承担。

“一千个人眼中就有一千个哈姆雷特”,每个程序员,每个组织,每个企业也都会有自己心目中的架构师,那么我今天就来聊聊我对架构师这个角色的看法。

我眼中的架构师不一定有颈椎病,不一定秃发,但一定首先是一个程序猿,一个软件工程师,一个码农。

经常看到有小伙伴讨论架构师要不要写代码?我认为这是个伪命题,就像我之前说的,大家根本没有对架构师有一个统一,一致的定义,那么讨论架构师要不要写代码根本就没有意义,有的架构师需要写代码,有的并不需要。但我眼中的软件架构师一定是一个优秀的程序猿,软件开发是一个实践性非常强的工作,你不能指望通过学习几本二十一天入门类的书籍就能对软件开发有一个深入的认识。软件开发并不是有人说的艺术,也不是科学,软件开发需要的工匠精神恰恰是来自于大量的实践。 ‘Talk is cheap,show me your code’, 架构师不仅仅是画画架构设计图,做些炫酷的PPT和演讲,虽然这几样都是我非常喜欢和擅长做的工作。

我眼中的架构师是一个技术领导者。

杰拉尔德·温伯格 (Gerald M.Weinberg) 是我最喜欢的软件类书籍的作家,他是软件顾问和问题解决的专家。他的《成为技术领导者》也是一本值得反复阅读的书籍。

s28736478.jpg

我们经常会有关于领导和领导力的话题和讨论,那么组织中的领导究竟要干什么,我们不是有经理么,经理不就是领导么?我认为领导和经理的区别在于,领导做正确的事,而经理的主要职责是正确地做事。做正确的事通常意味着作出正确的选择,这里的难点在于,什么才是正确的?回答这个问题就要上升到哲学的角度了。墙裂推荐哈佛大学迈克尔·桑德尔教授法学系列课程《公正:该如何做是好?》 一般来说,按照我们之前对软件架构的定义,正确的选择意味着有助于实现软件功能,有助于使得团队可以更好的协同工作,有助于提升开发的效率。温伯格在《成为技术领导者》中说到 “用乘法而不是加法”,好的架构也都是以倍增的方式来改进软件开发的效率,例如云平台Kubernetes,前端框架react等等。在我们日常的软件开发过程中,经常会面对着这样那样的诸多选择,好的架构师能够帮助团队选择最适合的那个,也就是我们说的“正确”的决策,这个很难,但是这还不是最难的。当你做出了你认为是正确的选择的时候,下一步是什么呢?有同学说,那就开始干呗!很多时候,架构师不像是经理,直接管理团队,也就是说架构师并没有最终的决策权。架构师说,“同志们,我看这样做挺好,咱们就这么搞吧!” 团队成员直接怼过来,“为什么要这么搞吧?我看那么做也挺好么”。要让一个好的决策落地,架构师需要说服团队,让大家相信这真的是一个正确的决策。这就像是“狼人杀”游戏中,你作为一个逻辑严密的玩家,通过聆听一轮发言,准确的辨别出所有的狼人,然而你却无力说服队友你是对的。“狼人杀”这个游戏的精髓就在于,这是一个团队游戏,你怎么认为并不重要,重要的是你的团队是怎么看的。

所以,作为一个优秀的架构师,除了技术之外,你需要有很优秀的逻辑思维和表达能力,良好的人际关系以及不错的口碑。程序猿是一个很有特色的群体,他们通常都有一个特点,就是非常的“固执”。说服一个程序猿放弃自己的观点,简直堪比送神州火箭登上月球。所以永远不要试图证明程序猿错了,也不要证明他的观点不如你的观点。因为所处的角度不同,我相信自己是正确地的同时并不意味着要证明别人是错误的。

一个好的架构师,作为一个技术领导者的核心能力是影响力。当然这个影响力是建立在能够真正作出正确的选择的基础上的。最糟糕的情况是,作为一个领导者,因为能力不足,选择一个错误的方向,然而因为其强大的影响力,就像乔布斯那样拥有扭曲现实的能力,而你又恰恰拥有一个执行能力很强的团队,那么结果只有一个,你会离你的目标越来越远。

我眼中的架构师是技术和产品的之间的桥梁

我们圈子中经常会流传着程序猿和产品经理之间的各种小故事。作为软件圈里的世仇,他们的故事还可以讲述很久很久

v2-f299bd4afbd776b417c31c3842d2226a_b.jpg

宿å½ä¹æï¼ç¨åºåVS产åç»ç

宿å½ä¹æï¼ç¨åºåVS产åç»ç

  (图片来自https://mp.weixin.qq.com/s/hGIuHzD-9VNsS-JO2z7dWw)

我们看到产品和开发作为拥有不同世界观的两个群体,很难理解对方,而我眼中的优秀架构师应该成为产品和开发之间的一个沟通的桥梁,一个能理解两个世界,精通两门语言的的翻译。架构师需要把产品功能翻译成程序猿能够理解的技术语言,同样架构师需要把开发面临的挑战以非技术的语言,转达给产品经理。所以架构师应该同时是产品和开发的好朋友!

我眼中的架构师是一个团队的催化剂

讲一个笑话,我的一个朋友最近加入了一家创业公司,他说他入职的那一天,公司的CEO,CTO,CFO,产品经理,测试,市场,司机,厨子,保安都来欢迎他的入职。我对他说,“你太有面子,公司看来对你很重视呀,派出这么多人来欢迎你。” 他说,“哪里呀,不就一个人么!”

今天的软件开发对团队的依赖程度非常的高,所以架构师首先是这个团队的一个成员,需要有良好的团队精神。诺兰大师在他的电影《盗梦空间》中讲述了一个精彩的关于团队合作的故事。

63a347f34456441e963d544522c6635a.png

架构师(筑梦师)无疑是团队中的重要角色,但是一个良好运作的团队,需要各个角色协同工作,离开谁,这个团队都不完美。好的团队应该是1+1 > 2。公司的意义在于通过把拥有不同的背影,知识,思维模式的人组织在一起,创造出个体无法实现的新的创意,新的产品。而架构师正是实现新的创意和产品的催化剂,让团队中的每一个人都能发挥出比之前更出色的作用。

我眼中的架构师是一个导师和布道者

软件行业是一个令人激动的行业,技术和产品的以不可思议的速度迅速的发展着,今天的明星技术和明星产品,过不多久就会成为昨日黄花,软件产品的生命周也越来越短,我想了想我参与的软件产品,至今仍然在运行的,仍然在给用户带来价值的,大概是微乎其微的。所以不断的学习,不断的创新是我们这个行业必须要面对的宿命。我眼中的架构师应该是一个创新和新技术的倡导者,这里我并不是说新技术一定就是更好的或者更合适的选择,但是我们应该持有开放的心态,积极的去了解这些新技术带来的影响。作为导师的架构师,应该在团队中创造这样的开放心态和持续学习的文化。

 

在多年的软件开发生涯中,我和许多优秀的架构师一起工作过,我最后要聊一聊的是我遇到的架构师中的极品。之前在一家德国公司开发ERP产品,我们团队中的架构师来自德国,我们就称呼他为“老卡”吧。这位“老卡”继承了德国人优秀的哲学思维,如果你跟“老卡”讨论问题,他总是采取“否定一切”的哲学态度,首先说你错了,然后会告诉你为什么你错了。最为致命的是,通常你只能理解他说的你是错的这个观点,而“老卡”所有其它所说的内容,你完全听不懂。一般而言,德国人的英语水平是非常好的,所以并不存在因为语言问题而带来的交流困难。“老卡”喜欢用一些古怪的“大词”或者缩写,结合一些奇怪的逻辑,给对方产生一种深不可测的错觉,我想这就是传说中的架构师的终极形态吧!就像这个故事中的应试者:

面试官:你对电脑懂多少?
应试者(普通青年):懂一点,我戴过电子表,玩过任天堂,房间有一台电视……还有,我看过同学用dos开机,两次…
面试官:下一位!
面试官:你对电脑懂多少?
应试者(2B架构师):嗯,那要看是哪一种电脑了。一般的超次掌上型矽单晶片时脉输出电脑(电子表)比较简单,我小学时候常常使用他的解译编码作业流程(闹铃功能)。 至於多功能虚拟实境模拟器(任天堂)就复杂得多,不过我曾经完整测试过许多静态资料储存单体(只玩卡带破关)。长大後我对於复频道超高频无线多媒体接收仪器(电视)开始产生兴趣,每天晚上都会追踪特定频道的资料(指八点档)。 至於传统的数位电脑,我手下的一位工作伙伴(同学)经常在我的监控之下进行主储存矽单体与磁化资料存取器之间的信号交换(指dos开机)……

后来和印度同事聊天,他们好奇的问,你们都是怎么和“老卡”交流的,他说的你们能听懂么?我当然不能给中国人丢人吧,就说能!印度同事投来崇敬的目光,在他们眼中,因为无法理解老卡所说的一切,“老卡”俨然成为他们心目中神一样的存在,能和神交流的,也应该不是凡人吧!

所以我要对有志成为架构师的小伙伴提个建议,如果你的技术不扎实,学习能力不佳,沟通有困难,这都不是事。努力学习如何让别人听不懂你所说的话,渐渐的,你就会成为架构师了。

参考

  • 刚哥谈架构 (一) 软件架构的定义
  • 宿命之战:程序员VS产品经理

转载于:https://my.oschina.net/taogang/blog/3097243

这篇关于刚哥谈架构 (二) 我眼中的架构师的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/377811

相关文章

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

系统架构师-ERP+集成

ERP   集成平台end:就懒得画新的页

创业者该如何设计公司的股权架构

本文来自七八点联合IT橘子和车库咖啡的一系列关于设计公司股权结构的讲座。 主讲人何德文: 在公司发展的不同阶段,创业者都会面临公司股权架构设计问题: 1.合伙人合伙创业第一天,就会面临股权架构设计问题(合伙人股权设计); 2.公司早期要引入天使资金,会面临股权架构设计问题(天使融资); 3.公司有三五十号人,要激励中层管理与重要技术人员和公司长期走下去,会面临股权架构设计问题(员工股权激

【系统架构设计师】黑板架构详解

黑板架构(Blackboard Architecture)是一种软件架构模式,它模仿了多个专家系统协作解决问题的场景。在这种架构中,“黑板”作为一个中央知识库,存储了问题的当前状态以及所有的解决方案和部分解决方案。黑板架构特别适合于解决那些没有确定算法、需要多个知识源(或称为“专家”)共同作用才能解决的复杂问题。 一、黑板架构的组成 黑板架构主要由以下几个部分组成: 黑板(Blackboa

Java后端微服务架构下的API限流策略:Guava RateLimiter

Java后端微服务架构下的API限流策略:Guava RateLimiter 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 在微服务架构中,API限流是保护服务不受过度使用和拒绝服务攻击的重要手段。Guava RateLimiter是Google开源的Java库中的一个组件,提供了简单易用的限流功能。 API限流概述 API限流通过控制请求的速率来防止