网站首页 > 技术文章 正文
大家平常写代码过程中最怕什么?反正我最怕的就是一段代码实际没有在使用,但是还安静的躺在那里。在某个月黑风高的夜晚,它又突然很巧合的干了点活,导致你又得收拾残局。这种感觉尤其是在接手其他同学或者团队的项目的时候,更为明显。所以,我但凡看到有不用的代码,我就会在第一时间删除,避免后面造成影响后患无穷。
今天要推荐的项目,能够做到自动的去删除无用的代码,虽然它需要结合功能开关(Flag)来判断,还没有那么的智能。但是这个想法还是非常的棒,它让我们在代码里面使用功能开关的时候,没有后顾之忧了。
在开始介绍项目之前,有必要先介绍一下什么是功能开关。
功能开关是一个轻量级的动态配置框架,通过功能开关可以动态管理代码中的配置项,根据需求为某个应用开启或关闭部分功能,或设置某个性能指标的阈值。通常用于设置黑白名单、运行时动态调整日志级别、降级业务功能等场景。
大概的流程如下图(图片来自网络)。
所以如果当 flag 永远为 true 时,else 中的代码实际已经不再需要了(当然 if 判断也不需要了)。但是这样的清理操作往往很多同学不会及时的去做,这样对于经常使用功能开关的项目来说,长期会存在很多这样的废弃代码,增加了代码的整体复杂度,有时可能会触发某些 bug。
今天要推荐的工具 Piranha,它是由 Uber 开源,是一个能够自动去重构这些已经失效的功能开关代码。简单来说,你只需要给 Piranha 工具传递 flag 的名字及行为,它就会自动将代码重构到符合预期行为的样子。目前已经支持了四种编程语言:Java、JavaScript、Objective-C 和 Swift。
除了直接使用,也可以将 Piranha 集成到开发流水线,实现自动化的代码删除 diff 和 Pull Request 的流程。
更多项目详情请查看如下链接。
开源项目地址:https://github.com/uber/piranha
猜你喜欢
- 2024-11-27 VirtualBox 7.1.2 发布! 带来多项 GUI 更新,无人值守安装已彻底删除
- 2024-11-27 Spring boot+Mybatisplus用AR模式实现逻辑删除操作
- 2024-11-27 碎片时间学编程「127]:从数组中删除元素
- 2024-11-27 JavaScript程序员需要掌握的5个debug技巧
- 2024-11-27 python 列表删除
- 2024-11-27 souce-map-js + Vue 还原生成环境报错,让JS报错无所遁形
- 2024-11-27 如何使用 rmdir 命令删除目录?
- 2024-11-27 illustrator插件-常用功能开发-删除所有蒙版-js脚本开发-AI插件
- 2024-11-27 如何在 Ubuntu 22.04 LTS 中添加、删除和授予用户 Sudo 权限
- 2024-11-27 删除此函数式编程技术的 Switch 语句
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-