头图

最近哥们儿我接手了一个官网的前端项目,虽说是官网,但它是个 Web 应用而非营销网站,所以还是有一定复杂度在的。

这几天是边往死里摁🐞边熟悉代码逻辑,没想到这是个烫手🍠,前人留了一堆坑给我——令我觉得他撑死了也就中级水平,不能再高了……🙁☹️🙂‍↔️

是不以为我看到这💩山会苦恼不堪,心中如那呼伦贝尔大草原般万🐎奔腾?

不!你想错了!!我兴奋得很呢!!!

别误会,别误会!我不是那个什么「抖艾姆」哈!

而是,因为这类项目就像试金石一样,可以证明我是金子,是宝藏,是那唯一的神话——毕竟资深「前端铲💩官」来着!☺️😊🤪

好了好了,「前情提要」就此打住,我们进入正题——

这个官网项目是基于 Next.js 开发的,目录结构就是随处可见的那种,对开发与维护没啥约束性。

目录结构调整前

项目的核心问题则是几乎没有抽象,代码如未经整理的机房中的线缆,可复用性、可维护性等极差。

你说什么?健壮性??那是啥???

我写过一篇名为《聊聊中后台前端应用:目录结构划分模式》的文章,包括这个项目在内的绝大部分前端项目的目录结构都是文中提到的「野生」模式——助纣为虐的帮凶!

正如一开始说的,这项目是个 Web 应用,那就代表很大程度上能进行领域建模,也明示了我要铲平这座💩山的话,第一步要用「模块化」模式调整目录结构,如同每年的公司组织架构变动。

目录结构调整方案

因 Next.js 项目机制的限制,需用 app 文件夹替代 entry 文件夹。

理想状态下,除了 app 文件夹,shareddomain 这俩文件夹是不受 Next.js 机制干涉的,并且它们承担了整个应用的绝大部分逻辑——随时准备脱离 Next.js 的魔爪!😜😜😜

理想很丰满,但现实很💀感。

由于这项目身患顽疾,无法一步到位,今天重构之后不得不先留下些残党余孽游荡在外,待我过几天将它们逐一歼灭!

目录结构调整后

这一看,清爽多了,美滋滋~😄😁😆


本文其他阅读地址:小红书微信公众号


欧雷
124 声望15 粉丝

致力于前端标准化、工业化,让前端开发更加有序且可快速装配,为新型开发方式及协作模式做支撑。