获得徽章 0
- 大家好,我是奇舞团团长月影,《JavaScript 王者归来》作者,目前 360 技术委员会前端专家。过去曾就职于百度和盛大创新院,毕业于浙江大学。
我是 2006 年接触的前端,在此之前我做过底层算法、服务端开发甚至售前和售后技术支持。进入前端行业源于偶然,但从 08 年开始在百度有啊带前端团队到现在,刚好经历了前端行业快速发展的十年。就我个人而言,从事技术管理的时间要多于做前端开发的时间,然而我本质上还是一名程序员,非常热爱写代码。尽管现在带一个数十人的技术团队,但每一年我都坚持亲自参与一线项目和技术平台。去年我在可视化领域做了一点稍稍深入的研究,因此诞生了SpriteJS 项目和周边工具。
我一直坚信的一个管理理念是建立有效组织优于一切管理手段,因此我在奇舞团推动创立前端技术自媒体《奇舞周刊》、众成翻译、技术翻译小组、泛前端分享会、奇舞学院、w3c 兴趣小组等一系列组织并激励和推动它们良性发展,这些组织为奇舞团全体小伙伴提供源源不断的“能量输入”,帮助大家共同成长。
奇舞团是一个自由的,多元化的,在 360 公司和行业内都有一定影响力的前端团队,她既是一个业务支持团队也承担着公司的前端平台和技术发展。我们很少人为限制这个团队该做什么,我们也对技术栈没有偏好,我们鼓励技术创新和开源。今年我们将在可视化方向继续深入探索,如果你对可视化和奇舞团感兴趣,可以联系我,我们希望有更多的同学加入团队。招聘信息传送门:t.cn,也欢迎你关注我们的图二的奇舞周刊公众号获取技术知识。
我在 2019.02.26 - 2019.02.28 期间挑选有趣、有典型性、有意义的问题回答,你们可以问我 「JavaScript」、「技术管理」、「个人成长」等相关问题。展开246119 - [美餐官宣] 诚聘嵌入式软件工程师 / 采购工程师(电子元器件),确认过眼神,你是对的人儿~
关于美餐:
2011 年,获得来自真格基金和九合创投的天使投资。
2012 年,获得来自 KPCB 的 A 轮投资。
2013 年,获得来自 NGP 的 B 轮投资。
2014 年,获得来自挚信资本的 B+ 轮投资。
2015 年,获得来自美团点评的 C 轮战略投资。
2016 年,美餐荣获中国最具潜力创业公司,员工福利管理服务机构十强,年度最佳企业服务商等荣誉。
2017 年,美餐荣获中国团餐高成长性品牌企业,中国团餐十强企业,中国生活服务产业十大创新力企业等荣誉。2017 年,获得来自高盛( Goldman Sachs )的 D 轮投资。
2018 年,美餐荣获中国餐饮百强企业。美餐智能餐柜 SMARTWAITER W1 荣获德国 iF 设计奖和红点奖。
2018 年,获得来自阳光保险的 D+ 轮投资。
工作环境:
Herman Miller Emdiv 人体工学座椅
B&W Zeppelin Air 无线音响
De'Longhi 全自动咖啡机
PlayStation 4/XBox One 游戏机
3D 打印机
Blueair 空气净化器
大提琴 & 小提琴
各种 Apple 产品
懒人沙发。
员工福利:
每 2 年报销一台 Mac (归个人所有)
每月团建吃喝腐败
无限量零食、饮料
免费午餐、晚餐
解决海归北京户口(回国不超两年)。
简历投递:
cuilixia@meican.com
标题注明「来自 掘金 」
请附上 GitHub / Blog 链接
工作经验不限,加分项请你自己发挥
我们喜欢认真有趣的人 :-)展开12 - 在群里看到有人提到React fiber,写一点个人的看法。
Fiber这个东西很有意思,我觉得它不是一蹴而就的,引出它的可能是性能问题,然后在这个思路上走下去发现了更多有意思的东西。
组件树是一个可能会很大很深的树,一次性的渲染通常需要递归地遍历整个树,这样在树很深的时候可能会导致栈溢出错误,而且整个渲染过程可能很长,导致掉帧。
解决的办法很简单,如果递归过程中可以随时退出并保存上下文,就像多线程切换时会保留栈那样,那么就可以分多次的遍历完整个树。
实现方式就是把在遍历过程中原本在栈上的数据保存成数据结构,比如当前遍历节点,它的children列表,上一级节点等,这个数据结构就是fiber。于是原本的遍历渲染变成了,遍历建立fiber树,然后分多次的遍历fiber树进行渲染。不过fiber实际上组成的不是一个树而是图,react把子节点实现成了链表,通过fiber的sibling连接起来,这样会有更好的遍历性能。
于是就会发现,原本的线性的栈现在变成了一个结构化的图,后者除了不会有栈溢出和可以部分遍历之外,还有一些有意思的区别。首先,栈是对计算机友好的线性结构,但是不容易调试,它随遍历过程递进又随之回退,我们几乎只能借助调试器来观察现场。而fiber是一个持久的结构,任何时候我们可以直接观察它整个的状态。其次,它使react的代码更加简明了,它将遍历和逻辑解偶了,不管是渲染还是什么只要对待一个fiber节点处理就好了。
这些区别产生的结果就是解放了想象力,一旦走到这里这个框架就形成了,react可以在fiber上加入更多功能而不必局限于最初对栈的模拟的初衷。比如用alternate(也是个fiber节点)保存最新的渲染结果,这样就可以异步地渐进式地更新整个UI,于是有了Time Slicing和Suspence。更进一步的,在fiber上保存和读取副作用,于是就有了hooks,函数组件一跃成为更好用的存在,函数线性的语法结构不仅让代码变短了,也更容易重构了。
这些想象力的产物又增加了生产力,比如有了React.lazy实现loading效果变得非常简单,那么设计师就可以设计更加用户友好的UI。Web之所以在用户界面上超越了native应用就是因为这方面生产效率高,所以越来越多的electron应用出现。我认为React的不断创新可能也会悄悄的改变UI的形态,而fiber的出现是一个重要的拐点。展开评论28 - 北京锐融天下科技股份有限公司,官网:
www.bjrrtx.com
我们正在招聘java、前端、项目经理、架构师等社招岗位
java:金融经验、分布式架构、redis缓存、多线程。
前端:1年以上VUE经验,能独立承担项目。
项目经理:金融经验,java转项目管理,最好有乙方公司经验。
坐标:海淀区中关村
薪资:全职岗位12-30K
福利:项目奖金、七险一金、饭补等
投递方式:发简历到邮箱 zhangrn@bjrrtx.com,或者HR微信17301330646备注掘金求职者展开139 - 我来总结一下为什么要学习python的理由:Python文能词海表白,武能人工智能,黄能爬小电影, 痞能做小游戏外挂,邪能统计数据,美能健康识别,警能抓获逃犯,学能头发秃顶!126