2019年第三界腾讯前端技术大会,第一次参加这个大会,作为一个技术人,感觉还是有收获的,在此以博客的形式记录一下参会的点点滴滴以及个人思考
大会概况
时间:2019/11/16 9:00~18:00
地点:科兴国际会议中心,3楼,深圳
会议形式:主会场(上午), 三个分会场(下午)并行展开
主会场 主题一: 是时候了解一下 WebIDL
亮点:
- W3C的作用,以及Web IDL的介绍
定义: Web 接口定义语言 (Web Interface Definition Language)
官网: https://www.w3.org/TR/WebIDL-1/
官方定义:
"Web IDL, that can be used to describe interfaces that are intended to be implemented in web browsers. Web IDL is an IDL variant with a number of features that allow the behavior of common script objects in the web platform to be specified more readily. "
个人思考:
一种接口规范,用于定义Web浏览器需要实现的接口,为Web浏览开发商提供实现指导,同时为所有运行在Web浏览器的应用提供统一的交互访问接口。
画外音:Web的世界里很精彩,浏览器(运行环境)五花八门,技术框架(工具)多如牛毛,但万变不离其中,还是:JSS+CSS+HTML跑在Web运行环境(浏览器)。对于Web开发者来说,熟悉各种Web技术框架固然好,但了解其Web底层运作原理及规范才会让你走得更深更远。有空可到这里逛逛: https://www.w3.org/standards/
主会场 主题二:Headless CMS——小微项目的业务中台解决方案
亮点:
- 一个程序员的成长之路
巧子科技的创始人张云龙讲述了它的个人经历,一个技术人的自我修炼过程:一技之长->独立做事->拥有事业。讲述过程与在场的技术人产生强烈共鸣,也引发了技术人对未来生涯规划的稍许思考。 - 一个开源项目Strapi
开源地址:https://github.com/strapi/strapi
官网:https://strapi.io/
口号:Manage your content. Distribute it anywhere.
个人思考:
- 非常成功的讲演, 这种技术大会的观众大都是前端开发者,从受众共鸣的角度去诠释技术发展之路,讲演技巧值得借鉴。
- 演示了开源框架Strapi:
1)建立实体 (todo)及实体属性(id, name, description)
2)建立实体的关联关系(tasks,todo)
3)即时可用UI进行数据录入内容
4)即时生成内容的API
如果只是针对以上4点,相信我们刚刚开源的wecmdb比他们做的更优秀,实体及其关系可视化,API动态生成等。模型设计好后,即时在线可用,零代码编写。有兴趣可了解一下:
Github开源地址: https://github.com/WeBankPartners/we-cmdb
主会场 主题三:Flutter在腾讯企鹅辅导上的实践之路
亮点:
- Flutter简介及由来
2017年,诞生于google的一套移动UI框架
官方定义:
“Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.” - Flutter的实践及挑战
目前生态还不是很成熟,真正用于生产的项目还不多。
个人思考:
- 前端跨平台/跨端框架,有些当年JAVA跨平台的味道,连喊的口号都一样:Write Once, Run Anywhere
- UI架构对比:
H5+CSS3+JS一次编写,到处运行于android, ios, web (目前)
Dart一次编写,到处运行于android, ios, web, 还是nactive的方式,大大提升用户体验 (未来)- 入门成本有些高,因为使用的是Google自己的Dart语言进行编写。估计google跟我这个老JAVA程序员一样,也是厌倦了JavaScript语法的极度灵活性,导致前端开发极度繁荣(繁荣背后是乱象)。实现个简单功能,有n种框架,n种写法,有种违背惯例优先原则(convention over configuration), 想想当年JAVA的发展也是踩过这个坑的。从Dart的语法来看,感觉有向JAVA靠拢的感觉。
Dart语法: http://dart.goodev.org/guides/language/language-tour
主会场 主题四:大型Web项目可用性提升优化方案
亮点:
- 前端代码质量监控
- 前端日志收集
- 前端bug的处理人自动分配
个人思考:
- 关于前端代码质量,接触过的前端项目很少有质量保障措施,都是发现一个bug就修复一个bug,或是靠QA帮忙进行质量把关。很少有像JAVA后端代码那样,使用junit来编写单元测试,保证单个class的逻辑是正确的,使用Jbehave来写集成测试,保证集成模块是工作良好的,同时还可以使用sonar来帮忙检查代码编写是否符合规范,是否有潜在漏洞。
- 关于前端日志收集,感觉也是缺失的一环,随着前端代码的复杂度增加,很多发生在浏览器端的错误,后端运维人员根本无法知道具体的报错信息,无法定位及解决问题,更不用说提前预防问题了。
分会场 主题五:kbone:微信小程序同构方案新思路
亮点:
- 介绍了现有web应用(如用vue编写的),如何快速转成小程序
- 方案就是底层适配: 把浏览器能理解的DOM树映射至小程序能理解的客制化组件(利用树的相似原理)
个人思考:
- 微信因其影响力及小程序的空前繁荣,生态日趋成熟,导致很多现有web应用都想往这个方向走。导致现在的web开发了支持andriod, ios, web外,还必须考虑是否支持小程序,特别是中国的开发者。
- 感觉这种适配只是个临时方案,支持DOM貌似不完整,相信市场需求会使其不断完善。(花絮:有个观众提问时表示对使用这个开源框架的担心,如果使用后官方不维护了怎么办? 这个估计是很多开源软件面临的共性问题,做开源软件值得思考,个人看法:开源意味着无官方,所有社区贡献者即官方,只要有价值,就会有人为之付出,有偿付出体现为金钱收入,无偿付出体现为贡献,仅此而已)
分会场 主题六:基于CLS的B端提效实践
亮点
- 面向业务(Business)对组件进行通用性封装
- 封装的组件,通过绑定数据进行渲染即可
- 概念源于古老的Microsoft Basic可视化开发组件时的数据绑定
个人思考:
- 前端控件封装,个人感觉每家公司,特别是大公司都在重复发明轮子,底层同样一个HTML的表格,绑定的数据格式五花八门。
- 出发点是蛮不错的,意在打造灵活中台,快速相应业务变化。人力资源向业务倾斜,目的是Codeless或零代码编写更好,业务设计+配置即可使用。
- CLS(Common Components Language Specification), 尝试定义公共组件规范。
开源地址: https://github.com/Tencent/WeComponents
分会场 主题七:从 Jenkins 到 GitHub Actions —— CI 现代史
亮点:
- CI的发展历史 (从Jenkins -->Jenkins x–>Actions)
- 演示Actions的使用
个人思考:
- CI开源产品Jenkins一家独大这没多年,跟其灵活的设计框架形成的插件市场分不开,插件大大拓展了它的能力。这种框架的设计值得借鉴,特别是打造平台类项目。
- Actions的出现看到微软的野心, 尝试用actions完成公有云软件生命周期的CICD一条龙服务。VSCode(代码编写)->Github(代码托管)->Github Package Repository(包仓库)->Azure(微软云)
- 私有市场现在或未来一段时间内或许还是Jenkins的天下,因为Jenkins向Jenkins x进化,拥抱的可是google的大腿k8s, 值得期待。
分会场 主题八:如何让机器读懂设计
亮点:
- AI 视觉技术介入前端识别设计稿,形成前端代码布局
- AI技术,如何对模型进行训练,进而优化算法,如何精确识别图片,进而准确生成代码。
个人思考:
- 这个在展会的最后讲演,或许是放在展会末场,亦或是展示的AI技术细节有些枯燥,很多前端开发人员都逐一离场。
- 但我个人感觉这个不怎被关注的AI代码编写,恰恰是一个亮点,搞不好会在不远的未来跟前来学习前端技术的观众抢饭碗。可以想象一下: AI 如能读懂设计图纸作为需求输入,结合网络中的最佳代码实践(如github成千个代码仓库),搞不好真比大部分码农写的代码可靠。
【记录与思考】