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

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

3天内不再提示

十九条垃圾代码书写准则

Q4MP_gh_c472c21 来源:机器之心 作者:Jack-Cui 2022-05-18 14:59 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

项目地址:
https://github.com/trekhleb/state-of-the-art-shitcode

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

第一条:打字越少越好

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

b3c40a8e-d661-11ec-bce3-dac502259ad0.png

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

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

b3df8ea8-d661-11ec-bce3-dac502259ad0.png

第三条:不要写注释

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

b3f6656a-d661-11ec-bce3-dac502259ad0.png

第四条:使用母语写注释

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

b41e0d7c-d661-11ec-bce3-dac502259ad0.png

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

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

b4339a66-d661-11ec-bce3-dac502259ad0.png

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

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

b4508f90-d661-11ec-bce3-dac502259ad0.png

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

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

b46f2f40-d661-11ec-bce3-dac502259ad0.png

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

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

b47ff154-d661-11ec-bce3-dac502259ad0.png

第九条:构建备用变量

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

b48ec166-d661-11ec-bce3-dac502259ad0.png

第十条:Type 使用需谨慎

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

b4a8045a-d661-11ec-bce3-dac502259ad0.png

第十一条:准备「Plan B」

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

b4cd01b0-d661-11ec-bce3-dac502259ad0.png

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

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

b4f73ade-d661-11ec-bce3-dac502259ad0.png

第十三条:混合缩进

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

b51160ee-d661-11ec-bce3-dac502259ad0.png

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

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

b52fe67c-d661-11ec-bce3-dac502259ad0.png

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

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

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

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

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

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

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

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

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

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

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

END 审核编辑 :李倩

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

    关注

    30

    文章

    4941

    浏览量

    73140
  • GitHub
    +关注

    关注

    3

    文章

    484

    浏览量

    18424

原文标题:手把手教你写出令人窒息的烂代码

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

    深度解读PCB设计布局准则

    无论您是在进行高速设计,还是正在设计一块高速PCB,良好的电路板设计实践都有助于确保您的设计能够按预期工作并实现批量生产。在本指南中,我们汇总了适用于大多数现代电路板的一些基本PCB设计布局准则
    的头像 发表于 09-01 14:24 7115次阅读
    深度解读PCB设计布局<b class='flag-5'>准则</b>

    声智科技荣获第十九届北京发明创新大赛银奖

    声智科技自主研发的 “声学 - AI 智能交互”项目凭借领先的技术优势与创新应用,在第十九届北京发明创新大赛中荣获银奖。
    的头像 发表于 08-14 16:53 909次阅读

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

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

    RFID标签在垃圾分类的应用

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

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

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

    基于BLE技术 智能手写笔解决方案:改变你的书写体验PTR5415

    方案说明: 我们的智能手写笔方案基于BLE技术,利用蓝牙低功耗连接手写笔与移动设备(如智能手机、平板电脑)之间的无线通信。可以实时将书写数据上传到手机APP及云端,及时有效的对书写数据进行存档及管理
    发表于 03-11 17:50

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

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

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

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

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

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

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

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

    垃圾分选设备PLC数据采集远程监测系统方案

    随着城市化进程的加速和环保意识的提升,垃圾处理行业面临着前所未有的挑战与机遇。传统的垃圾处理方式已难以满足现代社会的需求,而垃圾分选作为垃圾处理的重要环节,其效率与准确性直接关系到后续
    的头像 发表于 12-16 15:33 771次阅读

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

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