文章 答疑

从前端 Leader 到客户端 Leader

网名 rank,公众号「跨界码农」。现美团高级总监。负责美团平台 Web、iOS、Android 业务研发;App、Web 基础设施和组件建设;企业协作通信业务负责人。加入美团前是百度前端 FEX 创立者及负责人。
文章 答疑

最近工作变化较大,除了管理一个独立的产品业务外,还负责了美团 Web/iOS/Android平台业务研发。

就在大约 4 个月前,我接手了美团大平台的大前端工作。包括美团客户端 App,Web 端的平台业务,还包含美团各端的基础设施研发工作。也正式开始了 Web/iOS/Android 的大前端路。也许很多垂直业务团队和小型创业公司现在已经是这种大前端模式了,但平台+基础设施是比较大的团队(小一百人规模)还比较少见。所以现在这模式也算是一种探索吧。

在这篇文章里,我分享一下管大前端后的一些技术及管理心得。

一、先泼 React Native 冷水

我此前虽从事过 Windows 和后端开发,但专业领域还是在 Web 前端最久,所以我首先想分享给 Web 前端同学的是,虽然现有 React Native(RN) 类似的跨端技术方案,「似乎」RN 有一统天下的意思,但实际各公司生产环境里还都在试水,各端仍相对是独立研发的状态。

简单列几个主要问题:

  1. RN 质量问题,某些异常和 Crash 无法解决。要解决就必须吃透 RN 底层,对于研发团队来说技术质量不可控,这是个致命的问题。

  2. 两周一个迭代,维护升级成本高。问题根源还是源于「质量」,所以才会如此快地迭代。要在生产环境下用,意味着需要投入大量时间在追新版本;或在某个版本进行持续维护。这需要拿出额外的研发人力每两周合版保证 RN 质量。于是就有一定的拆衷方案,就是在交互复杂或表现细致的地方不做那么「细腻」。还有一种方案也就是 Weex 的办法,不能控制 RN,宁可自己造一个 RN。

  3. 无杀手级应用背书。据我所知至今还没有一个「知名」「用户端」「商业」App 完全用 RN 开发并超过半年以上。http://facebook.github.io/react-native/showcase.html 这个链接里收集了使用 RN 的案例,除 FB 外都是部分功能使用 RN。

这三个问题决定了成熟的商业产品不会轻易用它开发,只用于用户端少数几个刚需高频更新功能。到目前为止,线上我们实验结果已经将它逐渐下线转而采取了其他方案;RN 也目前还在偏企业侧的 App 应用里,但仍有些 Crash 解决起来很费劲。

我之前也在「微博」上提到了:

就目前 RN 的情况,最好不要大面积在 C 端产品上用。— 这是几千万日活 App 在此实验的经验。

从最早桌面时代到移动时代,跨端开发技术都有场景受限的历史(参看 Qt)。要实现跨端理想还有很远的路要走,这决定了在不同端上专业差异还比较大。

二、客户端的不同

客户端相比 Web 端不同,是客户端可以近一步拿到更底层的控制权。

1. 控制请

11月30日周三晚8点30分,GitChat团队开启来自美团技术高级总监,大前端技术负责人Rank的直播交流,以下是主持人英子将交流过程重新整理,记录下的分享者和用户之间对管理前端到客户端的经验等话题问答的精彩片段。


