Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

现在有很多关于如何编写代码的信息,这里我们给出一些关于如何删除代码的建议。

删除代码的最佳方法

这看起来似乎是明显的,但我不这样认为,因为开发者会使用大量的其他方式来删除代码。 删除代码的方式如下:

选择编辑器中的代码块,单击Backspace键,然后就完成了。

许多开发人员不愿意删除已经写出的东西,他们想要保存大量的代码块以免再次用到。毕竟在编写这些代码块的时候他们付出了很多工作,在调试的时候,它们可以工作。他们不想轻易的将它们扔掉。

这些开发者希望能够保存他们老的代码,所以他们使用一些方式将这些代码失效:注释掉,条件执行,或者仅仅是不再调用。

对于那些开发者,我想说“使用源(控制),Luke”,一个源代码控制系统(例如Git,Mercurial,或者Subversion),意味着你永远不需要担心一些东西会永远丢失。当你再次需要的时候你的储存库会给你提供哪些老代码。

如果你没有一个 源代码控制系统(!?!?!)或者仅仅不想因为查找历史记录而被麻烦,那么可以将代码块复制到一个单独的文件区域,并保存。但是不要让代码留在他们不应该在的地方:在你的源代码里。

What's the big deal?

如果你有一块不再需要的代码,有一个需要删除它而不是将它处于失效状态的重大原因:减少噪音和不确定性。一个开发者会碰到一些最糟糕的敌人就是代码中的噪音和不确定性,因为未来这些会导致代码不能有效地运行。

失效状态的代码块会引起不确定性。它会对其他开发者带来疑惑:

§这个代码过去为什么是这个方式?

§为什么新的方式更好?

§我们需要需要换回就的方式吗?

§我们怎么决定?

如果这些问题的答案需要人们知道,那么写一个注释说明它。不要让你的合作者猜测你的用意。

注释掉代码

注释掉一行或者两行(甚至20行)代码是非常简单的:

// OldWayStepOne(fooey);// OldWayStepTwo(gooey);NewWay(fooey, gooey);

这些注释是糟糕的。注释应该用于给读者提供他们阅读或者编写代码时需要的信息。注释应该用于帮助未来将会使用这些代码的开发人员。但是上面的注释并没有起到这些效果。事实上,它们的作用刚好相反。在将代码从编译中移除的同时,这些注释增加了代码的混乱、不确定性以及可质疑性。

后续的开发人员在查看这个代码时会知道它老的运行方式,也会知道它新的运行方式,但是它们不知道为什么老的运行方式依旧被保存着:

§可能新的方式只是一种实验?如果是这种情况,那么更好的代码是什么?最终版本的代码是如何以及何时保存的?

§或许老的方式是更好的,但是有一些错误?如果是这样的话,错误在哪里?是老的方式中代码有问题,还是我们调用时产生的问题?何时会被修复?

§或许设计以及改变了,所以老的方式不足以胜任?

任何的注释掉的代码都是一个潜在的问题“为什么它仍然存在?保留一块注释掉的代码是有理由的,比如当你知道很快就会恢复或者那些并不确定的修改。保存代码通常没问题,但是你需要表明为什么保留,注释是为了给别人看的,而注释中的代码并不能告诉任何人任何事情。

不要在没有任何解释的情况下注释掉一段代码(in the comment).

下面这种方式会不会更好?:

// OldWay did a better job, but is too inefficient until MumbleFrabbitz// is overhauled, so we'll use NewWay until the M4 milestone.// OldWayStepOne(fooey);// OldWayStepTwo(gooey);NewWay(fooey, gooey);

现在,谁知道是否MumbleFrabbitz真的会迎来M4里程碑式的大修?或许这种情况不会发生。但是没关系,谁能知道未来会出现什么情况?至少通过这种方式开发者会知道代码被保存下来的原因。通过对改变的解释以及老代码存在的原因说明,开发者会知道他们可以安心的使用新方式,或者何时他们可以有到更好的解决方法。

英文原文:http://nedbatchelder.com/text/deleting-code.html

译者:meyshine

