阿里大咖首次分享:软件工程危机真来了?

“最浪费时间的事情就是给年轻人讲经验,该走的弯路其实一步也少不了,我们并不是希望大家不走弯路,而是希望大家能够意识到自己正在走弯路”,这两句话不是笔者总结的,是咱们这位阿里巴巴技术大咖说的。字面意思浅显易懂,背后的道理也让人清晰可见。

作为一个研发人员看到这一段话应该深有感触,学习了很多技术知识和架构理论,系统问题仍然会出现,只是或多或少或深或浅,重要的是能否意识到自己正处在问题中并主动去解决他,而作为软件工程本身从诞生到现在虽然发展了几十年,仍然面临着前所未有的危机。

软件工程危机的表现

1、软件需求基本很难满足,或软件生产进度严重失控,软件交付的质量很差,需求方和实施方一直处在矛盾对立面上。

2、软件的故障率很高,后续的可维护性级差,尤其是项目更换维护人员后出现问题则更加突出。

3、相关文档缺失或严重滞后于软件功能,导致相应功能的使用率和普及度不高,使得软件功能重复臃肿,越来越难以维护。

4、用户对软件的定位越来越模糊,导致软件呈亚健康状态发展。

由表及里,危机的根源是什么

任何事物都是有两面性的,一个软件或一个系统工具的诞生来源于需求,一个好的软件必是解决了一个或某个方面的核心需要才能发展起来,但成也需求败也需求。

需求是软件发展的动力,没有新需求或需求没有变化自然是不需要对软件进行任何改动的,但只要需求有变化就需要对软件引入变动,只要变动就会带来风险,甚至是从需求设计、评审、编码、测试、构建、发布链路的整个环节随意穿插,改变软件时间轴的时间,任意践踏规范。

这个时候就是考验软件架构师和研发实施人员能力的地方了,一旦基本功不扎实,就会出现连环事故,导致天不时、地不利、人也不和,而在这个时候一个好的架构师能够设计和重构出一个好系统,而一个差劲的架构师则可以毁掉一个好系统。

问题提出来了,怎么解决?

第一:合理的组织管理

第二:清晰的软件发展战略

第三:规范的流程与代码规范

第四:优良的系统架构设计

第五:适时地重构

上面五项解决方法中,合理的组织管理、清晰的软件发展战略是在公司或企业管理层面进行优化的,只要方向明确,目的清晰就可以及时优化;(PS:其实作为研发人员对这两项影响不大),规范的流程按照软件的交付节奏并根据实际业务选择下面其一即可:

1、原型模式:快速交付可用最小版本,认可后快速迭代继续优化

2、敏捷开发:分阶段、分批次、迭代式地实现需求,强调信任、协作、交互、拥抱变化。

下图是阿里、腾讯、百度、京东等大型互联网公司常用的敏捷开发流程规范,供大家参考(首次分享):

3、瀑布式:需要非常完善的产品市场分析、需求分析、特性分析,形成产品概要设计、详细设计、需求评审、编码、联调、测试、运维实施等流程。

代码规范无论是以哪一种标准为参考,只要大家遵守一套标准即可,如果没有可以参考《阿里巴巴Java开发手册》。

而优良的系统架构设计则凸显了架构师的能力,但“架构师”并非是一个明确的岗位,因为架构本身没有明确的对与错,只有因地制宜的架构设计,架构更多的是一种能力的体现,是所有研发人员或多或少都应该具有的能力,是在研发团队中具有系统把控力的大师,而近些年来,“架构师”被玩坏了:

1、有些架构师只会花框,缺乏实际编程的能力

2、有些架构师只会分任务,缺乏系统解耦的能力

3、有些架构师只会催任务,缺乏风险判断的能力

4、有些架构师只会PPT,缺乏业务洞察的能力

上面这四点并不是拥有左边的能力就不好,而是拥有了右边的能力才会发挥架构真正的魅力。

阿里大咖深入解读系统重构之道

作为软件危机解决方法最后一项的重构,对于软件一直是合理存在的,从代码的角度来说,好代码不是写出来的,而是改出来的。一个稳定而庞大的系统不是架构出来的,而是重构出来的。

只要系统架构设计出来,就一直在重新架构的路上,重构既要解决过去的问题,也要解决现在的问题,还能适度的解决未来的问题,但是一味地解决未来的问题,会使系统的风险、成本剧烈上升,所以系统架构是一种平衡的过程,而重构是合理的,因为:

第一:用户规模不断的扩大

第二:固有用户的自我进化

第三:商业竞争的残酷性

第四:技术栈的更新迭代

第五:研发团队的自身因素

以上种种都是从架构设计到架构实现再到重构都会现实面对的问题,这就给架构师和即将走向架构之路的研发人员提出了很多挑战。

2019云栖大会:听阿里技术大咖解读软件工程危机与系统重构之道

《阿里巴巴Java开发手册》、《码出高效》作者

阿里巴巴集团高级架构师 / 集团代码平台负责人孤尽老师

现场解读软件工程危机与系统重构之道

那么如何成为一名优秀的架构师并获得百万年薪 ?

