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

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

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

会前有幸采访到蒋定宇,两年前他加盟澳大利亚悉尼的Stackla企业,担任前端团队Leader。本次专访他为咱们讲述了国外前端开发者的生存现状、别样人生,同时做为国内前端技术大牛,也将为前端开发者带来了更多启迪性的建议。web

受访嘉宾介绍

图片描述

Stackla前端团队Leader 蒋定宇redux

蒋定宇,做为SDCC的老朋友,有着多达12年的前端开发经验。曾担任雅虎前端工程师与传教士,目前在澳大利亚悉尼的 Stackla 担任前端团队 Leader。专一于持续改善架构、开发环境、注重维护性、规范、模组化、自动化等技术方向。喜爱与人分享,成立“台湾开发者在澳洲”社群,曾在SDCC、WebRebuild 等研讨会上进行分享。gulp

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

图片描述