返回顶部
首页 > 资讯 > 精选 >Shit一样的烂代码,你爱了吗?
  • 653
分享到

Shit一样的烂代码,你爱了吗?

2023-07-26 15:07:49 653人浏览 独家记忆
摘要

在 GitHub 上有一个项目,它描述了「最佳垃圾代码」的十九条关键准则。从变量命名到注释编写。这些准则将指导你写出最亮眼的烂代码。为了保持与原 gitHub 项目一致的风格,下文没有进行转换。读者们可以以相反的角度来理解所有观点,这样就能

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

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

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

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

? 第一条:打字越少越好

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

Shit一样的烂代码,你爱了吗?

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

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

Shit一样的烂代码,你爱了吗?

?第三条:不要写注释

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

Shit一样的烂代码,你爱了吗?

?第四条:使用母语写注释

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

Shit一样的烂代码,你爱了吗?

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

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

Shit一样的烂代码,你爱了吗?

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

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

Shit一样的烂代码,你爱了吗?

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

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

Shit一样的烂代码,你爱了吗?

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

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

Shit一样的烂代码,你爱了吗?

?第九条:构建备用变量

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

Shit一样的烂代码,你爱了吗?

?第十条:Type 使用需谨慎

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

Shit一样的烂代码,你爱了吗?

?第十一条:准备「Plan B」

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

Shit一样的烂代码,你爱了吗?

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

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

Shit一样的烂代码,你爱了吗?

?第十三条:混合缩进

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

Shit一样的烂代码,你爱了吗?

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

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

Shit一样的烂代码,你爱了吗?

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

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

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

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

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

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

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

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

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

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

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


--结束END--

本文标题: Shit一样的烂代码,你爱了吗?

