如何避免 while、for、if 的滥用?

2022 年 4 月 21 日
 ALLROBOT

要是一个方法包含很多 while 、for 、if 或 case 啥,代码不仅丑,维护性又烂,大家咋避免这情况的?

5651 次点击
所在节点    程序员
33 条回复
maninfog
2022 年 4 月 21 日
lint 检查?有一项是检查方法复杂度的
villivateur
2022 年 4 月 21 日
没懂你的意思,程序不就是由顺序代码、判断、循环组成的嘛?
secondwtq
2022 年 4 月 21 日
那当然是换用 goto 啦
evoluc97
2022 年 4 月 21 日
多用语法糖
cmdOptionKana
2022 年 4 月 21 日
多数情况下可以拆解成小函数。
stillsilly
2022 年 4 月 21 日
你的问题可能是不会抽象
谷歌搜一下
herich
2022 年 4 月 21 日
套上各种设计模式,消灭 if else, 这样不久之后你的代码就没多少人能看懂了
knir
2022 年 4 月 21 日
if 太多就改成表驱动,循环太多就拆成独立的函数
stillsilly
2022 年 4 月 21 日
我随手帮你找了 2 篇,可以看一下
https://www.infoq.cn/article/txedztawypmafc41kufq
https://zhuanlan.zhihu.com/p/32563505

另外《代码整洁之道》这本书,第 3 章第 3 小节“每个函数一个抽象层次”是讲抽象的,
这书写得超级好,整本书都值得一读
hikarufighter32
2022 年 4 月 21 日
如何避免酱油、醋、盐 的滥用?
GeruzoniAnsasu
2022 年 4 月 21 日
1. if() if () 改为 if(not) break

2. 多写一个函数取代第三层以及更里面的嵌套



比起嵌套条件语句,嵌套匿名函数更让人崩溃, .map(()=>{.map(()=>这样的)})
gesse
2022 年 4 月 21 日
@secondwtq
嚯~哦~
您搁着开倒车呢? 🐶
TWorldIsNButThis
2022 年 4 月 21 日
基本没写过 while
你说的具体是哪个语言?
ryanbuu
2022 年 4 月 21 日
@TWorldIsNButThis 您这是 golang 吧 hhh
adoal
2022 年 4 月 21 日
写成纯函数式呗
66beta
2022 年 4 月 21 日
用 sonar 扫描 可读性复杂度
ALLROBOT
2022 年 4 月 21 日
@TWorldIsNButThis #13 python ,C 之类🤣
golangLover
2022 年 4 月 21 日
v2ex 标准答案: 能跑就行了
cssk
2022 年 4 月 21 日
嵌入式,单片机就应该多用用这些,还要用 goto
fayetitus
2022 年 4 月 21 日
你是不是想问:如何降低圈复杂度?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/848308

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX