您当前的位置:首页 > 生活百科 > 知识

手牵手教你写代码,从入门到精通

时间:2020-03-10 11:26:36  来源:  作者:

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

 

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

 

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

 

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

 

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

 

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

 

第一条:打字越少越好

 

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

 

手牵手教你写代码,从入门到精通

 


第二条:****变量/函数混合命名风格我们需要混合命名方法与变量,这样才能体现命名的多样性。

 

手牵手教你写代码,从入门到精通

 

 

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

 

手牵手教你写代码,从入门到精通

 

 

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

 

手牵手教你写代码,从入门到精通

 

 

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

 

手牵手教你写代码,从入门到精通

 

 

第六条:****尽可能把代码写成一行如果一系列参数与方法都是一起实现的,那么代码也要写在一起。

 

手牵手教你写代码,从入门到精通

 

 

第七条:****发现错误要保持静默当你发现某些错误时,其他人不需要了解它,因此不需要打印出日志或 Traceback。

 

手牵手教你写代码,从入门到精通

 

 

第八条:****广泛使用全局变量使用全局变量,是面向「全球化」不可或缺的部分。

 

手牵手教你写代码,从入门到精通

 

 

第九条:****构建备用变量以防万一,我们需要创建一些备用变量,在需要时随时调用它们。

 

手牵手教你写代码,从入门到精通

 

 

第十条:****Type 使用需谨慎一般不要指定变量类型或者经常做类型检查,无类型才是最好的类型。

 

手牵手教你写代码,从入门到精通

 

 

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

 

手牵手教你写代码,从入门到精通

 

 

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

 

手牵手教你写代码,从入门到精通

 

 

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

 

手牵手教你写代码,从入门到精通

 

 

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

 

手牵手教你写代码,从入门到精通

 

 

第十五条:****长函数比短函数好不要将程序整体逻辑分割为一些代码块,要是 IDE 突然不行了,它找不到必要的文件或函数怎么办。因此把代码写在一个主体函数中,并且不再维护额外的函数导入或代码文件,那么这样的方法是最稳定的。单个文件一万行代码是没问题的,单个函数一千行代码也是没问题的。

 

第十六条:****代码不需要做特定测试这些测试通常是重复且无意义的工作。

 

第十七条:****尽量避免重复代码按你的想法写代码,尤其是在小团队中,毕竟这是「自由」准则。

 

第十八条:****构建新项目不需要 README 文档在项目前期,我们可以暂时保持这种状态。

 

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



