13
回答
【开源访谈】大漠穷秋:由 Angular 说起,看看前端的发展
华为云实践训练营,热门技术免费实践!>>>   

前端开发框架 Angular 目前在前端圈子的火热程度是有目共睹的,本期开源访谈围绕着 Angular 这个主题,我们邀请到了大漠穷秋老师,谈论了 Angular 目前乃至未来的发展、前端领域的发展、以及有关框架的选择等话题。

【本期嘉宾】

大漠穷秋,Google Angular developers PM。从业 10 年,5 年专业前端。著有《Ext江湖》、《ActionScript3.0游戏设计基础(第二版)》、《用AngularJS开发下一代WEB应用》、《迈向Angular2》四本书。对技术拥有无限的热情,爱学习,爱分享。曾在 W3CTech、海尔电器、北京用友、上海沪东中华造船厂、中国工商银行、中国电信、东软科技、Google GDG、开源中国等数十家组织或企业进行技术演讲,并在网络上制作了大量开源免费的视频教程,给开发者们带来了很大的帮助。

【访谈实录】

1. 老师先简单介绍一下自己吧

今年工作满 10 年,我的技术线比较有规律,前 5 年玩儿的 Java 这个技术栈,后 5 年基本上全部玩儿的前端。从 jQuery、ExtJS、Flex、Angular 一路玩儿下来的。

编程语言方面,在学校里面搞过一点汇编和 C,毕业之后基本没有再玩过。目前玩得比较溜的是 Java、AS3、TS 这些,一直以来最热爱的还是 Java,深深沉迷于 Java 背后的各种设计思想之美。

行业方面,10 年一共经历过 4 家公司,第一家小公司做电力自动化方向,后面 3 家都是做电信运营商业务。这也是南京这座城市软件行业的特色,南京的软件行业,最大的两块就是电力自动化(南瑞、南自、南瑞继保等)和电信运营商(华为、中兴、亚信等),互联网企业比较少(苏宁和途牛算是两个比较大型的),创业型的都是中小企业为主,南京的创业企业目前还没有成长为独角兽的案例。

2. 目前对于 Angular 的推广主要是做哪方面的工作?

我目前主要做 3 类事情:

