如何才能写出一手逼疯同事的烂代码?

点击上方 "编程技术圈"关注, 星标或置顶一起成长

后台回复“大礼包”有惊喜礼包!

日英文

Instead of giving yourself reasons why you can't, give yourself reasons why you can. 

与其为“我不能”找借口,不如为“我能”找原因。

每日掏心话

好的东东就是有着五雷轰顶一般的力量!我们的心灵在它们面前宛如透明,常常不堪一击!但我多么喜欢被这些美击败得溃不成军的身体残片啊!
责编:乐乐 | 来自:Java知音

编程技术圈(ID:study_tech)第 1270 次推文

往日回顾:华为内部论坛热帖:卷不动了!!!

     

   正文   

要是想写个烂代码,我们只需遵守这十九条准则?「代码写得好」是对机器学习研究者及开发者最好的赞扬。其第一层意思是说,你的模型非常好,有自己的理解与修正;第二层意思是说代码的结构、命名规则、编写逻辑都非常优秀。我们曾经将写代码比喻成写文章:不仅需要有一个主旨,告诉别人代码的作用是什么,同时还应该在精炼与易读之间做权衡。代码过于精炼,整体逻辑难以跟随,代码过于易读,整体就显得比较臃肿。图片在精简与易读之间做权衡,第一种方法根据列表推导式能获得更精简的代码,但第二种方法更易读。如果说到什么是好代码,我们肯定都能说出一堆规则,例如使用一致的格式和缩进、使用清晰的变量名和方法名、在必要时提供文档与注释、不要过度精简代码等等。但是对于什么是烂代码,你有比较清晰的认识吗?在 GitHub 上有一个新项目,它描述了「最佳垃圾代码」的十九条关键准则。从变量命名到注释编写。这些准则将指导你写出最亮眼的烂代码。为了保持与原 GitHub 项目一致的风格,下文没有进行转换。读者们可以以相反的角度来理解所有观点,这样就能完美避免写出垃圾代码。项目地址:https://github.com/trekhleb/state-of-the-art-shitcode当然,以下十九条垃圾代码书写准则并没有面面俱到,如果读者们发现有一些难以忍受的烂代码习惯,也可以留言发表你的看法。第一条:打字越少越好如果我们键入的东西越少,那么就有越多的时间去思考代码逻辑等问题。如下所示,「Good」表示遵循该规则的示例,Bad 表示没遵循该规则的示例。图片第二条:变量/函数混合命名风格我们需要混合命名方法与变量,这样才能体现命名的多样性。图片第三条:不要写注释反正代码都看得懂,为什么要写注释?或者说,反正没人看我的代码,为什么要写注释?第四条:使用母语写注释如果你违反了第三条规则,那么至少写注释需要用你的母语或者其它语言。如果你的母语是英语,那么你也算违反了这条规则。既然编程语言绝大多数都是用英文,那么为什么不用其它语言注释一下?图片第五条:尽可能混合不同的格式同样,为了代码的多样性,我们需要尽可能混合不同的格式,例如单引号或双引号。如果它们的语义相同,那就应该混用。图片第六条:尽可能把代码写成一行如果一系列参数与方法都是一起实现的,那么代码也要写在一起。图片第七条:发现错误要保持静默当你发现某些错误时,其他人不需要了解它,因此不需要打印出日志或 Traceback。搜索公众号后端架构师后台回复“架构整洁”,获取一份惊喜礼包。‍图片第八条:广泛使用全局变量使用全局变量,是面向「全球化」不可或缺的部分。图片第九条:构建备用变量以防万一,我们需要创建一些备用变量,在需要时随时调用它们。图片第十条:Type 使用需谨慎一般不要指定变量类型或者经常做类型检查,无类型才是最好的类型。图片第十一条:准备「Plan B」你需要准备一些运行不到的代码(unreachable code),它们可以作为你的「Plan B」。图片第十二条:嵌套的三角法则如果代码有一些嵌套结构,或者说缩进空行的结构,三角法则是最漂亮的。图片第十三条:混合缩进我们需要避免采用缩进,因为缩进会使复杂代码在编辑器中占用更多的空间。如果一定要采用缩进,那么就使用混合缩进策略。当然,这种策略在 Python 中是行不通的,因为它靠缩进来确定代码结构。图片第十四条:不要锁住依赖项每一次要安装新库时,更新已有的依赖项。为什么要维持之前的版本呢,我们需要时刻保持最新的第三方代码库。推荐:让你的代码减少90%,这些Java工具库太强大了!图片第十五条:长函数比短函数好不要将程序整体逻辑分割为一些代码块,要是 IDE 突然不行了,它找不到必要的文件或函数怎么办。因此把代码写在一个主体函数中,并且不再维护额外的函数导入或代码文件,那么这样的方法是最稳定的。单个文件一万行代码是没问题的,单个函数一千行代码也是没问题的。第十六条:代码不需要做特定测试这些测试通常是重复且无意义的工作。第十七条:尽量避免重复代码按你的想法写代码,尤其是在小团队中,毕竟这是「自由」准则。第十八条:构建新项目不需要 README 文档在项目前期,我们可以暂时保持这种状态。第十九条:保存不必要的代码在写代码的过程中,经常会产生很多测试代码。这些代码也是非常重要的资料,因此不能删除掉,最多只能注释掉。你还有什么想要补充的吗?PS:欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,欢迎转发分享给更多人。
版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!
欢迎加入后端架构师交流群,在后台回复“学习”即可。
最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。在这里,我为大家准备了一份2021年最新最全BAT等大厂Java面试经验总结。别找了,想获取史上最简单的Java大厂面试题学习资料扫下方二维码回复「面试」就好了猜你还想看阿里、腾讯、百度、华为、京东最新面试题汇集别再用kill -9关闭程序了......现在的学生太强了,徒手撸了一个小米商城项目(附源码)!
升级鸿蒙OS后变卡顿还更耗电?华为官方解答来了
嘿,你在看吗?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值