0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

这19种垃圾代码千万不要写!

工程师 来源:机器之心 作者:机器之心 2020-09-11 10:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

来源:机器之心

「代码写得好」是对机器学习研究者及开发者最好的赞扬。其第一层意思是说,你的模型非常好,有自己的理解与修正;第二层意思是说代码的结构、命名规则、编写逻辑都非常优秀。

我们曾经将写代码比喻成写文章:不仅需要有一个主旨,告诉别人代码的作用是什么,同时还应该在精炼与易读之间做权衡。代码过于精炼,整体逻辑难以跟随,代码过于易读,整体就显得比较臃肿。

在精简与易读之间做权衡,第一种方法根据列表推导式能获得更精简的代码,但第二种方法更易读。

如果说到什么是好代码,我们肯定都能说出一堆规则,例如使用一致的格式和缩进、使用清晰的变量名和方法名、在必要时提供文档与注释、不要过度精简代码等等。

但是对于什么是烂代码,你有比较清晰的认识吗?

在 GitHub 上有一个项目,它描述了「最佳垃圾代码」的十九条关键准则。从变量命名到注释编写。这些准则将指导你写出最亮眼的烂代码。

为了保持与原 GitHub 项目一致的风格,下文没有进行转换。读者们可以以相反的角度来理解所有观点,这样就能完美避免写出垃圾代码。

当然,以下十九条垃圾代码书写准则并没有面面俱到,如果读者们发现有一些难以忍受的烂代码习惯,也可以后台留言发表你的看法。

第一条:打字越少越好

如果我们键入的东西越少,那么就有越多的时间去思考代码逻辑等问题。如下所示,「Good」表示遵循该规则的示例,Bad 表示没遵循该规则的示例。

第二条:变量/函数混合命名风格

我们需要混合命名方法与变量,这样才能体现命名的多样性。

第三条:不要写注释

反正代码都看得懂,为什么要写注释?或者说,反正没人看我的代码,为什么要写注释?

第四条:使用母语写注释

如果你违反了第三条规则,那么至少写注释需要用你的母语或者其它语言。如果你的母语是英语,那么你也算违反了这条规则。既然编程语言绝大多数都是用英文,那么为什么不用其它语言注释一下?

第五条:尽可能混合不同的格式

同样,为了代码的多样性,我们需要尽可能混合不同的格式,例如单引号或双引号。如果它们的语义相同,那就应该混用。

第六条:尽可能把代码写成一行

如果一系列参数与方法都是一起实现的,那么代码也要写在一起。

第七条:发现错误要保持静默

当你发现某些错误时,其他人不需要了解它,因此不需要打印出日志或 Traceback。

第八条:广泛使用全局变量

使用全局变量,是面向「全球化」不可或缺的部分。

第九条:构建备用变量

以防万一,我们需要创建一些备用变量,在需要时随时调用它们。

第十条:Type 使用需谨慎

一般不要指定变量类型或者经常做类型检查,无类型才是最好的类型。

第十一条:准备「Plan B」

你需要准备一些运行不到的代码(unreachable code),它们可以作为你的「Plan B」。

第十二条:嵌套的三角法则

如果代码有一些嵌套结构,或者说缩进空行的结构,三角法则是最漂亮的。

第十三条:混合缩进

我们需要避免采用缩进,因为缩进会使复杂代码在编辑器中占用更多的空间。如果一定要采用缩进,那么就使用混合缩进策略。当然,这种策略在 Python 中是行不通的,因为它靠缩进来确定代码结构。

第十四条:不要锁住依赖项

每一次要安装新库时,更新已有的依赖项。为什么要维持之前的版本呢,我们需要时刻保持最新的第三方代码库。

第十五条:长函数比短函数好

不要将程序整体逻辑分割为一些代码块,要是 IDE 突然不行了,它找不到必要的文件或函数怎么办。因此把代码写在一个主体函数中,并且不再维护额外的函数导入或代码文件,那么这样的方法是最稳定的。

单个文件一万行代码是没问题的,单个函数一千行代码也是没问题的。

第十六条:代码不需要做特定测试

这些测试通常是重复且无意义的工作。

第十七条:尽量避免重复代码

按你的想法写代码,尤其是在小团队中,毕竟这是「自由」准则。

第十八条:构建新项目不需要 README 文档

在项目前期,我们可以暂时保持这种状态。

第十九条:保存不必要的代码