内容提要:

  • RN的方案不用,你们现在用什么方案,还是没有特别统一的方案?会考虑weex不?
  • 文中提到了要三端掌握精通一端,那么对前端来说最明显的应该是精通前端,熟练掌握安卓和iOS。这种情况,对安卓和iOS需要掌握到哪些程度,可以达到理想水平?
  • 假设到达了理想水平,而目前不论是RN或者weex,都是前端主导开发,端上调试底层接口和前端联调。不过无论从文中还是自己体验,都觉得这种模式以后可能会挂掉,那样的话,精通三端的人工作重心应当放在哪儿?
  • 我对游戏也挺感兴趣,如果Rank对游戏也有兴趣,可否从大前端角度,说说前端技术与游戏有什么融合点,毕竟走到最后技术都是相通的,可否能站在某种高度,可以同时掌握这两种开发技巧,而不是花两份功夫同时学习。
  • 问个别人经常问的,我初入前端,学得不太久,感觉CSS、JS、HTML还有各种框架信息量都很大,看知乎大神们对精通前端有不同的定义,Rank怎么定位精通前端的?
  • 老师作为大前端Leader,日常主要关注什么呢,工作内容有哪几块?
  • 最近在调研三端统一的问题,比方说RN,感觉最难处理的还是CSS这块,RN的样式这块较之CSS只能算一个很小的子集,所以不论是有Web先行,还是Native先行,CSS都会是一个无法绕开的大坑,有何建议?
  • 后端在前端的道路上走得很辛苦, 前端技术栈非常多,而Bootstrap做出来的没有那美。有什么好的建议吗?
  • Web端转大前端管理,如何平定Android和iOS的老人(包括:原来平级别的管理者,如果有),与之建立良好关系?
  • 你好,我也问个问题:开始Android开发一段时间了,想往中高级进阶,可以从您自身的进阶过程或招人所需要的技能,谈谈Android或大前端该如何进阶中高级开发吗?
  • 现在前端技术更新如此快,如何把握核心技术,或者说前端的核心是什么?
  • 对于现在前端技术栈,是全家桶好,还是一个框架解决问题?
  • 请问,随着设备的性能逐渐提高,对基于Cordova的WebApp的未来如何看待,是始终只能做一些简单功能,还是说可以逐渐替代世面上的大部分APP。另外对于Google的PWA技术如何看待(Progressive Web Apps),会是移动设备上WebApp的一个重大方向吗,特别是在安卓设备上?
  • 关于对大前端的技术栈,您觉得是大统一好还是百家争鸣比较好?对于文章中讲到的T型人才,应该就是团队培养人才的目标,那么有对这个培养路线做过规划吗?具体的路线想了解一下。
  • 文中说到团队抛弃了RN,那么还将RN作为关注的技术栈方向吗?毕竟我觉得这种跨端技术是未来的趋势!
  • 可能这个问题有点儿脱离文章,加入咱们团队后,一直觉得自己在时间管理方面很弱,感觉每天去推动,去沟通浪费了不少时间,请问一下在业务需求多的情况下,如何有效管理自己的时间,有没有什么诀窍经验传授给新人,这个问题一直想问大牛们,谢谢。
  • 从技术转管理的话,因为一开始管的人不多,所以技术和管理要一起做,但是一开始管理没有经验,花费了很多精力,但是又怕技术方面拉下,如果管理方面投入精力不够,这方面进步有很慢,请问这两方面如何进行平衡?
  • Rank能展望一下几年以后前端的工作方式和需要客服的挑战吗?
  • Rank对现在部门内的前端人员是怎么样的一个要求,业务方面和知识栈方面?
  • 对于手机端软件的持续集成工具你们主要用的什么?
  • 我看到文章中有说到前端在客户端Crash的时候无能为力,只能供工程角度上查问题。因为最近也遇到过前端页面导致App Crash的问题,但是前端常用的查看内存,CPU等方法,看不出任何问题。客户端也无法排查出问题的所在。您能分享下前端在客户端Crash的时候能采取哪些措施排查和解决问题吗?
  • 从前端Leader到负责整个大平台的工作转变过程中,就自身而言,您觉得最难的是什么?同时,我作为一个初级纯技术如果转变为管理者后,对于满怀技术信仰的我,还是想要把更多的时间放在技术研究上,对于我这种看法,您有什么建议或者意见呢?
  • 想问下平川老师,从管理一个端的团队到管理一个业务团队,有什么要注意的点?
  • 我想请平川老师再谈一下所谓的 T 型人才,往往针对的业务会比较专,如何培养发展成 T 型人才?T型人才在大公司里面是否有真正的独特价值?

即可阅读全文

打开微信"扫一扫",将本文章分享到朋友圈

快给朋友分享吧!

收藏 收藏

1236人已收藏