过于优化的循环让眼睛感到不适
TL;DR:没有明确需求和具体证据,不要随意优化循环
存在的问题
- 比如过早优化
- 代码难以阅读
- 代码变得更复杂
- 维护起来比较麻烦
- 调试效率降低
- 保持简洁
- 优先考虑清晰
- 避免过早修改
- 适时重构
你可能会认为优化每个循环都能提高性能,但当你为了未经验证的性能提升而牺牲了可读性时,这种做法反而会事与愿违。
编写过于复杂的代码来避免假设的性能瓶颈,这通常会让其他人(包括你未来的自己)很难理解和调试。
最好还是把可读性放在第一位。
保持循环简单,只有在确认在实际使用中真的存在性能瓶颈问题时才进行优化。
代码样例 错了 # 这段代码优化过度,可读性差
result = [item.process() for item in items if item.is_valid()]
好的
# 这里更清晰易懂
result = []
for item in items:
if item.有效():
# 处理每个有效的item并添加到结果列表中
result.append(item.process())
检测
[X] 半自动(注:这里指的是不需要完全人工操作,但也不完全是全自动的过程或设备。)
寻找列表生成式或复杂的循环结构,在没有实际性能基准证据的情况下优化性能的。
异常情况- 关键任务算法的确凿证据
过早的优化
等级 ("# Level")【X】 中级
AI人工智能工具通常优先考虑功能正确性,从而往往会生成简洁的循环。
如果你要求AI不惜一切代价地追求极致性能,它甚至可能为即使是简单的任务生成过于复杂的代码。
AI检测功能在正确的指导下,强调代码的可读性和可维护性,AI可以在正确指导下检测并修复这种代码异味,通过简化循环,并在清晰性和早期优化之间选择清晰性。
一个试试看!记住:AI助手会犯不少错。
没有正确的指引 具体指示- [ChatGPT](https://chat.openai.com/?q=转换为更易读的语句,移除优化:%60%60%60python%0D%0A# 原优化过度,不易阅读%0D%0Aresult = [item.process() for item in items if item.is_valid()]%0D%0A%60%60%60)
- [Claude](https://claude.ai/new?q=转换为更易读的语句,移除优化:%60%60%60python%0D%0A# 原优化过度,不易阅读%0D%0Aresult = [item.process() for item in items if item.is_valid()]%0D%0A%60%60%60)
- [Perplexity](https://perplexity.ai/?q=转换为更易读的语句,移除优化:%60%60%60python%0D%0A# 原优化过度,不易阅读%0D%0Aresult = [item.process() for item in items if item.is_valid()]%0D%0A%60%60%60)
- [Copilot](https://www.bing.com/chat?showconv=1&sendquery=1&q=转换为更易读的语句,移除优化:%60%60%60python%0D%0A# 原优化过度,不易阅读%0D%0Aresult = [item.process() for item in items if item.is_valid()]%0D%0A%60%60%60)
- [Gemini](https://gemini.google.com/?q=转换为更易读的语句,移除优化:%60%60%60python%0D%0A# 原优化过度,不易阅读%0D%0Aresult = [item.process() for item in items if item.is_valid()]%0D%0A%60%60%60)
(注:此处添加空行以符合中文文档格式要求)
不要为了追求过早的优化而牺牲了可读性。
你可以稍后优化,如果一个循环被证实是瓶颈的话。
在此之前,清晰且简单的代码将节省时间,减少错误,并使其更易于维护。
关系 代码异味 20 — 过早优化:预先规划需要一颗任何开发者都没有的水晶球。blog.devgenius.io 代码异味 129 — 结构优化我们常常通过假设不现实的情况来优化结构mcsee.medium.com 代码异味 06 — 太聪明的程序员写的代码难以理解。他们经常使用没有意义的名字,还喜欢利用语言的复杂性来耍花样。 注意: 请看下面的免责声明哦。代码异味在我的看法中。观点。
致谢照片由Tine Ivanič在Unsplash拍摄。
以效率之名犯下的计算错误比任何其他原因都要多,却不一定真正提高效率。
W. A. Wulf(W. A. Wulf)
软件工程中的精彩格言:一句简短的话语可以激发惊人的想法。blog.devgenius.io本文是CodeSmell系列的一部分。
找出代码中的异味: 如何做blog.devgenius.io点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