ShannonChenCHN/eureka

线下活动(2018)

ShannonChenCHN opened this issue · 4 comments

  • Code 技术沙龙 - AI (2018.01.14)
  • WOWO 英语沙龙(2018.01.21)
  • 饿了么技术沙龙 - 移动专场(2018.03.10)
  • WOWO 英语沙龙(2018.03.11,话题:灵异事件,老师:Cathy)
  • WOWO 英语沙龙(2018.03.25,话题:减肥,老师:Cathy)
  • Code 技术沙龙(2018.04.07)
  • 美团技术沙龙 - 新思路打造移动端高效研发体系(2018.07.21)
  • 2018 杭州·云栖大会(2018.09.22)
  • 饿了么技术沙龙(2018.10.27)
  • 2018 携程技术峰会(2018.11.23)

其他

线下活动(2017)

Code 技术沙龙(2018.04.07)

wechatimg206

wechatimg205

美团技术沙龙 - 新思路打造移动端高效研发体系(2018.07.21)

因为我目前主要的技术实践是 iOS 开发,所以关注的是第一个和第三个 topic。

Picasso

  • 本质上跟 RN 的原理一样,用 TypeScript(实际上就是 JS)开发,然后用 web 引擎去解析,调用原生的代码
  • Picasso 跟 RN、Weex 的区别:
    • 比 RN 更轻量
    • 布局理念不同:RN 用的是前端的思路,也就是 css + flexbox;而 Picasso 采用的是用 DSL 写视图渲染信息,然后再通过 JSCore 传给原生去渲染,传到原生这边时已经是原生这边可以直接用的 UIColor、UIFont、frame,所以说 Picasso 的布局主要是基于原生的思维方式
  • 特点:
    • 动态化
    • 号称是性能非常好,甚至比直接用原生写还要好(不知道怎么得出这个结论的)
    • 开发调试时支持 live reload
  • 我的一些猜测:
    • Picasso 框架仅仅是一个 UI 框架,在动画、IO 操作、网络编程、页面间通信等方面都不支持
    • Picasso 相比 RN 来说,更加轻量,功能更贴合美团自家的业务,所以主要适合用来写活动页
  • 延伸阅读

持续集成

  • 提高持续集成的效率
    • 主要耗时
      • pod install 生成工程
        • 解决依赖管理问题:消除间接依赖,只有扁平依赖,只取最新版本的库(所有的第三方库都是自己管理)
        • 自定义 podspc 解析工具,提高解析效率
        • 多线程下载 pods,缓存依赖包、备份下载源
      • 编译链接
        • 采用 lib 构建再集成取代源码集成的方式
  • 静态检查体系
  • 自动化流程
  • 感受:
    • 当需要提高开发效率时,每个环节都要去深入了解,所以,CocoaPods 的原理和编译还是很有必要了解的
    • 除了去学习一些现有的方案,比如 CocoaPods、RN,也可以尝试自己去实现一个类似的方案(仿写、修改等等)

2018 杭州·云栖大会(2018.09.22)

关键词:小程序、快应用、浏览器、web 容器、跨平台、Flutter、性能优化

这是我第一次参加云栖大会,这次特地很早就买了门票,主要是为了去感受下气氛,顺便逛一下杭州、阿里园区。

去之前只买了 22 号单天的票,也是大会的最后一天,因为那天正好是假期,而且还有移动开发专场。21 号晚上过去杭州后,在灵隐寺附近的民宿住了一晚,第二天一早便去去了云栖小镇。云栖小镇离市区有些远,从灵隐寺坐公交过去差不多花了 1 个多小时,当时坐着汽车在梅山的山间公路走了很长时间,景色蛮不错,杭州市区有这么一大片绿林,真是杭州市民的福气。

img_2426
img_2463

上午到了会展中心后直接就去了移动前端的专场,见到了传说中的天施,下午的讲座主题我基本上都不太了解,就随便选了一个 ET 大脑视觉专场,听了 1 个多小时感觉没什么意思,于是就去展馆里逛了一下午。

上午的移动前端专场有以下几个讲座:

  • 从技术到生态:打造手淘下一代开放式内核架构(天施,淘宝)
  • 淘宝轻应用开发框架 Rax2.0介绍(曹元彦,淘宝)
  • 快应用平台体系的探索之路(董红光,小米)
  • 游戏化探索:淘宝小游戏技术引擎和框架介绍(徐远同,淘宝)
  • 服务Web开发者:U4内核开发平台化探索(李英各,UC)
  • Profiling your Flutter Apps - Flutter应用性能分析(李宇骞,google)

img_2428
img_2430

1. 从技术到生态:打造手淘下一代开放式内核架构

img_2431

天施在开场的时候,提到阿里技术未来的发展目标是,阿里开放的是大家都能用的上的技术,而不仅仅是适用于阿里自己的技术。怎么实现这个目标呢,首先就是内外一体化,标准化。这一点我不太了解阿里目前的情况,但是这让我想起了 Web 浏览器的发展史,也是各大厂商各有各的标准,结果受苦的是广大开发者和用户。

