这个夏天,给你的代码减个肥 🍉|let-s-refactor 插件开发之路(一)

简介: 这个夏天,给你的代码减个肥 🍉|let-s-refactor 插件开发之路(一)

前言


你将得到什么?

通过本文,各位将了解(或者学习)到:

  • es-module 导入导出
  • 可能用的较少但比较好用的正则语法
  • vscode 插件从设计到实现
  • ...

本文内容较多,希望对你有所启发,如有建议或者纠正,也望不吝赐教。


代码”减肥“的起因


各位好久不见🌺,前两个月的时间经历了一个月的加班以及一个月的居家办公。在疯狂加班的那段时间手里接到了一个时间比较紧急,历史包袱也比较重的项目:

  • 产品形态出现多次变更

  • 开发人员几经转手
  • ...


以及本次迭代版本服务端架构出现了比较大的变更,使得老的前端代码设计难以支撑新架构下服务端 api 的变更,于是催生出我的一个想法:

重构吧!


重构的结果还是好的,既赶上了提测,也在优化项目结构的基础上完成了 50% 代码量的减少,而 50% 对于本项目而言,大抵是相当于 10000 行左右的代码量。

在这次代码“减肥”的过程中我有了一些总结(或者说是一些比较让我揪心的体验),使得我有了后文中的想法。


读到这里可能大家会问:你加班了一个月,那居家办公那段时间下班后都干嘛去了?

我只能说,swicth 真好玩!


揪心体验


不知道各位在职业生涯中有没有遇到过以下体验:

  • 一个文件完全没有被使用过,但是在项目目录中恬不知耻的存在着
  • 一个方法,一个配置信息或者一个常量早早就已经过时了却依旧存在


若项目历史不久,此类信息倒是影响不大,但是随着版本迭代,他们会越来越多,并好似狗皮膏药一般深入到项目代码的各个角落,难以察觉,又恶心至极!

这种删又删不干净,又没事突然出现恶心你一下的感觉真的难以言表...


💡:无效的文件可能容易发现并且在适当时机进行删除,但是无效的常量或配置类内容就真的难以处理。


于是我在此次重构过程中几乎审查了所有的历史文件,所以我那代码量减少 50% 的壮举不全是我设计的功劳,很大一部分还是由于删除了大量的无效代码...(诶,真的很不想承认,但是做人要诚实🍉)

在删代码的过程中,我产生了如下想法:

这个过程,需要更加智能


做更“懒”的工程师


根据前面的铺垫,我想各位已经知道了我此次的目标:


  • 自动识别无效文件
  • 自动识别无效常量(配置信息/公共方法等)


然而,我喜欢画饼,在开发之初我就画了以下思维导图,插件命名为 let-s-refactor 也是希望我这个插件所做的事情不止于此,可以为提高代码库质量提供更多能力!


网络异常,图片无法展示
|


而对于代码的读取分析,最方便的手段也就是:vscode 插件。文章的后续内容便是插件的第一批功能清单以及开发思路的分享。


功能清单 V0.0.1


网络异常,图片无法展示
|


本次介绍 v0.0.1 版本的三个主要功能:


  1. 统计代码行数与文件数

显而易见的需求,不计算代码行数与文件数,怎么统计最终的成果(没错,主要工作还没做的我就已经开始思考成果的展示了🍉)


网络异常,图片无法展示
|


  1. 列出项目中的无效文件

将项目中无效的文件展示出来,以帮助进行后续的分析删除


网络异常,图片无法展示
|


  1. 列出项目中的无效导出


将项目中无效的 export 展示,可能包括常量,配置信息与公共方法。


网络异常,图片无法展示
|


注意:本插件现仅支持本公司统一框架下的项目,未来想通过配置文件的方式支持所有项目。

相关文章
|
5月前
|
前端开发 JavaScript 开发者
水墨代码:前端川的诞生——在夏日阴雨中启航
【前端川】网站于农历五月初一(2024年6月6日)上线,融合水墨画与现代前端技术,呈现独特的水墨代码美学。创建者陈川分享技术心得与实战经验,网站特色包括水墨风格界面、技术深度解析及实战案例。在夏日雨中启航,"前端川"致力于为开发者提供灵感与帮助,探索前端技术的无限可能。
96 17
|
6月前
|
安全 架构师 Java
理论实战源码齐飞!架构师社区疯传的SpringSecurity进阶小册真香
安全管理是Java应用开发中无法避免的问题,随着Spring Boot和微服务的流行,Spring Security受到越来越多Java开发者的重视,究其原因,还是沾了微服务的光。作为Spring家族中的一员,其在和Spring家族中的其他产品如SpringBoot、Spring Cloud等进行整合时,是拥有众多同类型框架无可比拟的优势的。
82 0
|
3月前
|
存储 Python 容器
"解锁编程奇迹,Python基础入门:一剑在手,编程江湖任你遨游,从零到英雄的超燃蜕变之旅!"
【8月更文挑战第12天】编程曾被视为复杂的技能,Python却让其变得异常亲和简单。作为优雅且强大的语言,Python以简洁的语法、丰富的库支持及广泛的应用领域,成为初学者首选。本文将引导你开启Python学习之旅,通过基础概念与示例代码,让你领略编程魅力。
48 0
|
6月前
|
算法 程序员 开发者
代码与禅意:技术修炼中的悟性之旅
【5月更文挑战第30天】 在编程世界的林间小径上,每一位开发者都是一位探索者。本文将带你走进程序员的内心世界,透过技术的表象,探讨那些看似无形却能显著提升开发效率和代码质量的“软技能”。从心法到手法,从个人的静心冥想到团队间的默契配合,我们将一探究竟,如何在技术的海洋中找到自己的航向,以及如何让每一行代码都充满“禅意”。
|
6月前
|
算法 程序员
代码与禅意:技术修炼中的悟道之旅
【5月更文挑战第27天】在数字世界的繁复纹理中,编程不仅仅是一种职业技能,它更像是一场精神的修行。本文将探讨编程与禅宗之间的深层联系,透过技术实践揭示那些通常被忽视的哲学思考和内在成长。我们将一起走进代码的世界,探索如何通过技术的精进达到心灵的平静和智慧的提升。
|
6月前
|
算法 开发者
代码与禅意:技术实践中的悟道之旅
【2月更文挑战第23天】在技术的海洋中,我们如同行者探索未知的领域。本文透过个人的技术实践经历,探讨了编程不仅仅是一门科学或艺术,更是一种哲学和内省的过程。我们将深入分析如何通过代码实现自我超越,以及在这个过程中对技术、生活和存在的深刻理解。
|
6月前
|
开发者
作为微信小游戏开发者,这份白皮书不看可太吃亏了!
作为微信小游戏开发者,这份白皮书不看可太吃亏了!
177 1
|
6月前
|
前端开发 JavaScript API
拥抱华为,困难重重,第一天学习 arkUI,踩坑踩了一天
拥抱华为,困难重重,第一天学习 arkUI,踩坑踩了一天
220 0
置顶两个月!《程序员如何向架构师转型》神作在Github持续霸榜
企业架构在过去十年中取得了长足的进步。随着越来越多新技术出现,充分利用这些因素来将企业架构创建得更好十分重要。通过将新技术集成到企业架构中,即使在困难时期,也能取得丰硕的成果。
|
数据可视化 搜索推荐 程序员
丝滑!用了这款开发工具,我成了整个公司代码写得最秀的码农
丝滑!用了这款开发工具,我成了整个公司代码写得最秀的码农