Tags:代码   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
前言几乎所有.NET序列化程序的实现基础都是反射。下列代码是Newtonsoft.Json的实现:protectedvirtualJsonPropertyCreateProperty(MemberInfomember,MemberSerializationmemb...【详细内容】
2021-12-28  Tags: 代码  点击:(2)  评论:(0)  加入收藏
在SEO优化中,最重要的评估之一就是确定网站上存在哪些HTTP状态代码。这些代码可能会变得很复杂,成为一个难题,必须先解决这些难题,然后才能完成其他任务。例如,如果你放置的页面...【详细内容】
2021-12-24  Tags: 代码  点击:(5)  评论:(0)  加入收藏
1、通过条件判断给变量赋值布尔值的正确姿势// badif (a === 'a') { b = true} else { b = false}// goodb = a === 'a'2、在if中判断数组长度不为零...【详细内容】
2021-12-24  Tags: 代码  点击:(6)  评论:(0)  加入收藏
前言本文提供将视频调整分辨率的Python代码,一如既往的实用主义。环境依赖ffmpeg环境安装,可以参考我的另一篇文章: windows ffmpeg安装部署_阿良的博客-CSDN博客ffmpy安装:pip...【详细内容】
2021-12-14  Tags: 代码  点击:(15)  评论:(0)  加入收藏
大家好, 我是林路,今天就给大家介绍Python代码都是用的什么编辑器写的?Jupyter Notebook ,没有Pycharm,没有Vscode,没有Sublime text。 只有一款工具:Jupyter Notebook 。工欲善其...【详细内容】
2021-12-09  Tags: 代码  点击:(27)  评论:(0)  加入收藏
在这篇文章中,我将与你分享一些关于JS的技巧,可以提高你的JS技能。1.避免if过长如果判断值满足多个条件,我们可能会这么写:if (value === 'a' || value === 'b'...【详细内容】
2021-11-17  Tags: 代码  点击:(22)  评论:(0)  加入收藏
一、为什么需要使用内存池在C/C++中我们通常使用malloc,free或new,delete来动态分配内存。一方面,因为这些函数涉及到了系统调用,所以频繁的调用必然会导致程序性能的损耗;另一...【详细内容】
2021-11-17  Tags: 代码  点击:(38)  评论:(0)  加入收藏
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个由百度开源的低代码前端框架——amis...【详细内容】
2021-11-05  Tags: 代码  点击:(68)  评论:(0)  加入收藏
程序员是青春饭,这在国内似乎是公认的。所以很多公司不愿招大龄程序员,很多程序员也“知趣”地及早转型。有的做管理,有的做架构,我还见过改行卖保险的。总之,年龄大了不想敲代码...【详细内容】
2021-10-27  Tags: 代码  点击:(30)  评论:(0)  加入收藏
我们来看看我们拨号键盘除了能打电话还能干什么iphone 的拨号键盘除了用来拨号,其实暗藏代码输入星井06井可以查询手机真实的IMEI码,这个码是独一无二的没有双胞胎 输入星3001...【详细内容】
2021-10-25  Tags: 代码  点击:(78)  评论:(0)  加入收藏
▌简易百科推荐
在狗界中,有些狗狗比较凶残、霸道,今天我们就来说说被称为“犬中四煞”的4种狗,请认住它们的长相,看见了要绕路走! NO1:黑狼犬产地:中国寿命:11-12年黑狼犬是狼狗的一种,长大高大威猛...【详细内容】
2021-12-28  狗狗知识百科    Tags:   点击:(3)  评论:(0)  加入收藏
现在我们国家提倡一个“匠心”精神,何谓“匠心”精神呢?其实就是要我们向古代八大匠学习,学习他们的精益求精,学习他们的一丝不苟。既然说到八大匠,那么,我们今天就来聊一聊古代的...【详细内容】
2021-12-28  南野笑情    Tags:八大匠   点击:(2)  评论:(0)  加入收藏
当一些破旧的房屋要被拆除的时候我们经常可以看到墙壁上有一个大大的拆字而这个拆字还被圆圈包裹了起来这是为什么呢?一个拆字不是也能表达拆迁的意思吗?为什么还要多此一举呢...【详细内容】
2021-12-28  太空记    Tags:拆迁   点击:(1)  评论:(0)  加入收藏
自1991年第一款锂离子商业化以来,锂离子电池以高比能量的特点迅速占领了便携式电子产品市场,例如我们生活当中手机聚合物电池、无人飞机的高倍率电池、新国标电动车、新能源汽...【详细内容】
2021-12-27  全航工作室    Tags:锂电池   点击:(1)  评论:(0)  加入收藏
一张身份证里藏着惊人的信息。本文将教你如何从身份证号码前6位数看是哪里人。1949年,地级市的数目为54个,地区的数目为170个;1982年,地级市的数目为112个,地区的数目为170个,在此...【详细内容】
2021-12-27  聪颖书签U    Tags:身份证号   点击:(5)  评论:(0)  加入收藏
在每年的公历12月25日,是基督教徒纪念耶稣诞生的日子,我们称为圣诞节。圣诞节这个名称是基督弥撒的缩写,弥撒是基督教会的一种礼拜仪式。耶诞节是一个宗教节,我们把它当做耶稣的...【详细内容】
2021-12-24  长松爱剪辑    Tags:圣诞节   点击:(198)  评论:(0)  加入收藏
2022年1月,新的一年的开端,你的发展会如何?能为你开启一年的好运吗?下面跟着我一起来看看12星座2022年1月发展吧。白羊座优势: 魅力得以展现,爱情顺势而来。弱势: 情绪起伏大,...【详细内容】
2021-12-24  孟依婷啊    Tags:星座   点击:(18)  评论:(0)  加入收藏
DN/De/D/Φ/PN/SDR的区别 D:一般是指管道的内径,管道内壁内圆的直径。 DN:是指公称直径,又称平均外径,既不是管道的外径也不是内径,而是外径和内径的平均值。这是管道及其附件...【详细内容】
2021-12-24  水电小知识    Tags:管材   点击:(10)  评论:(0)  加入收藏
今天是公历2021年12月19日,农历十一月十六,星期日。后天,斗指子,太阳黄经达270°,就到了今年“二十四节气”之第22个节气——冬至节气!冬至,作为中国二十四节气的一个...【详细内容】
2021-12-20  冀豫耕耘    Tags:冬至   点击:(4)  评论:(0)  加入收藏
锂离子电池自从进入市场以来,以其寿命长、比容量大、无记忆效应等优点,获得了广泛的应用。锂离子电池低温使用存在容量低、衰减严重、循环倍率性能差、析锂现象明显、脱嵌锂不...【详细内容】
2021-12-20  全国能源信息平台    Tags:锂电池   点击:(7)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条