Ali large coffee for the first time to share: Software Engineering crisis really come?

"The most time consuming thing is to talk to young people experience, the detour is actually a step and ultimately, we hope that we are not without detours, but I hope we can realize that they are detours", these two words are not the author summary, this is our big coffee technology Alibaba said. Literally means easy to understand, the reason behind it also makes people visible.

Ali large coffee for the first time to share: Software Engineering crisis really come?

 

As an R & D staff to see this passage should be emotionally, learn a lot of technical knowledge and theory of architecture, system problems still occur, but more or less, or deep or shallow, it is important to realize that they are in the can and take the initiative to solve the problem in him, and as a software engineering itself from birth to now has developed for many years, is still facing an unprecedented crisis.

Performance software engineering crisis

1, the basic software requirements difficult to meet, or software production schedule seriously out of control, very poor quality software delivery, implementation of demand-side and the opposite side has been in the contradiction.

2, the high failure rate of software maintainability subsequent differential, especially after the problems with the project to replace the maintenance personnel is even more prominent.

3, the relevant documents are missing or seriously lagging behind in software functions, resulting in usage and popularity of the corresponding function is not high, making the software function repeat bloated, more and more difficult to maintain.

4, users locate the software more and more blurred, leading to the development of software in a healthy condition.

Ali large coffee for the first time to share: Software Engineering crisis really come?

 

Outside to the inside, what is the root cause of the crisis

Everything has two sides, the birth of a software tool or a system derived from the demand, a good software must be solved or a certain core aspects of the need to develop, but also to demand loser demand.

Demand is the driving force of software development, no new requirements or demands no change of course does not require any software changes, but as long as there are changes in demand for software will need to introduce changes, as long as the changes it will bring risks, even needs from design , review, coding, testing, construction, publishing the entire chain link random interludes, software changes the timeline of the time, any violation of norms.

This time is the test software architects and implementers R & D capabilities place, once the basic skills are not solid, there will be a chain accident, the days leading up from time to time, to negative, and people do not, but at this time a good architect can design and reconstruct a good system, but a bad architect can ruin a good system.

Issues brought up, how to solve?

First: rational organization and management

Second: Clear software development strategy

Third: standard process with code specifications

Fourth: good system architecture design

Fifth: timely reconstruction

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

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

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

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

Ali large coffee for the first time to share: Software Engineering crisis really come?

 

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

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

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

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

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

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

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

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

Ali large coffee for the first time to share: Software Engineering crisis really come?

 

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

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

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

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

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

第三:商业竞争的残酷性

第四:技术栈的更新迭代

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

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

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

Ali large coffee for the first time to share: Software Engineering crisis really come?

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ali large coffee for the first time to share: Software Engineering crisis really come?

 

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

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

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] deliberate practice to explain: The reason a lot of people in the workplace is limited because not enough open, unable to express their own ideas, and then you can not communicate with good people, this is often the local technical staff often overlooked, requires constant and around people share exchange.

The above combination of five training and strictly enforced, it will be able to successfully taken a big step towards a good architect. In order for us to quickly grasp the core system architecture capabilities BAT these first-tier companies, with more room for development, so we will build the country's unique and advanced Java solutions architect project grew training camp. Help you want to become an architect.

See here, surely you can not wait to sign up for it, do not worry!

Ali large coffee for the first time to share: Software Engineering crisis really come?

 

Before you disclose the registration process, you must know, "Java Senior Project Architect Business Solutions Development Camp" program will not be open to all, participants must meet the following conditions:

1, you have to love programming and have the striver spirit;

2, you must have more than one year of experience in Java development work or study;

3, you must be willing to invest more than 10 hours per week to learn and practice;

4, you must have a strong executive power, willing to listen to my advice, and Development Camp teammates grow together;

5, you have to write a weekly study or work in technical articles (not direction);

6, you have to have a strong pay raise over 10 million -20 million or more, and the power and the desire for advancement.

If you feel that meet the above conditions can be directly in the platform private letter to me!

Guess you like

Origin www.cnblogs.com/icodingedu/p/11708354.html