TECH × 大学路 第二期小结(和尤大合影了!)

内心非常excited


上线了组织的一场小型技术交流会,地点就在大学路,真的离公司好近好近好近。(听完讲座还可以回公司加个班,完美)
全英文的演讲非常有趣(非常庆幸自己最近沉迷翻译技术文)
特地早到坐在最前排,近距离和尤大接触还合照了~ 迷弟心愿达成√

下面说说技术小结,毕竟全英文演讲,很可能我理解错了哈哈哈哈,如有错误望指正~
这次有三个演讲,第一个演讲是一个德国小哥,聊了聊V8引擎的工作原理,包括JS API 调用后经历哪些过程(例如:console.log()),pre-parse 和 full-parse 的区别,以及如何利用立即执行函数提升性能(避免 pre-parse?)?

另外花了较多篇幅讲了内存分配,并提到几个优化内存分配的方法或者说一些避免额外内存开销的原则:

比如:同一类型对象,应该保持相同的属性,避免不同属性:

//  good
a.prop1;
b.prop1;

// bad: extra memory allocation for that
a.prop1;
b.prop1, b.prop2;

另外还介绍了几种不同数据结构的内存使用量,包括对象,数组,也提到了在数组中,尽量保持数组元素类型一致,可以优化内存分配。

原始例子:[1,2,3],3个基本类型,假设占据3单位内存

反面例子:[1,2,”abc”],在内存中,此处1,2会被隐式转为 { num : 1 },{ num : 2 },不再是基本类型而是复杂类型?而 “abc” 此时同样也是引用类型。这样会大大增加内存的开销。

so,简而言之就是涨姿势了。

 

第二位演讲者是strikingly的创始人郭达峰,主要议题是介绍了几次 react conf 的心得体会。

2015 React Conf

  • flux,flux,flux,flux,flux; // 大会重点讨论 flux
  • Redux;  // 有人提出了 redux
    • hotreload
    • time travel
    • functional
  • css in js;
  • GraphQL;
  • React as the UI virtual machines.

2016 React Conf

  • redux,redux,redux,redux,redux; // 今年轮到 redux 成了焦点
  • react native; // 有人提出 RN
  • more GraphQL // 更多的人讨论 GraphQL

2017 React Conf

  • performance:
    • react fiber
      •  reconciliation
      • Priority Scheduling 优先级调度
    • react 16
    • SSR
    • streaming,rakt(leaf,preserve)
  • pollishing tools:
    • create-react-app
    • Jest // 2年前一般般的测试工具,现在咸鱼翻身了:)
      • fast,
      • snapshot testing,
      • nice interactive CLI
  • js fatigue
  • mature community
  • AOT (gatsby, svelte,prepack)
    • less runtime cost,
    • less framework,
    • more build time cost

以及提到未来的js可能的方向:

in other languages

  • Reason:OCaml
  • Closure script:Closure
  • Web Assembly

XX注:关于 React Fiber ,突然觉得很像是平时开发团队的项目管理模式。每周五分配任务A、任务B、任务C,按优先级一个个完成。假如周一还在做任务A的时候,突然来了一个临时的老板级紧急需求任务D,那么就先把任务D安排到任务A前面……

最后是尤大…前端界的颜值担当
首先介绍了Vue 受哪些启发

  • Braid
  • web components
  • Ractive

然后是vue单文件组件实现原理,

先讲了 template,script,style 分别是如何解析,然后介绍了这三者是如何合在一起构成一个组件的。

另外提到了 hot reload 的注意事项,script 层面由于 state 的问题,需要整个component 全部 reload,避免副作用?

最后还提及一个等式:

Standard source format + extension compilation pipeline = evolution with less churn…

后面就是问答环节,印象比较深的一个按业务级切分文件,某个业务涉及到的文件(style,js,template,lib)组织在一起

尤大也提到希望有一个比 Vuex 或者 Redux 更轻量的状态管理工具?

另外尤大又提到了,技术方案,必须要结合实际问题,结合真实场景。

引用一下前几天尤大的知乎 live 的总结:

总结一下吧,我们聊了很多东西,可能比较杂,但我希望大家发现其中一些共性的东西:技术方案都是先有问题,再有思路,同时伴随着取舍。在选择衡量技术的时候,尽量去思考这个技术背后是在解决什么问题,它做了怎样的取舍。这样一方面可以帮助我们更好的理解和使用这些技术,也为以后哪天你遇到业务中的特殊情况,需要自己做方案的时候打好基础。

以上,可能有一些内容理解有误~ 望大家指正哈~ 多谢~ ……

最后再次感谢strikingly这么棒的一次分享活动,干货满满。

其实我还是蛮期待平时可以多交流交流, 大神就在离公司那么近的地方~~~

吃土小2叉

2017年6月3日21:31:26

Leave a Reply

Your email address will not be published. Required fields are marked *

14 + eleven =