本文链接: https://lsjlt.com/news/364367.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Shit一样的烂代码,你爱了吗?
    在 GitHub 上有一个项目,它描述了「最佳垃圾代码」的十九条关键准则。从变量命名到注释编写。这些准则将指导你写出最亮眼的烂代码。为了保持与原 GitHub 项目一致的风格,下文没有进行转换。读者们可以以相反的角度来理解所有观点,这样就能...
    99+
    2023-07-26
  • Python制作爱心跳动代码,这就是程序员的烂漫吗
    今天我们就用Python来尝试一下制作爱心跳动代码吧! 怎么说呢,用这个表白也可以的,万一她也看这个剧呢,万一就成了呢 哈哈 冲啊,兄弟们 okok 话不多说,现在开始代码部分 代码 模块导入 im...
    99+
    2023-10-27
    python 信息可视化 开发语言 学习
  • JAVA代码块你了解吗
    目录非静态代码块:没有static修饰的代码块静态代码块:用static修饰的代码块用处总结非静态代码块:没有static修饰的代码块 可以有输出语句 可以对类的属...
    99+
    2024-04-02
  • 使用Python绘制跳动的爱心,让你的代码也充满爱意!
    今天我要分享一个浪漫小技巧,使用Python中的HTML制作一个立体、动态的小爱心。通过成千上百个小爱心的组合,形成一个大爱心,从内到外呈现出立体的效果,给人带来强烈的视觉冲击。这个小技巧非常浪漫,让人感受到爱的力量。 一.粉色爱心 ...
    99+
    2023-10-03
    java javascript 前端
  • 混乱C源代码的几个错误,你犯了吗?
    下面是一个Step by Step的教程,教你如何把一个清晰的代码变得复杂难懂的。当然,这只是一个“简明教程”了。开始程序下面是一个找出素数的程序:下面我们来看看如何把上面这段代码搞得复杂难懂。第一步、把for变成while通常来说,for...
    99+
    2023-06-03
  • Java的代理模式你真的了解吗
    目录代理模式原理解析动态代理的原理解析代理模式的应用场景代理模式原理解析 代理模式(Proxy Design Pattern),它在不改变原始类(或者叫被代理类)代码的情况下,通过引...
    99+
    2024-04-02
  • Java代码审计的一些基础知识你知道吗
    目录JSP生命周期详细过程:War包结构JAVA 内置对象JAVA 中的危险函数名词概念总结JSP生命周期 关键词:Web服务器,JSP容器,JVM(Java虚拟机),servlet...
    99+
    2024-04-02
  • 年底了,你的mysql密码安全吗
    前言:  年底了,你的数据库是不是该巡检了?一般巡检都会关心密码安全问题,比如密码复杂度设置,是否有定期修改等。特别是进行等保评测时,评测机构会要求具备密码安全策略。其实 MySQL 系统本身可以设置密码复...
    99+
    2022-05-13
    mysql 密码 mysql 安全
  • 【双十一特辑】爱心代码(程序员的浪漫)-李峋
    前言 最近《点燃我温暖你》中李峋的爱心代码超级火,看着特别心动,这不,光棍节快到了,给兄弟们教学一波爱心代码,赶在双十一前表白,让这个双十一不在是孤单一个人! 目录 前言 C语言简易爱心代码 原理 代码 执行结果 C语言动态爱心代...
    99+
    2023-08-31
    开发语言 c语言 python html5 javascript
  • 使用用C++做一颗会跳动的爱心实例代码
    目录前言开始总结前言 大家好,本篇文章主要讲的是使用用C++做一颗会跳动的爱心实例代码 开始 先来看看效果: 程序描述: 程序先以较慢的速度画一个大爱心,之后跳动的心其实从视觉上...
    99+
    2024-04-02
  • Java 动态代理你真的懂了吗(动态和代理)
    好几天不写文章,今天来写一篇,从之前的计划表上看到还有关于java的动态代理没写,这个技术平常用的少,也不是特别好理解,今天补上这篇,希望能讲明白,不至于像我一样迷茫好久,开始吧 动...
    99+
    2024-04-02
  • 一篇文章带你了解Go到C的代码转换过程
    随着软件开发的迅速发展,越来越多的编程语言涌现出来,每一种语言都有其独特的特点和优势。在开发过程中,有时候我们会面临将一个项目从一种编程语言转换成另一种编程语言的情况。本文将以Go语言...
    99+
    2024-03-07
    c go 转换 go语言 string类
  • 3000行代码怎样简化成300行?来,一文来教你!
    前言APT(Annotation Processor Tool)是用来处理注解的,即注解处理器。APT 在编译器会扫描处理源代码中的注解,我们可以使用这些注解,然后利用 APT自动生成 Java代码,减少模板代...
    99+
    2023-06-04
  • 二维码在 Unix 中的应用,你了解吗?
    二维码(QR Code)是一种矩阵式二维条码,由日本DENSO公司在1994年研制发明。二维码可以存储大量信息,而且可通过扫描设备读取,成为现今广泛应用于商业和个人领域的一种信息交互方式。在Unix系统中,二维码也有着各种应用,下面就来具...
    99+
    2023-08-27
    教程 二维码 unix
  • 教你一招,提升你Python代码的可读性
    Python的初学者,开发者都应该知道的代码可读性提高技巧,本篇主要介绍了如下内容: PEP 8是什么以及它存在的原因 为什么你应该编写符合PEP 8标准的代码 如何编写符合PEP 8的代码   PEP 8 的存在是为了提高Py...
    99+
    2023-01-30
    可读性 教你 一招
  • 你知道吗?PHP shell文件打包只需要一行代码!
    Shell文件是一种用于在Linux和Unix系统下执行命令的脚本文件。在开发Web应用时,PHP shell文件可以帮助我们更方便地管理服务器和执行一些常用的任务。但是,当我们需要将多个shell文件打包成一个文件时,手动操作会变得非常...
    99+
    2023-08-03
    shell 文件 打包
  • 你真的了解 Python 并发编程吗?掌握这些 bash 函数,让你的代码更高效!
    Python 是一门非常流行的编程语言,它的并发编程能力也在不断地提高。但是,很多人并不了解 Python 并发编程,也不知道如何让自己的代码更高效。在本文中,我们将介绍一些常用的 bash 函数,帮助您掌握 Python 并发编程,以及让...
    99+
    2023-07-08
    并发 bash 函数
  • 你一定会收藏的Nodejs代码片段
    以下就是为大家分享的四段Nodejs值得收集的代码片段,供大家参考,具体内容如下 1、关于Nodejs的静态资源压缩与缓存参见:Nodejs打造静态资源服务器与文件上传刚学Express那会,动态文件的gz...
    99+
    2022-06-04
    片段 代码 收藏
  • PHP 异常处理:让你的代码像专业人士一样处理错误
    异常处理在 PHP 中至关重要,可以帮助你优雅地处理错误,并防止你的应用程序崩溃。它使你能够捕获、处理和恢复从应用程序中引发的异常,从而提高代码的健壮性和可维护性。 异常的概念: 异常是 PHP 中的特殊对象,表示运行时发生的错误或意外情...
    99+
    2024-04-02
  • 面试官:你了解axios的原理吗?有看过它的源码吗?
    面试官:你了解axios的原理吗?有看过它的源码吗? 一、axios的基本使用 关于 axios 的基本使用,上篇文章已经有所涉及,这里再稍微回顾一下: 发送请求 import axios from...
    99+
    2023-10-11
    react.js javascript 前端 github typescript 原力计划
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作