这个周末也没闲着想些有的没的,反倒是因为工作日下班后看了一些独立博客,欣赏了不少有意思的主题后,我决定重新做一个 Wordpress 主题自己用。

其实我之前也是有过几次WP主题开发经历的,不过文件估计在大学时期的老旧笔记本电脑上,就是那款 Acer 4741G 的巨厚笔电,带光驱的那种。如今电脑放在厦门老家,估计回家也不会想收拾整理的。

之前博客在 2017 年前后有使用过一个自己定制的主题,当时是仿照 Material Design 自己又进行了一层设计的。后来因为 Wordpress 升级,样式错乱,我又无暇打理,于是决定用省事的第三方主题。

构思

说干就干!我于是开始阅读 Material Design 3 的一些新的质感设计语言,打算结合做出一款新的主题。

wp最好的主题(File.4重启WP)(1)

我先在自己的草稿本上画出了大致的页面结构,包含桌面和移动端的草图。这一次决定使用全站 flex 的模式来做,避免定宽导致的宽度溢出等情况。

模式

通过不断阅读文档,我发现 WP 主体从去年开始推出了一个全新的区块主题(Block Theme),有别于经典主题(Classic Theme)混合 php 代码开发的情况,这个模块主题非常适合前端工程化,但是由于它的灵活性过于强大,必然会出现一些难以遵循 MD 设计规则的地方,届时估计我得新写一些针对主题的区块才能实现了。

工程

网上找了一圈,也在 github 上翻了一下,没有一个好用的脚手架。有些项目 gulp 和 webpack 都用上了,但是愣是没看到 webpack 用在了哪里,说白了还是 gulp 编译的主题。

我也看了很多优秀的主题代码,但是他们的项目是如何架构的,这点全然不知,我只能看到他们构建好的主题文件,怎么看都像是徒手写出来的,并没有什么工程化的痕迹。

这次我打算基于 docker 创建一个本地的 wordpress 容器,并通过软链接的形式将主题文件映射到外部的项目文件夹中,通过 webpack 打包的方式构建一个项目。起初我是打算 借由这个新起的项目顺势学习一下 rollup,但是感觉时间成本一下增加不少,如果短期内没有正向反馈做激励的话,这个 WP 主题项目估计很快就会黄掉。

目前我搭好了一个脚手架项目,并计划以此为基础开始新主题的开发,估计战线会很长。

近况

后面来说说近况吧。最近在公司又做了一个版本选择重构的项目,这次是基于组合商品的重构。

目前线上整个交易流程的版本选择逻辑基本都是我一手搭建的,很难想象是不是…不过当时我对这个大项目可是精心设计了很多结构,便于它的功能日后扩展。当时这么做的设计很有效,后来有一次功能从单选变为复选,我们前端同学只需动动手指改一下类型就可以了,后端同学当时改了老半天…

由于当时的项目架构我是结合进了 RxJS 做的,这倒也逼迫后续维护的小伙伴也要学习 Rx 的相关知识。虽然学习曲线挺陡峭的,但是用过的同学都说好用,并且都有点后悔入门晚了。现如今他们一有难以解决的复杂异步逻辑都想着用 RxJS 来解决,我感到很欣慰。哈哈!

不过难免也会有同学进入一个误区。就是 RxJS 这么好用,为什么不每个地方都用呢?我是这么想的:你不能强制要求每个人都用,毕竟人员流动很大,熟练工早晚会走的,新来的同事上手起来也要一段时间,这其实对于我们这个 To Customer 的项目来说,其实很不好。不是说用了什么新颖的技术就多牛了,对于前端项目更多的还要考虑兼容问题。何况很多历史项目还是需要有人维护的,求新求变固然是件好事,但是也要接受现实,有时候必须等一等用户更新手上陈旧的设备……

所以对于没有那么复杂的异步模块,我都不是太推荐大家上来就直接考虑 RxJS,这会增加一些不必要的维护成本。能用 useEffect、useCallback 等 Hook 组合将其解决,这本身也是一种能力不是吗?哈哈!

后记

最近买了回厦门的机票,打算回家看一看。其实清明、五一、端午就想回去了,但是受困于北京的疫情发展,和厦门的防疫政策。直到端午期间,我妈在家中摔了一跤,我还是通过亲戚间接知道的,我就萌生了无论如何也要回家一趟的想法。这不已经买好了机票,无论疫情政策怎么变,还是该回去一趟的!

孔子云「树欲静而风不止,子欲养而亲不待」。希望大家平时都能好好珍惜自己的家人,有空一定记得回趟家看看呀!

,