Stackla前端团队Leader蒋定宇:国外前端开发者的别样人生

Posted CSDN

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Stackla前端团队Leader蒋定宇:国外前端开发者的别样人生相关的知识,希望对你有一定的参考价值。

2016年,SDCC(中国软件开发者大会)相继走进了上海、深圳、成都、杭州各地。11月18日-20日将在北京完美收观。作为大会的重要分专题,前端开发专题已邀请到台湾知名前端技术专家、澳大利亚悉尼企业Stackla前端团队Leader蒋定宇。


会前有幸采访到蒋定宇,两年前他加盟澳大利亚悉尼的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前端团队组成,前端开发流程和前端架构是怎样的?


蒋定宇:


前端团队组成:


目前连我一共有 3 位前端工程师,但不只是我们在写前端,另外的 4 位全栈工程师多少都会做一些前端的工作。这跟过去我在国内,分工清楚有很大的不同。但这是我们一路走来的模式,贸然改变为清楚分工不见得是个好事,但前端也在人手多后日益复杂,如何协调是我现在最大的难题之一。


前端架构: 


  • 前端元件 UI Kit:我们自己的包含过去类似 Bootstrap 的 jQuery 插件、与现在的 React 元件两套并行,目前有一位热心的同事在做维护。

  • 显示端 Widget 与 Event:仍然采用 jQuery + Mustache 的模式,API 界面也走传统的 OO 界面,事件与 Callback,为的是让客制化简单。

  • 管理界面 Admin Portal:仍有许多传统的作法 (jQuery + SASS + grunt-usemin),而所有新的项目或改写都已经使用 Webpack + Babel + React + Redux (redux-observable, ducks modular, redux-action, normalizr) + CSS Module (Webpack style-loader with local scope)。


前端开发流程: 


  • 不同的项目会有不同的 WIP 周会,初期由我去参与会议理解需求,后期就由成员自己出席 Demo、Review。

  • UI Kit 前端元件的制作也是在项目中有需求才会发生。

  • 我们走看板流程:一开始由我来开票,尽可能让每张票不超过 4 小时,才能在每天早晨 Stand-up 都能看到进度。

  • 完成后由彼此在 GitHub 做 Code Review:除了要符合规范外,更重要的是从中探索改进之处。

  • 若有改进之处(写法、规范、抽象),我们会在前端自己的周会提出讨论,决定是否纳入规范或常态使用。

  • Code Monkeys Session: 对于已经有结论的可重构代码,不太需动脑但有明显助益,我会安排代码猴子的 Session,例如我们导入 ESLint、CSS Module、Unit Testing、改变目录结构,都是透过此方式:一起重构,让团队每个人理解规范与目标。


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:面对技术的快速迭代,前端开发者应该保持怎样的心态,应对策略是什么?


蒋定宇:


  • 解决问题而非制造问题:技术狂热者很容易为了新潮、不考虑成本引用新技术,这反而对团队跟自己都带来很大的负担。

  • 跟团队一起成长:独乐乐不如众乐乐,最开心的时候往往不是自己习得一门高深技术、反而是大家都能得到东西。

  • 规划自己的学习路径:每个人都有不同的天赋与兴趣,你可以多花一些时间在自己有领域的项目上面,但对于重复的东西则是真的要用到时再来学习即可(例如你已经会了 grunt,你不一定要深入 gulp,真的要用时再来学吧!)。

  • 保持谦虚没有最佳解答。

  • 开放心态。


CSDN: 11月18日,在SDCC 2016前端开发专题上,您分享的话题是?听众将通过该演讲获得哪些收益?


蒋定宇:演讲内容与这份采访内容其实很类似:在澳大利亚从事前端技术工作的诸多心得,最佳实践技术的众新思索,了解国外的前端发展状况。


责编:陈秋歌,关注前端开发领域,寻求报道或者投稿请发邮件chenqg@csdn.net。 




目前SDCC 2016前端开发专题的所有演讲嘉宾已全部确定,以下为嘉宾名单及演讲议题(排名不分先后),详情请见:SDCC 2016前端开发专题讲师、议题大揭底


  • Stackla前端团队Leader蒋定宇 

    演讲主题:不断归零的前端人生

  • QQ音乐&全民K歌高级工程师袁聪 

    演讲主题:全民K歌React Native最佳实践

  • 饿了么Node Team负责人黄鼎恒 

    演讲主题:纯手工搭建一个高性能实时监控系统

  • 360奇舞团前端工程师钟恒 

    演讲主题:使用Vue.js 2.0开发高交互Web应用

  • Ruff架构师、JavaScript专家周爱民 

    演讲主题:有前端思想的物联网系统架构

  • 58到家高级前端工程师周俊鹏 

    演讲主题:基于webpack的前端工程解决方案


想与这些专家现场面对面进行技术探讨吗?目前SDCC 2016大会门票8折销售中,团购更有优惠,是给辛勤工作一年的你,年终最好的礼物,或许这样,SDCC才能更真切地服务好开发者。【阅读原文立即参会】

以上是关于Stackla前端团队Leader蒋定宇:国外前端开发者的别样人生的主要内容,如果未能解决你的问题,请参考以下文章

if 我是前端团队 Leader,怎么制定前端协作规范?

前端开发Leader/资深前端开发 - 职位描述

PPTVue.js 团队成员蒋豪群:Vue 高效开发之路

什么是优秀的前端团队?

一个小厂前端 Leader 如何筛选候选人?

优秀的前端团队是什么样的?