对modern.js 的一些看法

3,280 阅读2分钟

modern.js 是字节跳动的开源项目,解决的是提高字节内部巨量app 的发能力和app 群的维护问题 详情

我最关心的3个问题:

  1. 实践效果怎样?他们自己内部都没大范围使用,只提到了一些代号Goofy,Jupiter
  2. 解决思路是怎样
  3. 对自己公司的价值有哪些

实践效果

  1. 几个月后,看他们有没有新消息。但隔壁家阿里的天猪 猜想,估计是内部推广有压力,所以就推到开源社区去搞了
  2. 现在的情况是明显的,就是个半成品。文档没完善。github 上issues 和PR 都很少,issues还有很多初始化失败的问题,可见推广出来的时候有多长促。
  3. 大而不全,小白较难入手(文档不全,适配后端等工作繁琐),大厂无意帮忙(大厂有自己的一套)

解决思路

image.png

总的来说,就是开发一个开发app 用的app。

  1. 统一规范=>收敛技术碎片=>组合出最佳实践
  2. (将来在公司内部落地,适配公司内部的硬件资源后),严重向DX 倾斜,提供一站式开发,测试,部署。
  3. 支持多target 的输出和切换
  4. 项目,模块都可以复用

在解决思路和现有条件下,modern.js 是一个脚手架

配图不对的,这是jupiter 的脚手架,还不是modernjs

对公司的价值

  1. 字节的最佳实践组合

    1. react(因为靠山的技术一直引领市场,生态大)
    2. electron
    3. serverless
  2. 对于连基建都没搞好的公司来说,比起提高devops 开发效能,应该先搞好基建:统一规范,收敛开发工具,整合工程方案更靠谱,甚至可以说是必经环节

  3. modernjs 使用了哪些值得留意的新技术

    1. pnpm 优化项目依赖,空间省掉几个G
    2. monorepo 整合business 的多个项目在一起。但不方便设置独立权限
    3. Vercel 整合SSR/SSG/CSR,自动优化部署
    4. unicloud 多端输出,依赖serverless
    5. storybook 可视化组件开发,避免重复开发,追踪组件去向和质量
  4. 学了一些非常高大上的新词 参考

    1. 一个Web框架 -> 客户端为中心的 Web 框架
    2. JS技术栈 -> JS 为中心、FP 优先的 GUI 软件研发技术栈
    3. IDE自动提示 -> 智能化
    4. 客户端兼容性 -> DX 和 UX 同时最大化
    5. 开箱即用 -> 对 Web 应用开发的充分抽象
    6. 提供切换输出目标的自动化操作 -> 三位一体 参考
    7. SSG -> 动静一体

参考:

  1. zhuanlan.zhihu.com/p/386607009
  2. www.zhihu.com/question/49…