接着介绍了手淘的发展史,开放式内核演进。说实话,这其中大部分的内容我都没听太懂[捂脸]。

天施表示,淘宝的接下来的方向是做生态,要从一个 app 变成一个母体,也就是说,淘宝不再是一个简单的 app,而是可定制的、可编程的平台,一个创新的孵化器,就像微信小程序这样。中间还提到了一个店铺装修的例子,倒让我想起了我们团队前段时间做的酒店店铺装修,我在想,如果我们能够把店铺装修的能力赋给运营、甚至商家自己,这样的产品是不是更有生命力?

从淘宝的发展过程不难看出,技术架构的演进源于实际业务需求的发展,同时技术的进步也促进了产品的创新。

2. 淘宝轻应用开发框架 Rax2.0介绍

Rax2.0 是一个前端框架,这个框架的目标是:

  • 平民化:减低技术门槛
  • 高体验
  • 可移植

元彦在介绍 Rax1.0 时,提到了 DSL 的演进,他们将 DSL 层从 React 改成了 Vue。这一点上,由于对前端开发不算熟悉,所以我不太理解 React 和 Vue 在语法层面上有什么明显的差异性。

另外,元彦介绍了下他们开源的一个前端应用构建工具——飞冰,这个工具提供了丰富的模板,可以快速搭建中后台应用。

最后介绍了 Rax 的性能优化,提到了异步绘制和 web worker ,这里跟移动端原生的性能优化有异曲同工之处。

3. 快应用平台体系的探索之路

快应用与 web app 、pwa 的区别在于,pwa 仍然是一个由浏览器引擎渲染的,而快应用是使用 js 引擎解释、原生渲染的,类似于 React Native、小程序的机制,只不过快应用是系统别的容器。

不同于传统 app 的先下载再使用 ,快应用是使用即分发。坐我旁边的小米员工还用小米手机给我演示了快应用的使用,打开应用商店,搜索想要的快应用,可以直接打开使用,还可以添加到桌面。

快应用有不逊于原生的体验,又无需下载,使用方便,看上去很适合初创型产品。用小米员工的话来说,微信小程序只能依托于微信,而快应用是系统级别的小程序。

但是,微信小程序正式因为只依赖于微信,所以既可以在 Android 平台上使用,又可以在 iOS 上使用,而快应用只是在部分 Android 手机上才能支持。除非你给开发者和用户足够的诱惑,快应用才能真正有属于自己的市场。

4. 游戏化探索:淘宝小游戏技术引擎和框架介绍

这里主要介绍了一下淘宝小游戏的使用场景、引擎性能测评。

值得注意是的,涉及到渲染性能时,基本上都会涉及到多线程、异步渲染。

5. 服务Web开发者:U4内核开发平台化探索

img_2439

李英各首先介绍了一下 web 前端开发的角色,以及 web 开发的发展方向:

web 前端开发不会死,反而会越来越蓬勃。

img_2440

然后着重介绍了 Web 性能问题剖析,其中提到了一个观点,can't agree more:

性能优化分为不同层面:引擎框架层面、应用业务层。最近几年 web 引擎的性能已经有了大大的提升,其实,我们目前遇到的绝大多数的性能问题都是业务开发者自己造成的。

6. Profiling your Flutter Apps - Flutter应用性能分析

img_2446

Google 工程师李宇骞开场简单介绍了 Flutter 的技术架构、原理。Flutter 绕开了原生的图形框架(iOS 的 UIKit 和 CoreGraphics,Android 的 skia),而直接调用自己的 skia 框架进行图形渲染,所以拥有媲美原生的高性能。

李宇骞接着现场演示了如何分析 Flutter 应用的性能,并分享了一些 tips。Flutter 的性能分析是直接在 Chrome 中进行的,可以精确地看到每一个函数/方法的执行耗时,从演示效果上有点 Instruments (Apple)的感觉了。

从目前的业内反应来看,Flutter 并没有向之前 React Native 那样的火爆效应,毕竟 Flutter 没有像当初的 React Native 那样,具备其杀手锏足以让开发者动心,另外,在企业项目的实践开发中使用新技术具有一定的成本。

小结

  • web 开发依然是主流
  • 永恒的话题
    • 用户体验(性能优化)
    • 开发体验
  • 跨平台

饿了么技术沙龙(2018.10.27)

主题:

  • 骑手活动体系建设(Python)
  • 构建分布式实时分析内存数据库的实践之路(服务端数据存储)
  • 手淘高可用实践(iOS)
  • 领域驱动设计实践(后端)

11~18年

手淘容器化

wax,Lua Patch

用户体验

  • 占用空间
  • 卡死

包 size

80% 可见??
如何监控单个页面的内存?进入页面前后的内存差值

Abort 堆栈