返回 登录
0

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

责编:陈秋歌,关注前端开发领域,寻求报道或者投稿请发邮件chenqg#csdn.net。
欢迎加入“CSDN前端开发者”微信群,参与热点、难点技术交流。请加群主微信「Rachel_qg」,申请入群,务必注明「公司+职位」。另可申请加入CSDN前端开发QQ群:465281214。

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前端开发专题上,您分享的话题是?听众将通过该演讲获得哪些收益?

蒋定宇:

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


目前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才能更真切地服务好开发者。【注册参会

图片描述

评论