当前位置: 首页 > 科技观察

《IT民工》史海峰:架构师不是管理者,而是领导者

时间:2023-03-16 16:51:00 科技观察

俗话说:不想当架构师的程序员不是好程序员。成为架构师是几乎每个开发人员在职业生涯初期的共同理想。但架构师不仅仅是一个纯技术岗位,它需要技术和综合能力的支持。了解架构师的职业定位和主要职责,掌握架构师所需的核心技能,是迈向这一高级职位的必修课。在第二期举办的【T·TALK】年度系列技术分享活动中,内容中心特别邀请了前壳牌金融服务小微企业生态CTO石海峰先生,为大家讲述他的实践之道作为一名建筑师。以下是本次直播分享的核心内容,希望能给读者带来帮助。TTALK:在您看来,建筑师的职业定位和核心职责是什么?石海峰:建筑师的本质是更高级、更有经验的工程师。架构师的能力高于工程师。一些大厂层数较多。.因此无需担心工程师或架构师的边界在哪里。我倾向于认为架构师是一个只有在足够复杂和大规模的系统中才需要的角色。当系统架构不是那么清晰的时候,就需要有人从更高的角度去关注整个系统。而且架构师是个高阶职位,很难通过培训量产。在能力上,更多的需要依靠个人工作经验的积累和一些软技能的支持。架构师的核心职责是系统设计和实现的核心工程师。我用七句话总结我对架构师职责的定义:用工程化的思维充分理解业务需求,在模型和基础模式的抽象和简化的基础上,提出合适可行的整体解决方案,在有限的资源范围内达到明确的目标满足业务需求并确保系统质量在可预见的时间内可扩展,并在系统生命周期内持续发展。TTALK:架构师需要掌握哪些核心技能?石海峰:借用李志智先生的《大型网站技术架构:核心原理与案例分析》:软件架构师的最大价值不在于他掌握了多少先进技术,而在于他能把一个大系统分成N个低耦合的子模块。这些子模块包括横向业务模块也包括纵向基础技术模块。这种能力一部分来自于专业的技术和经验,一部分来自于架构师对业务场景的理解、对人性的把握,乃至对世界的认知。在技??术团队中,架构师是技术负责人,负责最终的设计和实现。在大多数情况下,架构是妥协与平衡的产物,而架构师是掌握这种平衡的人。我们都知道理想的架构是什么样的,但我们必须做出一些取舍,面对现实,提出可行的解决方案。因此,建筑师应该是心中有理想的现实主义者,心怀理想,心怀现实。从个人经验来看,架构师需要具备五种能力。1.综合专业能力和经验,包括技术能力和业务能力2.自我驱动能力3.高效学习能力4.保持良好的心态5.善于沟通与合作一个合格的架构师需要具备较强的综合能力,不能有明显的缺点。其中,技术能力和业务能力是硬指标,跨行业门槛通过学习和工作获得。后四种能力可以称为通用技能,或者说是软技能、软素质,都是团队合作中技术岗位所需要的。自我驱动、高效学习和保持良好心态是内功。用汽车来比喻,自动驾驶能力相当于发动机,高效学习能力相当于方向盘和变速箱,良好的姿态是汽车悬架和制动系统。沟通与合作是外在的技巧,也是最重要的外在表现。架构师不是孤军奋战,闭门造车不可取。而且,架构师不是管理岗位,更多的是工作中的领导者。你需要让每个人都知道你的想法,你需要团队共同努力来实现目标。这一切都取决于沟通。TTALK:作为架构师,您如何理解系统架构?史海峰:GeraldWeinberg在《系统化思维导论》中提到:系统是一种世界观。世界是多样的、有机的、变化的,而不是完美的。通过这个逻辑延伸,架构其实就是系统的一个视图。以人为例,我们可以认为人也是一个复杂的系统,生命可以理解为一个信息处理器。但是,不同的学科和理论体系对人的理解是不同的。例如,现代医学区分了神经系统、循环系统和消化系统。系统等等,传统医学讲究阴阳、五行、五脏六腑。我们每天都与他人交流。别人说的是各种信息,我们的回应是输出反馈。架构不仅仅是一个静态的视图,还包含了整个系统的实现过程,所以它必须是面向未来的。架构设计需要能够简化和抽象架构。当然,在这个过程中每个人的理解都是不同的,很难用一句话来概括。在这个思路上继续展开,无论是面对软件还是硬件,都可以拆解成时间和空间,也可以转化为时间和空间,以时间换空间,以空间换时间,这是架构设计中最常见的。实践,没有严格的界限。说到底,架构设计还是要以人为本,要多思考系统的使用者是谁,维护者是谁,系统在不同的场景下会对他们产生怎样的影响。深入了解业务和需求才能找到架构设计的最优方案,因为我们的时间和资源是有限的。需要增加的是衡量系统架构的标准。一个好的架构首先要满足需求,性能优良,实用友好。让用户满意是架构设计的核心目标。其次,要做到结构合理、设计简单、成本可控。这些项目更多的是关系到系统的开发效率。最后,稳定健壮、易维护、易分解也是优秀架构不可缺少的。举一个最简单的例子,在一个系统中使用不同的命名规则和接口规范可能会导致严重的后果。只有实现了这些要求,系统才能有更高的上限。T·TALK:当你做建筑师的时候,发生过哪些让你印象深刻的事情?史海峰:印象深刻的有两点。首先是去当当网面试。那时候不知道互联网公司是个什么东西,架构师的概念也不是很清楚。在被问及如何解决错序问题时,我并没有过多纠结于技术栈,而是凭借自己在亚信处理过类似场景的经验,从系统整体的角度给出了合适且实用的解决方案。这件事给了我很大的启发,让我对建筑和建筑师的职责有了更深的理解。其次,在加入当当网一年多之后,我和另一位架构师赵振林合作,完成了一张当当网的整体架构图,连接了我们所了解的100多个系统。虽然肯定有疏漏甚至错误,但通过这张图,成功验证了我当时对公司整体架构的理解。这也让我意识到做架构师也是需要输出的。自我感觉并不总是可靠的。我需要通过文字、图案等方式来表达我所知道的,不断地修正自己的认知。TTALK:在敏捷开发大行其道的今天,架构师应该如何保证开发设计的质量?史海峰:我们讨论过这个问题,甚至讨论过敏捷模式中是否需要架构师,因为敏捷看起来一次只解决一个问题,但如果只看眼前而忽略了长远,更大问题肯定会出现。没有远见的人,必然有眼前的忧虑。架构在不断发展,目标不是你决定的。系统变化越快,腐烂得越快,几年后很可能面临重构。重构的时候,需要对原有系统进行迭代,然后并行化,然后切换。重构需要架构设计,必须尽可能具有前瞻性,帮助团队摆脱技术债务,避免保留原有的局限性。要想保证质量,就必须掌握每日迭代的原则。即使是敏捷,也需要做programreview、CodeReview、performancetesting、performancetesting、monitoring、review,确保基本动作到位。说起来,敏捷开发对团队的综合能力要求更高。每个成员都必须对业务目标、架构原则、开发流程和协作机制有充分的了解,才能真正跑得稳、快。TTALK:最后能不能从一个架构师的角度给对这方面感兴趣的开发者提一些建议。石海峰:首先说说架构设计。建筑设计是一门艺术。作为建筑设计的从业者,建筑师必须掌握四课:多打酱油,能和泥巴讲和,敢于承担责任,敢于招惹仇恨。前面说过,没有完美的架构,只有合适的架构。技术生在工作中容易理想主义,不考虑ROI,废寝忘食,熬夜加班。但是我们做的是工程,时间资源是有限的,我们必须能够在有限的时间内交付预期的结果。因此,如何将复杂的系统化繁为简,找到最简单、最有效的解决方案,是技术同学更应该思考的问题。归根结底,还是要靠实践获得反馈,靠结果积累经验。简单来说,我们只讲假动作,不讲笨动作。我们可以说和练习真正的动作。我写过一些关于工程师和架构师成长的文章。大家可以到我的“IT民工八卦”搜索关键词“工程师”和“架构师”进一步交流,共同成长。疑难解答:如何选择架构设计框架?石海峰:建筑设计有很多框架。比如付晓燕老师在《企业级业务架构设计》开头就介绍过,但不管是哪种制度,都是一种方法和手段,我们不能被制度所限制。里面的思维模式你要多了解,初步了解不会花太多时间。当我们了解了大部分系统后,我们才能更准确地选择最能帮助到你、最适合你当前工作的架构系统,然后再深入下去。故障排除:架构师需要产品经理经验吗?石海峰:有产品经理经验不是关键。从个人发展的角度来看,初入职场,只要做好本职工作即可。三五年后,需要考虑差异化竞争,充分发挥自己的特长,这就需要在某个领域深耕细作,成为该领域的专家。接下来,为了发挥更大的价值,你需要和更多的相关角色打交道,能够换位思考,对不同角色的工作方式和投入产出有感性的认识。架构师需要知道团队中每个角色的侧重点是什么,不仅仅局限于自己擅长的领域,还要让整个团队了解你的设计思维,这样团队才能有更好的合作,形成合力。嘉宾介绍:石海峰,原壳牌金融服务小微企业生态CTO。长期在神州数码、亚信联创从事电信行业业务支撑系统集成工作。曾参与中国移动、中国联通多个项目,具有丰富的大型业务系统开发和实施经验。在当当网负责整体架构规划、技术规范制定、技术预研及推广工作。善于把握复杂的业务需求,提出创新的解决方案,参与多个重点项目的方案设计,并在项目中不断改造优化系统架构。负责技术委员会的组织管理,发现最佳实践,推动技术创新,开源产品,组织内外部技术交流。曾负责饿了么技术创新部产品研发团队,完成了多项创新业务项目和技术产品。曾在壳牌金服负责小微企业生态金融服务产品规划、技术团队管理、系统建设等工作。下一次公告将于3月2日晚上8点发布。本周三,【T·TALK】将举办第三场技术栈线上直播分享活动视频号。届时,《开源之道》的发起人、主要创作者、《开源之谜》的作者施施先生将为现场观众带来《开源项目如何走商业化道路》主题分享。作为一名观察开源近20年的资深开源布道者,史老师将从自己的角度出发,跳出技术,与大家一起探讨开源的兴起、开源的商业成功,以及开源的价值。开源未来发展的许多可能性。分享内容涵盖开源作者“删库”背后的故事解读、开源发展史回顾、软件交易逻辑分析、开源软件本质属性探讨、开源前景展望未来开源软件的全面商业化。感兴趣的同学可以扫描下方二维码添加小助手微信,提前预约直播时间。期待您的关注与支持!