Zong
油断中……

任务进度

  • 「日本語学習計画」:语法及词汇 第1页
  • 「计算机图形学」:材质与外观
  • 「锻炼身体」:简单运动 待加强
  • 「ECMA-262」:6.1.7.3 Invariants of the Essential Internal Methods
  • Type<Challenge[]>:651・Length of String 2

这里其实得批评一下自己,日语的学习从今年年初开始就一直停滞不前,面对文法和词汇退缩了。ECMA 规范虽然有在阅读,但是进度还是太慢了,因为 6 月已过,规范却连一半都没读到。总体从任务来说,真的较去年太松散了!(虽然今年可能确实没多少时间做,给自己找借口中……)

工程化的实践

借助内部组件库的开发机会,包揽了构建和发布的工作,学习 ElementPlus 的构建代码(特别感谢鸡哥的耐心指导),采用多进程构建,并且结合自身组件库的需求,虽然同样采用 monorepo 的包管理方式,但是与 ElementPlus 不同的是每一个组件都进行独立的构建和发布,并非统一构建在根目录的 eslib 下,而是构建在 packages 下组件们的 eslib 下,并且进行了独立的依赖配置。

也遇到了与 ElementPlus 一样的问题,生成的 d.ts 文件存在路径问题,则按照上述的场景,重新编写了 build:type 的工程化代码。

同样的也提供了 ESM/CJS/UMD 的构建文件,并且因为上述的场景区别,重新编写了 babel 按需引入插件,实现以下 3 种按需引入方式:

// 伪代码
import ElementPlus, { ElButton, locale } from 'element-plus'
import ElSelect from '@element-plus/select'

// babel 转换后
import ElementPlus, { ElButton, locale } from 'element-plus'
import ElSelect from '@element-plus/select'

import '@element-plus/theme-chalk/lib/index.css' // 全量
import '@element-plus/theme-chalk/lib/button.css' // 仅 button
import '@element-plus/theme-chalk/lib/select.css'

虽然说内部组件库的初版功能大体是参考 ElementPlus 的,不过会在未来让内部组件库变得更适合我司,并且计划推进组合式 API 来代替原来的二次封装业务组件。

在学习过程中接触到 esbuild ,可算是对性能有了新的认识,使用其构建会大大提升构建效率,可算是前端工程化里的一颗新新力量了,也同样计划在后期改善构建效率。

也同样的,对于内部组件库计划推广和实行更多的计划(当然这里就不会多说了)。

突然想起一点, ElementPlus 的 TypeScript 代码没有开启严格模式,真的改起来有点头疼,虽然我只是在这里说,没有去提 PR 。

NO CODE

再来谈一谈零代码这个概念,内部成立了一个小组在推进零代码。并且这个零代码强就强在可以结合我们自己的微前端架构和微前端动态构建平台直出业务到业务。

用户可以简单的进行拖拽、组合等等一系列操作(反正不用写代码),组合出新的页面或页面集合,结合上述系统,直出到业务。

并且零代码的架构设计采用开放的插件模式,安全的沙箱模式等设计模式组成。

总之,正在开发中……

值得期待!

📚 建立自己的前端知识体系

回到这个话题,虽然好几个月没有聊起过,但是从整体来说还是有在慢慢的推进,只不过文章开始提到的那些进度有些缓慢……希望可以在下半年抓起来(加油)!