如何写出同事看不懂的屎山代码?-环球热推荐
点击上方“C语言与CPP编程”,选择“关注/置顶/星标公众号”
(资料图片)
干货福利,第一时间送达!最近有小伙伴说没有收到当天的文章推送,这是因为微信改了推送机制,确实会一部分有小伙伴刷不到当天的文章,一些比较实用的知识和信息,错过了就是错过了。所以建议大家加个星标⭐️,就能第一时间收到推送了。
小伙伴们大家好,我是飞宇。
在 GitHub 上有一个项目,它描述了「最佳垃圾代码」的十九条关键准则。从变量命名到注释编写,这些准则将指导你写出最亮眼的烂代码。
为了保持与原 GitHub 项目一致的风格,下文没有进行转换。读者们可以以相反的角度来理解所有观点,这样就能完美避免写出垃圾代码。
项目地址:https://github.com/trekhleb/state-of-the-art-shitcode
当然,以下十九条垃圾代码书写准则并没有面面俱到,如果读者们发现有一些难以忍受的烂代码习惯,也可以发表你的看法。
第一条:打字越少越好
如果我们键入的东西越少,那么就有越多的时间去思考代码逻辑等问题。如下所示,「Good」表示遵循该规则的示例,Bad 表示没遵循该规则的示例。
第二条:变量/函数混合命名风格
我们需要混合命名方法与变量,这样才能体现命名的多样性。
第三条:不要写注释
反正代码都看得懂,为什么要写注释?或者说,反正没人看我的代码,为什么要写注释?
第四条:使用母语写注释
如果你违反了第三条规则,那么至少写注释需要用你的母语或者其它语言。如果你的母语是英语,那么你也算违反了这条规则。既然编程语言绝大多数都是用英文,那么为什么不用其它语言注释一下?
第五条:尽可能混合不同的格式
同样,为了代码的多样性,我们需要尽可能混合不同的格式,例如单引号或双引号。如果它们的语义相同,那就应该混用。
第六条:尽可能把代码写成一行
如果一系列参数与方法都是一起实现的,那么代码也要写在一起。
第七条:发现错误要保持静默
当你发现某些错误时,其他人不需要了解它,因此不需要打印出日志或 Traceback。
第八条:广泛使用全局变量
使用全局变量,是面向「全球化」不可或缺的部分。
第九条:构建备用变量
以防万一,我们需要创建一些备用变量,在需要时随时调用它们。
第十条:Type 使用需谨慎
一般不要指定变量类型或者经常做类型检查,无类型才是最好的类型。
第十一条:准备「Plan B」
你需要准备一些运行不到的代码(unreachable code),它们可以作为你的「Plan B」。
第十二条:嵌套的三角法则
如果代码有一些嵌套结构,或者说缩进空行的结构,三角法则是最漂亮的。
第十三条:混合缩进
我们需要避免采用缩进,因为缩进会使复杂代码在编辑器中占用更多的空间。如果一定要采用缩进,那么就使用混合缩进策略。当然,这种策略在 Python 中是行不通的,因为它靠缩进来确定代码结构。
第十四条:不要锁住依赖项
每一次要安装新库时,更新已有的依赖项。为什么要维持之前的版本呢,我们需要时刻保持最新的第三方代码库。
第十五条:长函数比短函数好
不要将程序整体逻辑分割为一些代码块,要是 IDE 突然不行了,它找不到必要的文件或函数怎么办。因此把代码写在一个主体函数中,并且不再维护额外的函数导入或代码文件,那么这样的方法是最稳定的。
单个文件一万行代码是没问题的,单个函数一千行代码也是没问题的。
第十六条:代码不需要做特定测试
这些测试通常是重复且无意义的工作。
第十七条:尽量避免重复代码
按你的想法写代码,尤其是在小团队中,毕竟这是「自由」准则。
第十八条:构建新项目不需要 README 文档
在项目前期,我们可以暂时保持这种状态。
第十九条:保存不必要的代码
在写代码的过程中,经常会产生很多测试代码。这些代码也是非常重要的资料,因此不能删除掉,最多只能注释掉。
你好,我是飞宇,本硕均于某中流985 CS就读,先后于百度搜索以及字节跳动电商等部门担任Linux C/C++后端研发工程师。
同时,我也是知乎博主@韩飞宇,日常分享C/C++、计算机学习经验、工作体会,欢迎点击此处查看我以前的学习笔记&经验&分享的资源。
这里分享一些C++开发手册、LeetCode刷题模板等精品资料,扫描下方二维码免费领取。
标签:
为您推荐
广告
- 如何写出同事看不懂的屎山代码?-环球热推荐
- 东宏股份(603856.SH):与中国二冶签订20亿元物资采购框架协议
- 某汽车销售公司6月份销售量_某汽车销售公司6月份
- 全球通讯!结婚证婚词简短_结婚证婚词
- 当前速递!2023年高考,温馨提醒和“时间表”来了→
- 环球今头条!国家能源局:截至5月底全国累计发电装机容量同比增长10.3%
- 天天微头条丨内存的新战争:韩国人还能赢多久?
- 新款奔驰E曝光:比宝马5系好看
- 海南省澄迈县发布高温橙色预警
- 天天速递!昆山周市:网格小屋持续发力 全力守护居民“钱袋子”
- 我是大运火炬手丨唐利军:希望将扎根基层、潜心钻研的精神传递给更多年轻人
- 徐云瀚最后知道真相了吗(徐云瀚)
- 新动态:2023年天津社保最低缴费基数、标准 天津五险一金缴纳比例2023
- 青岛市教育局职称公示_青岛市教育局人事处职称评定
- 2023年1-5月全国商品住宅销售面积统计分析|今日关注
- 跨越障碍物游戏规则_跨越障碍物 全球最资讯
- 书到用时方恨少全诗陆游_书到用时方恨少 天天微速讯
- 环球快看点丨IPO丨智翔金泰今开35.00元/股,上市首日盘中跌超7%
- 焦点热讯:信而不迷的古代神探|悬疑之窗
- 氧化铝期货上市首日运行平稳
- 1上海:前5月房地产开发投资增长40.7% 商品房销售面积增长三成|微动态
- 2novosibirsk是俄罗斯哪个城市_novorossiysk是哪个国家的港口
- 3观天下!兰州市民政局号召社会组织积极参与“结对帮扶·爱心甘肃”工程建设
- 4劳动法死亡赔偿项目有哪些
- 5观热点:4家快递上市公司发布5月份经营数据业务量及收入均实现同比增长
- 6华夏银行(600015):6月19日北向资金减持755.01万股
- 7世界快看点丨长沙民政职院商学院:资助服务暖人心 乡村振兴显担当
- 8毛蛋直播_毛蛋 全球微速讯
- 9积木家旗舰店_积木家官网
- 10世界热推荐:阿根廷2-0印尼,帕雷德斯重炮世界波,罗梅罗头槌破门
- 1赛道上奋力划桨 岸边欢呼呐喊 感受各地龙舟竞渡大场面→|全球播报
- 2小绵羊四件套(小绵羊sr) 热点
- 3每日看点!东南亚大停电:越南制造遭遇打击,跨国外企被逼疯了
- 4双色球什么时候开奖具体时间_双色球什么时候开奖_世界热消息
- 5当前热议!上海期货交易所6月19日铜仓单下跌
- 6全球速读:阿里巴巴股票通过大宗交易以每股91.6港元成交390万股
- 7天天热资讯!闲鱼确认收货还能退款么(闲鱼确认收货后还能退款)
- 8广西环江·毛南族分龙节民俗文化活动将开幕-聚看点
- 9为啥东方甄选的内核只能是董宇辉,他的成功不是靠平台资源加持,资源只因董宇辉而来
- 10守望先锋2入侵在进入GamePass时开始了PvE故事|动态焦点
广告
- 焦点热文:永修县气象台发布雷电黄色预警信号【III级/较重】【2023-06-19】
- 天天热推荐:公平设施基金向具有高影响力的公立特许学校提供超过10亿美元的贷款
- 世界报道:农行云南省分行首个医保服务站落地玉溪
- 损益平衡表空白表格_损益平衡表 环球头条
- 曜能科技宣布25cm钙钛矿/晶硅两电极叠层电池稳态转换效率达到31.46% 热点
- 万家乐燃气灶售后电话是多少 万家乐燃气灶 世界看点
- 真人电影《芭比》定档7月21日 粉红风暴席卷电影院
- 环球头条:和美城乡 四大行动|雅灰乡:实施“放、管、服”推进城镇精致管理出成效
- 港股异动 | 康希诺生物(06185)跌超4% 再遭美国资本集团减持42.1万股 全球快资讯
- 中国邮政集团有限公司兰州市分公司2023年公务及运营车辆维修供应商入围项目中标公示
- 中国女排两连败收官,只有3人表现合格,替补球员实力堪忧
- 韩元兑美元创近两个月最大跌幅
- 环球微速讯:汽车遥控器失灵原因和维修_汽车遥控器失灵原因
- 当前速看:《困在心绪里的儿子》:片名是儿子,主角是父亲
- 天天滚动:超七成企业对今年跨境电商进出口预期平稳或增长
- 世界动态:10.87万元和11.47万元,吉利中国星·星瑞1.5TD车型加新上市
- 瑞士全民公投通过气候法案
- 科技日报 :数实融合成为交通强国建设主线(图)
- 焦点快播:有关费用_对于有关费用简单介绍
- 6月19日生意社DMF基准价为4850.00元/吨