为什么大部分工程师都成不了优秀的架构师?如果他们纯粹精通编码,他们能成为优秀的架构师吗?如果你有这样的疑惑,就来听听Ant资深测试开发专家易泽是怎么说的吧。今天以泽跳出大型互联网公司的技术体系,从大局的角度谈谈对架构的理解。相信会对想成为优秀建筑师的同学有所启发。依靠丰富的中间件和成熟的框架,在大型互联网公司开发还是比较方便的。一线开发要做的就是不断的CP(COPY,PASTE),不断的从左到右适配业务。什么样的建筑师才能称为好建筑师?他至少要自己写OR维护一个上百万行代码的产品,体验没有架构的痛苦。只有经过反复的阵痛,才能深刻体会到架构的好处,才能有架构意识,才能更快的提升。坑踩多了,自然就知道如何避免了。前瞻架构如何保持超前3-5年?在实际项目中,经常看到有人把之前埋的坑填上,改名字:XX架构1.0?XX架构2.0,变成了新的架构。但是,它只是对原有问题架构的一个补丁,架构并没有本质上的改变。老坑还没有抹平,新坑不断。一个好的架构不是设计出来的,而是进化出来的。这就需要我们对技术保持敏感,时刻关注最新的技术,保持我们技术栈的先进性,配合公司的中长期战略,充分考虑未来业务的变化和发展几年。作为技术先行者,一定要当导演而不是演员,要有梦想和愿景,让大家自动追随,保持感情和信念,勇于创新。一个懂产品但不懂产品的架构师,无异于闭门造车,无法产生实际的产业价值。因此,切勿离开产品。一个好的架构师必须清楚地知道选择什么,做什么,放弃什么。架构师根据业务目标做出自己的判断和权衡是非常重要的,尤其是在资源不足、工期紧迫的情况下,需要在关键时刻做出决策,果断放弃一些内容。建筑师大部分时间都浑身是土,要在其中保持初心和平衡并不容易。当DAU只有个位数的时候,别谈***DAU的结构。在边界清晰、耦合度低、内聚度高的领域建模情况下,各种变更的成本会比较低。领域模型划分应尽量保证业务的高内聚和低耦合,划定领域边界,保证业务逻辑尽可能在一个领域模型内,尽量减少领域模型之间的业务事务,一个业务流程应该涉及尽可能少的领域模型。复杂系统领域建模能力:尤其是业务领域边界的划分问题。业务领域边界将直接决定架构中相关系统的边界。如果业务领域边界不清晰,系统边界也会因为模糊而引发一系列问题。问题。技术能力技术能力是最硬核。前面说了,写业务代码需要做的就是连续CP。并不是说业务代码没有含金量。编写好的业务代码是最基本的一步。写好业务代码后,再一步一步,由浅入深,掌握设计模式、分布式、微服务、性能优化,逐步熟悉和理解架构设计。然而,建筑之路艰辛而孤独,注定需要付出更多的努力。技术能力也决定了架构的深度:操作系统和编译原理是最基础的知识。不管编程语言怎么发展,这些都是最基本的。迷茫时,静下心来反复阅读。在目前主流的微服务架构中,很难准确把握服务拆分的粒度。需要遵循高内聚低耦合的基本原则,明确定义业务边界和数据接口,尤其要避免过度设计。设计模式有一个共同点,就是如何让程序设计巧妙、合理,以应对未来可能发生的各种变化,包括需求的变化、技术的变化等等。Docker容器化可以标准化和修复SA的体验。与传统的虚拟机不同,它不虚拟化任何硬件,而是在不同的docker容器之间隔离硬件资源。智能化依托大数据和算法,在解决一些特定的业务场景上是有效的,但也不能过头。环顾四周,现在很多产品和工具都带有“智能”二字。手里拿着锤子,看什么都是钉子。高可用、高性能高可用、高性能是优秀架构的必备条件。解决互联网架构中的高并发、高可用问题,也是工匠精神的最好体现。在架构设计之初,就应该考虑容灾能力、资产损失防控和自愈能力。系统上线前或大促前,需要进行各种优化:性能调优、WEB调优、JVM调优、DB调优、强弱依赖管理等,并通过主动发现的方式(全链路压测、容量灾难演练、资产损失演练),找出架构或设计中不合理的地方。优秀的架构不是设计出来的,而是通过不断的打磨演化而来的。后记在大型通讯公司发展八年后,转入阿里技术风险部。回想那八年,那是饥寒交迫的时期,并不觉得有多苦。看到优秀的设计和架构,我会通宵分析难题,反复写代码,累了就睡在桌子底下的行军床上。睡觉。编程考试也失败了,觉得自己不适合开发。后来在导师的耐心指导下,我重拾信心,相信笨鸟先飞的道理,比以前更加关注技术内部的实现细节。在比赛中获得第二名。重生后更致力于大网络效率、瘦身(运行时内存优化、堆内存优化、应用大小、应用启停速度、JVM优化等)、疑难问题解决、新技术探索等。我喜欢泛型编程和STL最多,结合设计模式,写出来的代码圈复杂度低,读起来特别舒服。记得有同学改过责任链设计模式,改回ifelse实现形式。我去打架,回滚了所有的代码。写代码容易,真正保护好代码却不容易。当时,该应用程序部署在Sun的Solaris系统上。分析疑难问题后,发现自己所学的知识远远不够,学习了很多操作系统、编译原理、汇编源码和CPU指令集……负责近年新产品的研发也深刻认识到,技术永远为商业服务。如果技术是为了技术,那就是自高自大。伟大的技术需要通过商业价值来体现。产品设计贯穿用户体验,靠技术让用户尖叫。【本文为专栏作者《阿里巴巴官方技术》原创稿件,转载请联系原作者】点此查看作者更多好文
