最近哥们儿我接手了一个官网的前端项目,虽说是官网,但它是个 Web 应用而非营销网站,所以还是有一定复杂度在的。
这几天是边往死里摁🐞边熟悉代码逻辑,没想到这是个烫手🍠,前人留了一堆坑给我——令我觉得他撑死了也就中级水平,不能再高了……🙁☹️🙂↔️
是不以为我看到这💩山会苦恼不堪,心中如那呼伦贝尔大草原般万🐎奔腾?
不!你想错了!!我兴奋得很呢!!!
别误会,别误会!我不是那个什么「抖艾姆」哈!
而是,因为这类项目就像试金石一样,可以证明我是金子,是宝藏,是那唯一的神话——毕竟资深「前端铲💩官」来着!☺️😊🤪
好了好了,「前情提要」就此打住,我们进入正题——
这个官网项目是基于 Next.js 开发的,目录结构就是随处可见的那种,对开发与维护没啥约束性。
项目的核心问题则是几乎没有抽象,代码如未经整理的机房中的线缆,可复用性、可维护性等极差。
你说什么?健壮性??那是啥???
我写过一篇名为《聊聊中后台前端应用:目录结构划分模式》的文章,包括这个项目在内的绝大部分前端项目的目录结构都是文中提到的「野生」模式——助纣为虐的帮凶!
正如一开始说的,这项目是个 Web 应用,那就代表很大程度上能进行领域建模,也明示了我要铲平这座💩山的话,第一步要用「模块化」模式调整目录结构,如同每年的公司组织架构变动。
因 Next.js 项目机制的限制,需用 app
文件夹替代 entry
文件夹。
理想状态下,除了 app
文件夹,shared
和 domain
这俩文件夹是不受 Next.js 机制干涉的,并且它们承担了整个应用的绝大部分逻辑——随时准备脱离 Next.js 的魔爪!😜😜😜
理想很丰满,但现实很💀感。
由于这项目身患顽疾,无法一步到位,今天重构之后不得不先留下些残党余孽游荡在外,待我过几天将它们逐一歼灭!
这一看,清爽多了,美滋滋~😄😁😆
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。