第一类是编写开源项目、文章、视频教程这一类的在线学习资源(比如 NiceFish 系列项目https://git.oschina.net/mumu-osc/NiceFish)。

第二类是在各种开源组织和技术活动发表演讲。

第三类是去企业内部演讲,这几年下来已经讲过了 30 多家企业,所以我见过各种企业形态,也见过各种各样的前端团队,这一点是特别有意思的。(如果你的团队需要我现场去讲,请联系我。现场版绝对精彩,包您满意。)

3. 您觉得 Angular 的设计或实现上有哪些考究的地方?

新版本的 Angular 继承了老版本的一些设计理念,比如双向数据绑定、模块化等等。但是新版本的概念模型更加清晰,一切都是围绕着“组件化”这个主线展开的。

最值得一说的是,新版本采用了 TypeScript 作为开发语言,对于很多做行业应用的企业来说,这是一个巨大的福音。TypeScript 带来的强类型约束和模块化,让大规模的团队协作得以顺利展开,这也是为什么像ZTE中兴通讯这样的企业整体采用 Angular 作为前端技术基础的重要原因。

4. 对于 Angular 目前的情况乃至未来的发展有什么看法?

从全球统计数据来看,Angular 的受欢迎程度非常高,远远超越同类的竞争者。尤其在澳大利亚和印度,Angular 独占鳌头,大家可以自己去搜索相关的统计数据。

在中国,目前来看 Angular 的使用量比竞争对手低一些,但是中长期来看,我仍然坚定看好 Angular。

5. 前端开发的“轮子”现在有很多,甚至有“前端配置工程师”这样的调侃,您是怎么看待的?

“前端”作为一个专门的职位分化出来的时间不长,这种现象是正常的。“轮子”说明前端正处在快速发展过程中,对于开发者来说这是一件好事,如果哪一天像后端开发那样出现了大一统的架构,前端的薪资就要快速下降了。

6. 对于目前的前端领域有什么看法,您觉得 2017 年会有怎样的发展?

2017 年,全球范围来看,上演的剧目是“双塔奇兵”;国内来看,演的是“三国演义”,你们都懂的。我坚信 Angular 最终一定会是最受欢迎的框架,包括在中国!

7. 对于刚踏入前端的同学有什么建议?

因为目前的大学教育和实际的企业需求是脱节的,就我目前的了解,很少有高校会开设 JavaScript 和 CSS 相关的专门教程。而且这种状况在很长的一段时间里面看不到改进的可能性,所以像 BAT 这样的企业在招聘的时候非常强调基础知识是否扎实。对于前端这个职位来说,非常强调这两种基础:编程语言基础、UI(UX)基础。

正是因为这种产学脱节的状况,所以目前整体上来说,前端工程师有三种来源:一是后端工程师转型;二是设计师职位转型;三是自学成才或者培训班出来。

从后端转型来的这帮人具有非常强的编码能力,但是在审美这块比较弱一些。但是前端又是一个跟美学关系非常密切的工种,所以对于这种背景的同学来说,需要自己补一些关于设计、美学方面的基础知识,免得别人吐槽咱们审美品味差(我自己也属于这种类型,手动滑稽)。

从设计师职位转型而来的前端开发者,这部分同学在设计和审美方面具有很大的优势,很多还是知名艺术学校的设计专业毕业。缺点是编码能力需要提高,需要自己去补一些关于程序语言和编码规范方面的基础。

自学成才和培训班出来的同学学习能力比较强,缺点是有一些速成的味道,在编码和设计两个方面都需要再深入学习。毕竟对于真实的项目来说,前端并不是独立存在的,掌握一些后端开发的基础知识,对于项目开发过程中基本的沟通有好处的。

最后,这个问题在知乎上也有人问,我写过一个几万字的长文(多图)详细回答过这个问题,如果你想看更细节(啰嗦?)的回答请点这链接:https://zhihu.com/question/57951187/answer/155479465

8. 有关框架的选择或者比较的话题总会引发口水战,您是怎么看待的,或者对他们有什么想说的。

选框架是一件大事,要考虑各种因素,从我这些年的经历来看,我认为以下 3 个方面对框架的选择比较重要:

第一个方面,公司的业务场景。有一些企业是做 To C 业务的,这类企业对加载速度、用户体验、界面美观这些方面有非常苛刻的要求,但是界面上的数据不复杂。这种场景下尽量选一些轻量级的 library 比较合适,甚至直接用原生的 JS 来直接解决。另一类企业专门做 To B 业务,比如各种 BSS、CRM、进销存、财务之类的系统,这类系统不对公众用户开发,只是企业自己的员工使用。本质上是用来处理大量数据的,所以界面和业务流程极其复杂,对美观的要求不太高,这种系统比较适合采用重量级的前端框架。

第二个方面,团队本身的因素。上面提到,最近这些年,我见过 30 家以上的企业,见过各种技术团队。有一些企业有专职的前端开发,有一些企业偏向于所有人都是全栈工程师。而且每个人对技术的掌握程度都不相同,在选框架的时候这也是重要的参考因素,尽量不要造成水土不服的状况。

第三个方面,技术框架本身的发展前景。有很多技术框架都出现过突然“弃坑”的情况,对于中小企业和创业团队来说,如果所选的技术框架出现这种状况,那是非常痛苦的事情。所以,我自己的感受是,中小企业和创业企业,尽量跟着巨头走。当然对于 BAT 这种体量的企业,或者对于比较土豪的企业,你们请随意。

最后,这个问题非常典型,我在知乎上也写过一个长长的回答,如果你不怕啰嗦请点这里:https://zhihu.com/question/59039141/answer/162904672

举报
局长
发帖于6个月前 13回/4K+阅
共有13个答案 最后回答: 6个月前

在澳洲的表示,大漠说的没错,vue没人用啊没人用。虽然大家说,会一个,就会很快学会另外一个,但是大家都懂,三个框架实现不一样,api不一样,生态不一样,学习曲线不一样,维护团队不一样,甚至面对的都是不同用户。和国情有关,澳洲这边做sass的公司很多,非startup的小公司,5-10个人规模的团队,都会选择angular,完善的社区,海量开发人员,对项目开发和后期维护都很友善。react的工作和开发人员大概只有angular的一半,vue呢,肯定有人用,不过可能只有angular的1/30到1/40。很多公司不愿意承担风险,只会选择随大流的技术,这样技术人员离职可以很快的补上空缺。国内不一样,几千上百人的开发团队,有的前端就有小100-200号人,完全可以养一些人来做框架的研究,不太会担心跑路问题。而且,vue应该是github上国人主导的star最高的项目了,绝对是质量的保证,作者也很nice,积极在国内外的宣传和布道,还和ali合作共建weex,所以vue在国内成功不是偶然的。我本人也是vue的铁杆粉丝,入门简单,guide深入浅出,源代码功能和耦合做的非常好,配套完善,无论新老项目,都能非常简单的集成。对绝大多数项目和开发者来说,是这三个库当中性价比最高的一个。但是,东西卖的多少和质量好坏没有必然的联系,google fb这种大厂出品的东西,不用宣传,一群人也会屁颠屁颠跟着star。如果你就想混口饭吃,一劳永逸,那么你就去学大众流行的东西。如果你对技术实现感兴趣,最好是三个都了解一下,都拿来做一做项目,对比他们的不同。根据项目的情况合理选择使用的技术,才能达到事半功倍的效果。

--- 共有 1 条评论 ---
大漠穷秋谢谢你来补充,您在澳洲的实际所见非常能说明问题。 6个月前 回复

引用来自“talent-tan”的评论

“双塔奇兵”,“三国演义”分别指啥?

嘉宾的意思大概是:全球范围内是 React 和 Angular 竞争;国内范围内是 React/Vue/Angular 三者竞争。

 

顶部