有幸参加了第三届FEDAY前端分享会,收获了很多干货,也借此机会见识了北京的风光。这次活动讲了8个主题,其中两个是俄罗斯的朋友分享的,最大的感触就是,一定要好好学习英语,否则需要用时真的后悔莫及。 对webpack打包机制和调试很感兴趣,正好项目当中也遇到过类似的问题,但是通过ppt只看懂了问题,没听懂怎么解决的,很是伤感。
第一讲 谈项目中如何选择框架和库 - 张克军
每次开发新项目时,都要经历技术选型的过程,选择框架和库尤为重要。尤其是框架,基本上框架定了,就不能再做修改,一旦要修改,必定是大改。
张克军老师为我们分享了项目中选择框架和库的一些原则和需要考虑的因素。
第一,基本前提。
需要考虑成本和效率,主要从实现目标的成本和效率、团队协作的成本和效率、后续迭代的成本和效率这三个部分考虑。如果想要尝试一个新框架,但是对于整个团队来说学习成本过高或者后续迭代成本过高时,都需要慎重考虑,慎重对待。
第二,妥适性原则。
第三,选择库的原则。
1.缩小依赖范围和向稳定方向依赖
2.避重趋轻、避繁逐简、以简驭繁、避虚就实
3.可替代性
第四,主框架的选择。
1.没有不二法则,任何框架都是可以替代的,没有绝对的好,绝对的坏。
2.拥抱未来,未来的可延伸性、扩展性要较强,便于未来维护。
3.经验价值高,有助于从中学习提升到一些知识。
4.架构上的优势为重,对整体架构上有较大的优势。
第二讲 webpack打包机制及调试优化 - Alexey Lvanov
这个主题是来自俄罗斯的Alexey Lvanov老师分享的,由于前段时间正好在学习和运用vue+webpack打包相关的东西,也遇到过一些问题。正好老师分享的一些问题以前也遇到过,无奈只看懂了ppt上的问题,听不懂老师讲解如何解决的。
第三讲:如何用JavaScript做好一个大型应用-孟红伦
孟红伦主要介绍了一下钉钉使用的一些技术。包括使用TypeScript解决复杂代码问题,解决日常我们经常遇到的后端在不返回某些字段,但是前端使用到的时候,报undefined错误的问题,使用typeScript可以定义数据,解决这个问题。
钉钉桌面版-主要界面的UI使用web技术TypeScript支持范围也很广,对于现在主流的react\vue都可以支持,由于我没有使用过typeScript,所以不能有更深层的理解。还讲了一些异步调、异步逻辑处理、渐进式调用的东西,只是没有听得太明白,总结如下。
问题1:接口数据模型复杂,层次深,嵌套多,不知道属性类型、是否一定存在,会导致后续bug,不稳定。
解决方案 -> TypeScript,并且前后端采用统一 .idl文件 生成统一的数据模型。
问题2:异步逻辑复杂。解决方案-> RxJS
第四讲 叶俊星-从Cycle.js谈函数式与响应式编程
叶俊星老师主要是讲响应式编程与事件流本身,生动形象的对他们进行了解释阐述。以人和电脑之间输入输出过程来讲解了cycle.js,cycle.js虽然是个好东西,但是目前还是概念性的,不能理解它的根本思想。
第五讲 链家工程化实践 - 杨永林(教主)
教主从链家架构的演变开始讲,最开始前后端代码是放在一个服务上的,然后发展到分别放在各自的服务上,通过最简单spa实现前后端分离,最后加入nodejs,使用koa为node端的框架,来实现前后端分离。同时介绍了各种方式的优点与缺点。
开发方式对比第六讲 基于React Native的三端技术实践 - 刘威
刘威老师介绍了React Native的优缺点以及三端架构的性能优化、数据上报、组件设计、文档等内容。
React Native优点:
学习成本比较低、体验接近原生、二个端代码复用、社区活跃
React Native缺点:
不支持热更新、不支持web 三端不通、向下兼容性差、低端机型会有崩溃
三端的框架第七讲 WebAssembly在白鹭引擎中的实践 - 王泽
王泽老师讲话自带热情气氛,先介绍了html5游戏引擎-白鹭引擎,然后从渲染内核原理、如何提高JavaScript运行效率、阐述了js执行过程的原理,进而说明能优化的点及解决方案,最终推出WebAssembly。不过最后良心的建议我们暂时不要去学习WebAssembly。
第八讲 Machines must sudder — Linters and tools for font-end development - Andrey Sitinik
Andrey Sitinik是PostCSS和Autoprefixer的作者,当我看到是Autoprefixer的作者的时候,着实激动了一把。前段时间才在项目里边引入了Autoprefixer,终于不用再写各个浏览器的前缀了,减少了工作量。很喜欢这个主题,让机器解放生产力,其实在我们的工作中也需要有这样的思维,如果想减少重复的工作,我们就要努力去想办法创造更简单的方式代替我们去做一些没有必要的重复的工作。节省时间去做更多更重要的工作,从而不断替身自己。其中也提到了单元测试、还有一些让代码变得更规范的工具。可惜是全英文的,不能完全理解。
整体来说,还是了解到很多知识,不期望一天能学到很多东西,通过这个分享会了解到自己的不足,知道自己之后需要提升的方向、改变的思维就够了。
网友评论