通过阿里大咖的分享和解读,想要成为一名优秀的架构师,需要通过以下功法的训练,来达到目标:

第一项训练精准训练和掌握编程之道编程核心思维

不是所有的技术都是时间累积可以实现提升的,也不是所有的技术都是反复流水线一样的重复就可以提升。一旦陷入了代码搬砖模式,你不仅劳心费神,工作效率低下,而且无法满足公司的产品需求。

在这一项训练中,将训练你掌握什么样的编程思维,什么样的分析和解决问题的方法可以让你工作效率大幅度提升。算法、数据结构、设计模式这些基础内功不仅仅能提升你的逻辑思维和底层架构能力,还能在面试和笔试中帮你加很多分。

第二项训练系统化训练和掌握系统架构设计思想和方法

这个世界上没有最好的系统架构设计,只有最适合的系统架构设计,但是否能设计出适合业务发展需要的系统架构,这就需要系统化的掌握架构设计的能力,在这个部分,将从一下几个部分对架构设计能力进行强化训练

1、系统架构的目标:高可用性、高可扩展性、低成本、多快好省;

2、系统架构的原则:单一原则、DID原则、N+1原则、功能可开关、版本可回退等;

3、架构设计组成的关键点:业务架构、应用架构、数据架构、技术架构;

4、系统架构设计的演进方式;

5、在资源有限的情况下如何进行架构设计;

6、系统架构设计如何和项目管理进行关联并取得相应的平衡。

第三项训练结合企业真实场景,自己独立设计一套系统架构并进行架构演进

可能你之前也了解过一些系统架构知识,也知道系统架构的一些关键事项,但看的再多都不如从实践中获得真知。这部分讲根据企业的真实业务场景训练大家从业务架构、应用架构、数据架构、技术架构这几个方面进行入手,全面掌握系统架构的能力,主要从以下几个方面进行强化训练:

1、系统业务服务设计、隔离、基础服务下沉;

2、系统数据模型、数据对象的设计、数据表设计、数据库应用架构设计;

3、研发代码架构及系统分层和接口服务设计;

4、服务一致性设计、以及中间件选型和应用:

5、系统缓存架构设计;

6、各服务系统缓存服务设计;

7、系统自动化运维部署架构设计;

8、系统防止恶意攻击的预案设计等。

第四项训练深入架构进行各个环节的功能代码及部署实现

对于系统架构师,不仅能运筹帷幄设计系统整体的架构和系统演进路线,更能够实现具体的业务功能代码和服务部署,否则架构中存在的问题就无法提前预知和规避了,在这个部分将训练对具体业务实施和中间件使用的能力,确保遇到具体技术问题也能够及时有效的解决,这里将对以下架构中需要使用到的中间件和具体技术进行掌握:

1、数据库读写分离、数据库索引及数据库运行调优

2、Maven使用、Nginx负载均衡、CDN使用

3、Quartz、消息队列RabbitMQ、Redis集群、Solr搜索引擎集群、zookeeper、Docker+Jenkins

4、域名HTTPS安全证书安装、Jemter等中间件的掌握和使用。

第五项训练刻意练习,提升综合能力

技术人员的综合提升,不是仅仅完成现有的工作,一遍遍的重复,这样很容易陷入低水平重复的误区,还应该刻意做一些训练。将对以下方面进行【刻意练习】,不断突破自己的舒适区,提升自己综合能力,在职场上进步。

【刻意练习1】代码:每个人必须要多学多练、多敲代码,经常对感兴趣的开源项目代码进行review。

【刻意练习2】写作:每周一篇技术周报、总结近一周自己的工作学习所获,写文章是梳理技术知识的最佳途径。

【刻意练习3】讲解:很多人职场上受限的原因是因为不够open ,无法表达自己的思路,进而就无法跟优秀的人交流,这个往往是技术人员经常忽略的地方,需要不断和周边的人进行分享交流。

结合上面的五项训练并严格执行,就一定能够向一名优秀的架构师成功的迈出一大步。为了让大家快速系统的掌握BAT这些一线企业的核心架构能力,拥有更大的发展空间,因此我们将打造全国独一无二的Java高级架构师项目解决方案成长训练营。帮助想要成为架构师的你。

看到这里,想必你已经迫不及待地想报名参加了吧,别急!

在向你透露具体的报名程序之前,你必须知道,《Java高级架构师商业项目解决方案成长营 》计划不会向所有人开放,参与者必须符合以下条件:

1、你必须热爱编程,并具备奋斗者精神;

2、你必须拥有1年以上的Java开发工作或学习经验;

3、你必须愿意每周投入10小时以上进行学习和实践;

4、你必须具有很强的执行力,愿意听从我的建议,和成长营队友一起成长;

5、你每周必须写一篇学习或工作的技术文章(方向不限);

6、你必须有强烈的加薪加薪10万-20万以上以上以及升职的动力和愿望。

如果你觉得符合上述条件,可以直接在平台私信我哦!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 一、生命周期 一个事物一旦出生,就必然会长大,变异,一旦长大,就面临着衰老,接下来就是消亡了,这个过程就称为一个事...
    ZyBlog阅读 2,647评论 1 11