Skip to content

稀土开发者大会

统计信息:字数 28207 阅读57分钟

稀土开发者大会 2023

2023年稀土开发者大会,这个包括很多领域,前沿知识,值得学习。

null

主论坛

https://juejin.cn/live/2023zlt?utm_source=jjwebdhl

01-技术对产品的影响

1.字节副总裁-致辞

计算机技术的发展的目标,主要是为了业务的增长。

具体体现在速度、精度、温度上面。

  • 速度指的是开发迭代的速度快,主要涉及底层的云服务以及容器复用快速开发的方面。

  • 精度指的是。用户的个性化推荐。根据用户的具体情况进行科学的决策精准的分析。

  • 温度指的是用户的内容与交互创新,持续提升用户的体验,传达产品的价值。

产品对于不同使用者的服务角度(以抖音为例,对于创作者的角度。要降低创作者的使用门槛。对于用户的角度。要增加产品的差异性体验)

以表格或者文档为例(对于创作者的角度,要方便创作者进行使用;技术门槛低;对于用户的角度。要便捷灵巧的浏览数据)

undefined

undefined

undefined

02-AiGC 对业绩的发展

2. 谷歌云中国负责人

AiGC 对业绩的发展;演讲2023年6月;2024年新技术还有更多

null

前端工程实践

https://juejin.cn/live/qdgcsj002

01 前端-构建工具-RsPack

RsPack 前端构建工具

字节跳动前端团队

rsPack 代码链接:https://github.com/web-infra-dev/rsbuild 目前 1000 星

目录

1. Why Rspack?

2. 特性

3. 生态兼容性

4. 从 Webpack 迁移

5. 性能收益

6. 架构设计

7. 展望

1.webpack 存在的不足

npm run dev 和 npm run build 启动构建时间比较长,HMR 热更新时间也比较长,浪费时间。

开发者希望更快的打包工具,包括冷启动,生产构建测试;兼顾灵活性。

(实际上开发者希望减少某些 webpack 耗时过程,减少某些 loader 和 plugin 的时间,而不是更换新的工具)

2.rspack 特性

rspack 是基于 rust 的高性能web构建引擎(打包工具)

  • Rust 实现,增量编译,HMR 和构建速度更快

  • 和 webpack 兼容,不需要从0开始搭建项目开发环境

  • 支持多种格式 js jsx ts tsx sass 开箱即用

  • 内置多种优化策略,代码分割;代码压缩;摇树

3.生态兼容性

loader 好兼容,大量的 plugin 和对应的 API 不好兼容。详见兼容列表。

undefined

undefined

4.从 webpack 迁移

参考官方文档

6.架构设计

分成左右两个阶段:make phase 和 seal phase 其中黄色部分是耗时部分。

make phase 接通阶段:模块依赖关系分析(module build and analyze),文件依赖图分析(特殊的有循环引用)。

seal phase 密封阶段:打包压缩(生成 module trunk assets)。

增量编译,大概是在 make phase 时,递归进行编译(循环这个过程)

互动提问环节

1、rspack 和 webpack 打包构建后的产物是否相同,大小是否变化,是否对齐?

解答:目前产物相同,大小不变,可以对齐,但是不会100%一样。

2、未来 rspack 和 webpack 目标是什么?是否和新功能一致?

未来是两个项目,但是主要功能一样,会支持大部分的插件。

3、这个构建工具适应于哪些场景?

小项目,要求很快的速度和基本的使用场景,可以使用 rspack;但是复杂的项目,或者angular,使用复杂的插件,那么这样还是使用 webpack。rust 比较快,社区发展也比较好,所以使用 rust 写 rspeck。

个人思考

从技术角度,这个是加强版的 webpack,速度更快,技术领先。

从项目角度,这个社区不完善,简单项目可以使用 rollup,复杂项目使用 webpack,这两个市场占有率这么大,长期稳定。如果再学习 rspack 有成本,所以暂时不会把这个工具使用在项目中,后续观望市场占有率再说。

02 前端-组件化-quarkC

低成本、跨技术栈、无框架的组件

哈罗单车前端团队,这个中台团队比较小,可能不超过10人,为了响应降本增效做的这个项目(给业务部门提供公共组件)。

quarkC 代码连接:https://github.com/hellof2e/quark 目前300星

web-component 概念:https://juejin.cn/post/7350502488493867042 简单理解,就是 HTML默认的 video 标签,实际是很多 div + span 组成的,那么这个 video 标签就是 web-component。这个项目也是类似的工作,写了例如 hello-button 这样的原生 web-component 组件。

目录

1.聊聊当下主流前端组件的“伤”

2.初识WebComponents

3.利用Quarkc高效构建Web组件

4.面向未来的无框架浏览器原生组件探索与实践

1、前端组件的缺陷

通用组件依赖于框架的种类和版本,不能通用(例如 antd 依赖于 react18版本)不能复用,CSS 的效果容易冲突。如果一个企业历史代码比较多,那么不同的项目和人员使用技术栈不同,开发维护比较困难。如果框架版本大升级后,各种组件库都需要升级,比较麻烦。

2、web-component 介绍

浏览器调试:在 Performance 中,开启 show user agent shadow DOM 用户代理影子 DOM。

WebComponents 组成三剑客

  • Custom elements(自定义元素):一组JavaScriptAPI,允许您定义 custom elements 及其行为,然后可以在您的用户界面中按照需要使用它们。

  • ShadowDOM(影子DOM): 一组JavaScriptAPI,用于将封装的“影子”DOM树附加到元素(与主文档DOM分开呈现)并控制其关联的功能。通过这种方式,您可以保持元素的功能私有,这样它们就可以被脚本化和样式化,而不用担心与文档的其他部分发生冲突。

  • HTMLtemplates(HTML模板):\