python如何删除代码_删除代码(上)相关推荐

  1. java删除确认_删除添加确认事件

    停留的风 阅读(554) 评论(0)  编辑  收藏 所属分类: .NET技巧特辑 如何在DataGrid中点击删除时弹出确认,按"确定"时实施删除? 在datagrid的Item ...

  2. 管理员所有权代码_为什么代码所有权糟透了,您永远不应该在有实践的地方工作...

    管理员所有权代码 Code ownership sucks. 代码所有权糟透了. It limits code and stunts your growth as a developer. 它限制了代 ...

  3. 网页漂浮物代码_无代码VS低代码。 有什么不同? 它。 不。 物。

    网页漂浮物代码 You may hear the terms "No Code" and "Low Code" thrown around by develop ...

  4. python jupyter输出结果_在Jupyter上学习python(U.1)

    为mooc网站的北京理工大学的 嵩天 .黄天羽 .礼欣 三位老师的课程笔记. Python学习 一.Python基本语法元素 1.程序设计基本方法 1.计算机的概念:功能性.可编程性: 计算机发展:遵 ...

  5. 计算机休眠文件可以删除吗,win10休眠文件有必要删除吗_删除休眠文件的方法-win7之家...

    最近有win10小伙伴发现C盘内存不太够了就翻阅起了C盘文件,在无意中发现了hiberfil.sys文件所占内存特别高,一搜索发现是休眠文件.因此就想问问小编休眠文件有必要删除吗?其实删除休眠文件的影 ...

  6. python中返回上一步操作的代码_【代码学习】PYTHON字符串的常见操作

    一.字符串运算符 下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python": 操作符描述实例 + 字符串连接 >>>a+ ...

  7. python温湿度传感器源代码_在树莓派上读取DHT11温湿度传感器-python代码实现及常见问题(全面简单易懂)...

    最近由于自己的课题需要,想要用在树莓派上使用DHT11温湿度传感器来读取空气中温湿度,遇到了几个问题,解决之后也对之前的知识进行了回顾,总结,特整理如下,希望能给也在学习树莓派的小伙伴们带来一些帮助. ...

  8. python温湿度传感器源代码_在树莓派上读取DHT11温湿度传感器python代码实现及常见问题(全面简单易懂)...

    最近由于自己的课题需要,想要用在树莓派上使用DHT11温湿度传感器来读取空气中温湿度,遇到了几个问题,解决之后也对之前的知识进行了回顾,总结,特整理如下,希望能给也在学习树莓派的小伙伴们带来一些帮助. ...

  9. python时钟罗盘酷炫代码_抖音上的时钟屏保,被我改造完用来表白

    作者:爱编程的小和尚 原文链接:https://blog.csdn.net/Newbie___/article/details/105378852 抖音上很火的时钟屏保,被我改造完后用来准备准备准备表 ...

  10. python图片转手绘_在Mac上用python运行图片转手绘图的代码报错,请各位大佬帮忙。...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 原文代码: # -*- coding: utf-8 -*- from PIL import Image import numpy as np im = I ...

最新文章

  1. Docker增强Container的安全性
  2. oracle 数组类型
  3. idea 调用c#接口_Dubbo 接口测试方法
  4. [转载] Java默认构造方法
  5. 银河麒麟-麒麟软件操作系统 kylin 搭建yum源 ubuntu搭建yum源 yum软件仓库搭建ftp源、python源、硬盘源
  6. 计算机二级Python公共基础部分
  7. 手术导航系统原理简介、主要工作及应用
  8. ideal如何快速导入import_IntelliJ IDEA 自动导入包 快捷方式
  9. 桌面图标设置计算机无法勾选,电脑桌面勾选了显示桌面图标仍然不显示的解决办法...
  10. 中国象棋---棋盘/棋子
  11. 教师资格证面试缴费找不到服务器,2016年教师资格证考试报名网上缴费常见问题...
  12. 修复 iPhone X H5 底部安全区域定位按钮下内容穿透 BUG
  13. html5 视差地图,用HTML5构建高性能视差网站的图文代码详解
  14. 名爵5显示服务器异常,名爵5危险警告灯异常闪烁
  15. PS一键制作针织毛衣纹理图案效果
  16. 作业——机器学习教你预测商品销售额
  17. Windows、Linux下安装Maven图文教程
  18. Android获取IMEI码及利用方法
  19. 开源中国20份毕业设计论文致谢,谢辞,大学生的毕业论文致谢词,致谢词的范文...
  20. 三星手机 SM-G9730 ROM包

热门文章

  1. NSACE|网络信息安全技术,你不能忽视的存在
  2. matlab 暴雨强度公式,对雨水暴雨强度公式中降雨历时的分析.pdf
  3. kafka分布式消息系统集群搭建-- 详细过程
  4. 【正一专栏】读《夜谭十记》——爱不释手
  5. 智能车竞赛技术报告 | 智能车视觉 - 西北工业大学 - 赤霄2021
  6. QQ所有文件和目录详细分析
  7. vs2008的永久破解安装
  8. Spring Boot设置上传文件大小
  9. window上mySQL以及其可视化工具的安装
  10. 红米note5linux刷机包_红米Note5刷机包 MIUI11