跳到主要内容

代码拆分要顺着路由和功能边界来,别把 import() 用成碎片化

· 阅读需 3 分钟
一介布衣
全栈开发者

webpack 开始提示包太大以后,很多人的第一反应是“那我多写几个 import() 吧”。动态导入当然是重要工具,但如果拆分点没有顺着页面路由和功能边界走,只会把一个大包拆成很多难管理的小包,首屏和切页体验未必真的更好。

做 webpack 优化前,先用 bundle report 看清到底是谁把包撑大了

· 阅读需 3 分钟
一介布衣
全栈开发者

webpack 的性能优化很容易让人一上来就陷入“经验动作”:先怀疑 UI 组件库,再怀疑图片,再想办法加几个拆包配置。可如果还没看清产物里到底是什么占了体积,这些动作大多只是碰运气。真正有效的优化,通常都从一份可读的打包分析开始。

Go 里的 slice 和 map,先吃透零值和共享底层数组再写业务

· 阅读需 3 分钟
一介布衣
全栈开发者

Go 初学阶段很容易把 slice 和 map 当成“比数组和字典好用一点的容器”。真正开始写业务后,很多让人困惑的 bug 其实都和这两个基础类型有关:为什么函数里改了 slice,外面数据也变了;为什么 map 还没赋值就 panic;为什么看起来只是截了个子切片,内存却迟迟下不来。

接口最好从调用方倒着定义,别在实现还没稳定时先抽象

· 阅读需 3 分钟
一介布衣
全栈开发者

Go 学久一点以后,很多人都会记住一句话:interface 要小。但真到项目里,接口问题往往不是“大或小”这么简单,而是抽象出现得太早。实现只有一种、调用方式还没定稳,就先定义一堆 UserService、OrderRepository 接口,最后只会让代码多一层跳转。