责编:陈秋歌,关注前端开发领域,寻求报道或者投稿请发邮件chenqg#csdn.net。
欢迎加入“CSDN前端开发者”微信群,参与热点、难点技术交流。请加群主微信「Rachel_qg」,申请入群,务必注明「公司+职位」。另可申请加入CSDN前端开发QQ群:465281214。
2016年,SDCC(中国软件开发者大会)相继走进了上海、深圳、成都、杭州各地。11月18日-20日将在北京完美收观。作为大会的重要分专题,前端开发专题已邀请到台湾知名前端技术专家、澳大利亚悉尼企业Stackla前端团队Leader蒋定宇。
会前有幸采访到蒋定宇,两年前他加盟澳大利亚悉尼的Stackla企业,担任前端团队Leader。本次专访他为我们讲述了国外前端开发者的生存现状、别样人生,同时作为国内前端技术大牛,也将为前端开发者带来了更多启迪性的建议。
蒋定宇,作为SDCC的老朋友,有着多达12年的前端开发经验。曾担任雅虎前端工程师与传教士,目前在澳大利亚悉尼的 Stackla 担任前端团队 Leader。专注于持续改善架构、开发环境、注重维护性、规范、模组化、自动化等技术方向。喜好与人分享,成立“台湾开发者在澳洲”社群,曾在SDCC、WebRebuild 等研讨会上进行分享。
CSDN:首先请您做下自我介绍,目前所从事的工作及主要专注哪些技术领域。
网路代号 josephj,前端开发经验 12 年,目前在澳大利亚悉尼的 Stackla 担任前端团队的领导。
Stackla 平台主要专注于社交媒体资料的撷取、筛选、并显示。当品牌的使用者透过社交媒体分享,品牌公司则可将此内容转化成活广告、达成行销的目的:「让你的顾客替你说故事」。
在公司我主要则是负责管理界面面的制作、以及显示 (Widget、Event、HostedHub) 部分,此外也负责了前端团队的管理。
个人感兴趣的技术领域包括持续改善架构、开发环境、注重一致性、维护性、规范、模组化、自动化等议题。
CSDN:两年半前,您离开熟悉的环竟,加入澳大利亚Stackla。这个期间,给您带来的最大的变化是什么?
生活与做事方法有了很大不同
过去的生活几乎都是被工作填满,即便假日也要花不少时间专研技术或加班。但来到澳大利亚后,生活作息变得很正常,每天工作朝九晚五,变得很多时间可以花在生活上:买菜做饭、中间总是会跟朋友出去小酌、周末则会去郊外享受悉尼的好天气与好山好水。
能有多的时间在生活上,很重要的就是做事的方法。我们国内的文化就是要做到 90、甚至 100 分,不管在技术或产品规划上都会花比较多的时间。而这边我们真实奉行了 MVP (最小可行性产品),也愿意在功能或实际操作上做出取舍,不纠结,让客户提早做出反馈。我们也能为了专注产品平台、而砍掉 Professional Services (替客户做客制化) 这个能有立即收益的服务。也即将砍掉先前有许多客户在用的功能、要求他们移到新平台上。这些都是说起来简单,但实行起来却很困难的一件事情,但却对公司的效率有极大的助益。
我本身也减少了对技术的不断追求的偏执,进而转变为碰到问题时再去思索解法。
CSDN:在您看来,国内与国外的前端开发环境有啥不一样?国外的前端工程师生存状态如何?
国内对于技术的更迭速度较快,澳大利亚这边则是实用导向。
例如当 React 初期国内引起风潮时,在悉尼这边并没有太大的感受,大部分人的首选或工作职缺都还是 Angular,因为能够写 React 的人才在市场上当时并不普及。而已经有既有架构的公司通常不会贸然地改变架构、避免付出不必要且巨大的成本。国内则常听到许多改写的例子。对于想要追求技术的人,在国内或美国会是比较好的环境。但对想要学习怎么有效率地工作、产品的实践、没有那么大的技术执著,这边的环境是比较好的。
日益盛行的前端
澳大利亚的大公司不多,但新创公司却很盛行,因此我两年半前刚到时,前端工程师并不算是一个非常普及的角色,大部分的职缺还是偏向全栈工程师,尽速把产品给做出来。而通常有前端工程师时,代表了产品已经开始迈入稳定阶段了(我自己也是Stackla 公司成立 1.5 年后的第一个前端工程师,隔了近两年才再继续找了第 2 个与第 3 个前端)。这样的情况跟国内新创企业一开始就找前端有蛮大的不同。
现在就业市场情况则明显改变,前端需求高,甚至看到有部分资深前端工程师岗位的薪水高于后端,好的前端工程师在某些程度是奇货可居的。我想前端的复杂度与流畅 App 般的需求是主要影响的原因。
多元文化的环境,沟通能力比技术来得重要
可能是因为教育的影响,澳大利亚本土居民担任工程师的比率并不高。曾经或目前在公司担任工程师的我的同事有德国人、巴西人、阿根廷人、印尼人、伊朗人、纽西兰人、保加利亚人、中国人,以及澳洲人。大家的行事风格会有所不同,愿意连接团队,有好的沟通能力要比技术强重要许多。
Contractor 的盛行
国内所谓的派遣工,通常会联想到薪水不高且没有保障。但这边反而很多厉害的工程师会选择做 Contractor,薪水很高也不用被公司所绑住、也不用担心需求的问题、生活也有弹性。目前公司为了满足客户客制化的需求、让 In-house 的开发者可以专注在产品上,同样也是与许多 Contractor 一直保持联络。
CSDN:请您谈谈Stackla前端团队组成,前端开发流程和前端架构是怎样的?
CSDN:您如何看待Angular、React这两大热门前端框架?面对众多的前端框架,企业该如何选择?
两者抽象化的程度不同
两者同样对 JavaScript 做了很大程度的抽象化:也就是隐藏了许多细节,让开发者能够专注在产品开发上,但抽象化的层级是全然不同的。
React 所需导入时间短,但基本上它只是个库,概念简单,大部分人在短时间内就可上手,解决复杂界面的实作问题。也因此它很适合新创团队快速开发,你可以在开始有其他问题时再导入其他抽象层(例如 Redux 或 Flux),而非一开始就寻求最佳解答。
Angular 则真的是一个框架,尝试解答大多数的问题,也有比较严谨的模式。想当然也需要花比较多的时间导入,比较适合比较成熟的公司。在有熟悉此框架的架构师带领,有效地利用框架的功能,也让再有众多成员时比较容易有一致性的规范或模式可以跟随。
如何选择?
对于决策者来说:
对当时的 Stackla 来说:我们在用传统 jQuery + DOM 撰写 UI 上已经碰到瓶颈。现实是:前端工程师只有我一个,我得忙项目,其他的工程师对于较于复杂的前端架构接受度低,但前端仍然需要他们的贡献。也因此我的选择是整合快、上手快、成就感高的 React,让每个人很能快地带来产出。半年后我们碰到 State Management 的问题,才再引入 Redux 来解决。若一开始就导入 Angular 或 React + Redux 对当时的我们来说是不切实际的。
我有一个朋友的公司,幸运地获得长时间的重构资源,有不少的前端工程师,他们则是全心专注把 Legacy Code 转移到 AngularJS 上。我的想法是,框架在大的团队能带来不少好处的:因为如同其「框架」的名称,其实也带来了有纪律的限制,较能专注于产出、减少对于最佳实作的争执。
CSDN:在您看来,前端开发者面临的挑战主要有哪些?该如何应对?
前端很年轻,仍然不断地在快速迭代,一个流行的工具,2-3 年后可能没人再提 (ex. grunt, RequireJS)。一个最佳实践,数年后将完全被推翻或取代 (ex. OOCSS, HTML in JavaScript, JavaScript MVC, CSS in JS),要在前端求生存、确实是很不简单的一件事情。
但身为前端开发者的我们必须理解这背后代表的意义:
有人可能会抱怨这是个最坏的时代(学不完的技术),但对于许多人来说何尝又不是最好的时代(需求高、一直有新概念、冲击、成长)呢?保持开放、保持好奇心就是最好的应对方式了。
CSDN:面对技术的快速迭代,前端开发者应该保持怎样的心态,应对策略是什么?
CSDN: 11月18日,在SDCC 2016前端开发专题上,您分享的话题是?听众将通过该演讲获得哪些收益?
演讲内容与这份采访内容其实很类似:在澳大利亚从事前端技术工作的诸多心得,最佳实践技术的众新思索,了解国外的前端发展状况。
目前SDCC 2016前端开发专题的所有演讲嘉宾已全部确定,以下为嘉宾名单及演讲议题(排名不分先后),详情请见:SDCC 2016前端开发专题讲师、议题大揭底。
想与这些专家现场面对面进行技术探讨吗?目前SDCC 2016大会门票8折销售中,团购更有优惠,是给辛勤工作一年的你,年终最好的礼物,或许这样,SDCC才能更真切地服务好开发者。【注册参会】