在写代码的过程中,经常会产生很多测试代码。这些代码也是非常重要的资料,因此不能删除掉,最多只能注释掉。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    90

    文章

    3707

    浏览量

    96756
  • 源代码
    +关注

    关注

    96

    文章

    2953

    浏览量

    69644
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【启扬方案】基于RK3576的智能垃圾分类站应用解决方案

    伴随着城市化进程的加速和环境问题的日益凸显,人们对于环境保护的关注度也在不断提高,垃圾分类处理成为社会发展的重要议题。为有效解决垃圾分类和管理的难题,智能垃圾分类站应运而生。智能垃圾
    的头像 发表于 12-04 17:29 194次阅读
    【启扬方案】基于RK3576的智能<b class='flag-5'>垃圾</b>分类站应用解决方案

    避坑指南!RK3568开发板选型,5点没看清千万别下手!(附迅为驱动开发指南资源)

    避坑指南!RK3568开发板选型,5点没看清千万别下手!(附迅为驱动开发指南资源)
    的头像 发表于 10-30 15:49 333次阅读
    避坑指南!RK3568开发板选型,<b class='flag-5'>这</b>5点没看清<b class='flag-5'>千万</b>别下手!(附迅为驱动开发指南资源)

    RFID在垃圾分类中的核心优势

    RFID在垃圾分类中的核心优势精准溯源每个居民或单位的垃圾桶配备唯一编码的RFID标签,系统可记录每次投放的时间、地点和责任人,实现垃圾来源可追溯。自动识别分类在智能垃圾箱上安装RFI
    的头像 发表于 09-23 11:08 369次阅读
    RFID在<b class='flag-5'>垃圾</b>分类中的核心优势

    智慧城市物联网解决方案:垃圾中转站监控运维平台

    垃圾中转站是保障城市生活垃圾集中收纳、暂存与转运的核心基础设施,承担着从垃圾收集进场、压缩处理到转运出库的全流程运行职能,其运行过程中的设备运行稳定性、环境污染物控制与垃圾转运效率,直
    的头像 发表于 09-03 15:20 354次阅读
    智慧城市物联网解决方案:<b class='flag-5'>垃圾</b>中转站监控运维平台

    广州黄埔城管携手海康威视打造垃圾分类智慧管理系统

    走进广州黄埔社区,"无异味、无污渍、无混投"的垃圾投放点已成为新日常。四色分类垃圾桶整齐摆放,清新空气与整洁环境让居民倍感舒心。
    的头像 发表于 08-06 10:28 701次阅读

    RFID标签在垃圾分类的应用

    二、RFID标签在垃圾分类中的优势高效率:RFID可以快速批量读取垃圾信息,大幅缩短操作时间,提高垃圾分类效率。准确性:RFID减少了人工操作的错误率,提高了垃圾分类的准确性和可靠性。
    的头像 发表于 07-31 16:48 629次阅读
    RFID标签在<b class='flag-5'>垃圾</b>分类的应用

    一文解释清楚云服务器系统盘怎么清除垃圾

    在现代云计算的环境中,云服务器已经成为企业和个人用户的主要选择。在使用云服务器的过程中,用户往往会面临系统盘空间不足的问题,主要是由于各种应用程序、下载文件、日志文件和缓存的生成。为了保障云服务器
    的头像 发表于 07-30 14:28 426次阅读

    生活垃圾焚烧发电厂数据采集可视化管理系统

    生活垃圾焚烧发电是通过对燃烧热值较高的垃圾进行高温焚烧,使得在高温焚烧中产生的热能转化为高温蒸汽,进而推动汽轮机并带动发电机发电,是一污染较小、效益较高的污染治理方式。但同时焚烧发电也会带来废水
    的头像 发表于 06-04 17:13 410次阅读

    垃圾回收破碎机远程监控物联网系统方案

    垃圾回收处理行业中,破碎机是一专门用于将废弃物料(如生活垃圾、工业废料、建筑垃圾、电子垃圾等)通过物理破碎的方式减小体积、提升后续处理效
    的头像 发表于 05-19 14:25 329次阅读
    <b class='flag-5'>垃圾</b>回收破碎机远程监控物联网系统方案

    嵌入式工业级显示器在环保垃圾柜设备中发挥着至关重要的作用

    嵌入式工业级显示器在环保垃圾柜设备中发挥着至关重要的作用。以下是其具体作用的分析: 一、提供交互界面 嵌入式工业级显示器为环保垃圾柜设备提供了一个直观、易用的交互界面。用户可以通过触摸屏幕进行操作
    的头像 发表于 02-21 11:36 570次阅读
    嵌入式工业级显示器在环保<b class='flag-5'>垃圾</b>柜设备中发挥着至关重要的作用

    嵌入式工业级显示器在环保垃圾柜设备中的作用

    嵌入式工业级显示器在环保垃圾柜设备中发挥着至关重要的作用。以下是其具体作用的分析: 一、提供交互界面 嵌入式工业级显示器为环保垃圾柜设备提供了一个直观、易用的交互界面。用户可以通过触摸屏幕进行操作
    的头像 发表于 02-21 11:18 544次阅读
    嵌入式工业级显示器在环保<b class='flag-5'>垃圾</b>柜设备中的作用

    智能垃圾投放站远程监控智慧运维系统方案

    随着环保意识的提高和政策的推动,垃圾分类已成为全球发展的重要主题。我国持续推进垃圾分类和回收等相关产业的发展,鼓励居民和企业进行垃圾分类和回收,以减少资源浪费和环境污染。 智能垃圾投放
    的头像 发表于 12-31 15:47 608次阅读

    垃圾桶满溢检测器中溢满程度监测方案

    这两年来,随着物联网、人工智能、云计算、大数据等技术在智慧环卫领域的逐步下沉渗透,使得城市环卫的数字化作业模式也愈加成熟。广为熟知的便是垃圾分类管理。垃圾分类管理采用垃圾桶对垃圾进行分
    的头像 发表于 12-20 16:15 1380次阅读
    <b class='flag-5'>垃圾</b>桶满溢检测器中溢满程度监测方案

    垃圾短信?手机自动识别垃圾短信逻辑的分析

    作者:京东科技 贾玉龙 1 背景 随着智能手机的普及和移动互联网的发展,短信作为一传统的通讯方式,仍然保持着其独特的地位。然而,随着垃圾短信的泛滥,手机自动识别垃圾短信的技术也在不断进步。对于提供
    的头像 发表于 12-16 10:19 1468次阅读

    霍尔元件DH627/DH629在智能垃圾桶中的应用

    霍尔元件在智能垃圾桶中的应用主要体现在其作为磁传感器的功能上,通过检测磁场及其变化来控制垃圾桶的开关和其他功能。以下是对霍尔元件在智能垃圾桶中应用的详细阐述: 一、霍尔元件的基本原理 霍尔元件是一
    的头像 发表于 12-06 11:28 946次阅读
    霍尔元件DH627/DH629在智能<b class='flag-5'>垃圾</b>桶中的应用