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

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

3天内不再提示

分享编程的七宗罪,也许对你会有所启发

DPVg_AI_era 来源:lq 2019-02-20 09:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

代码千万行,注释第一行;编程不规范,同事两行泪。本文分享了编程的七宗罪,也许对你会有所启发。

编程江湖中一直盛传着一个段子,那就是要问程序员最讨厌哪 4 件事?那必须是:

写注释、写文档、别人不写注释、别人不写文档。

更甚者,在《流浪地球》形成刷屏之势之后,仿其而出的 “代码千万行,注释第一行;编程不规范,同事两行泪” 在技术圈中开始盛传,由此可见对于所有的程序员来说这是多么痛苦的事情。

本文作者 —— 全栈开发者 Nitin Sharma 分享了编程的七宗罪,也许对你会有所启发。

以下为译文:

还有什么事情比自己动手去创造更有趣?看着你发明的东西慢慢地进入生活?我们人类,是万物之主,是造物主。

但是在数字化时代,发明创造的方式发生了变化。现在,我们都创造数字化产品。我们建网站、写软件来满足我们的需求。虽然我们创造不再依赖于我们的创造力,但是我们仍然可以与艺术家其名。

编程的世界非常地宽广,涉及重多领域,我们有很多选择。你可以选择使用函数式编程,还是使用面向对象编程?你可以选择做服务端还是客户端?那么,你心中已经有抉择了吗?下面,有 100 种编程语言,可以用来实现你的需求。

语言、框架、库都在逐渐增多。你可以通过多种方式完成相同的代码功能。虽然这些语言可能差别很大,但是大多数语言都遵循相同的思想。所以,他们也会出现相同的问题。

以下是编程七宗罪,你可以想办法避免他们发生。虽然我不是基督教徒,但是我也喜欢定义七宗罪。

01. 协作时不使用版本控制

上帝保佑,我们有版本控制工具。如我所说,如果我们没有像 Git 这种版本管理工具,代码的世界将变得异常艰难。版本控制让我们在协作的时候,修改或移动变得非常简单。

想像一下,我们坐在电脑前,手动检查并合并文件,为不同的版本保存不同的文件夹。这样做是非常低效的,并且很不可靠。幸运的是,我们有 Git 和其它版本控制工具,来帮我们完成这个事情。

我参与过没有版本控制的项目,那简直就是一场恶梦。

02. 不使用合适的变量命名

我不知道为什么,身边总有一些人,使用很短 / 随机的名称来给变量命名。当你的项目只有 10-20 行代码,或者只是代码片段时,你可以使用这种方式进行命名,但是在大项目中,不要这么做。不合适的命名,对可读性和效率有致命的影响。

一个命名的简单规则:你变量的名称可以自解释。当你看到它们的时候,就知道他们的用途。但是不要使用太长的名字来命名!保持命名简短,并具有可读性。

让我们来找一找,你的代码中用 a , b, c 命名的代码。

03. 使用过多的依赖,不经思考直接升级

GitHub 上面有多少个开源项目?已经多到我们数不清了。这些开源库使开发者的工作变得更加容易,节约我们的时间。

但是使用过多的依赖库会对整个项目带来风险。依赖库越多,就意味着编译时间和运行时间的加长。我们应该在我们需要的地方添加对应的依赖库,而不要为了使用它而使用它。

所以,在升级之前,我们需要经常去检查依赖库 / 插件的支持情况。我曾经有一次,升级了 React,而没有去检查它对其它库的影响。到如今,我依然认为这是我生命中最严重的错误之一。

04. 不自解释的代码

值得一提的是,没有人想阅读整个方法 / 文件来理解它是干什么用的。使用最少的代码来实现功能,但是不要让别人或者是以后的自己,讨厌你自己写的东西。

我们应该一直尝试去写自解释的代码。我们应该让我们的代码,在第一次被看到的时候,就知道它是干什么用的。要完成这样的代码,我们需要进行正确的代码重构,统一的语法,适当的变量名称。必要的时候,还要给代码添加注释。

当然,也不要过多地书写注释,你不需要通过注释解释每一行代码。最好用 1-2 行注释,写清楚重要部分的概述或说明。

05. 格式不一致

这个和第四点非常相近,格式不一致也会对可读性和生产效率带来巨大的影响。在项目中,选择一个特定的命名规范并一直坚持下去,不要在中途改变它们。我个人更喜欢用大写字母来命名文件,驼峰命名法来命名方法、变量等。但这些也会根据不同的语言而作出改变。

没有比开发者格式化代码更糟糕的事情。

此外,在代码中,我们还需要使用相同的缩进格式。根据你的代码样式和选择的语言,使用 2/4/8 个空格来做缩进。但无论你使用什么样的格式,请坚持在整个项目中一直使用。

06. 不处理错误

畏惧它。逃避它。Bug 终会降临! —— 灭霸

(译者注:指 Bug 如影随形,不休不止,像诅咒一样。)

事情是这样的,无论你是多么优秀的程序员,你的代码都有可能会出现问题,除非你写的是像如下的这种代码:

console.log("Yey")printf("Wow")

这些错误有可能是因为 API 错误引起的,也有可能是超时,类型错误,空值,或者只有上帝知道的原因。通常,这些会让你的代码出现问题。

在不同的语言中,处理错误的方式有很大的差异。但是一般情况下,在访问数据之前都需要判断数据否为空。在我的经验中,空指针比其它错误都多。

所以,在执行数据处理的相关需求时,建议将代码放到 try-catch 中,并处理对应的异常,最后,不要忘记告诉用户哪里出现了问题。如果在用户按下按钮和按键的时候不给用户反馈,用户将不知道发生了什么。给用户错误提示,并告诉它下一步怎么做。

时刻记住灭霸的话。

07. 使用不当的数据类型 / 数据结构

在不同的语言中,数据类型要求不一样,强类型语言非常严格,而弱类型可以随意使用。强类型语言在编译时就会告诉你错误,而其它语言需要在运行时,才能知道错误。

举个例子,我们将数值存储在整型 / 符点型 / 双精度符点型的变量中,并且与存储在字符串中的变量进行比较时,有的语言会进行自动类型转换,然后进行比较,而有的语言并不会。

结语

编程七宗罪,让人不爽。我们需要避免出现。

这个仅仅是在编程中出现的常见错误。你很难看到,一个程序员,在他的程序中出现这些问题。但这也正如圣经中的七宗罪一样,不仅是这些问题。它们是原罪,可以组合成不同的错误。

你认为还有什么错误需要加在这个列表里面,在评论中写出来,让我知道。

Happy Coding!

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

    关注

    90

    文章

    3708

    浏览量

    96765
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73151
  • 数字化
    +关注

    关注

    8

    文章

    10317

    浏览量

    66546

原文标题:“编程不规范,同事两行泪!”

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    申命名“碰瓷”智界和问界!三轮车龙头的电动化转型焦虑

    电子发烧友网报道(文/李弯弯)2025年7月,中国三轮车行业因一场命名争议被推上风口浪尖。重庆申车辆有限公司在年中新品发布会上,将两款电动三轮车命名为“智界S300”与“问界Q1P”,其命名与华为
    的头像 发表于 07-12 00:14 1.1w次阅读

    使用J-Flash来编程CW32 MCU

    。 确保连接正确,并且MCU处于可编程状态(例如,处于复位状态)。 3.启动J-Flash: 打开J-Flash应用程序。 在J-Flash中,选择正确的目标设备(即的CW32 MCU型号)。这通常
    发表于 11-25 07:00

    2025年大数据防泄密软件权威盘点:为的机密数据提供持续守护

    2025年大数据防泄密软件权威盘点:为的机密数据提供持续守护 无论是内部员工的无意泄露,还是外部黑客的有意窃取,都可能给企业带来巨大的经济损失和声誉损害。 如何选择一款可靠的数据防泄密软件,成为
    的头像 发表于 09-30 10:46 339次阅读

    瑞沃微CSP内窥镜医疗光源:夕冷光告白,探索未曾见过的内在宇宙!

    夕带爱看“芯”际!瑞沃微CSP内窥镜光源,用冷光照亮的美(内部之美)又到夕,还在纠结送花、吃饭、看电影的老三样?今年来点真正的“硬核浪漫”——带你最爱的人,一起走进瑞沃微CSP内窥镜的“冷光
    的头像 发表于 08-29 17:59 497次阅读
    瑞沃微CSP内窥镜医疗光源:<b class='flag-5'>七</b>夕冷光告白,探索<b class='flag-5'>你</b>未曾见过的内在宇宙!

    基于FPGA的USB数据传输

    也许会有疑问,明明有这么多通信方式和数据传输(SPI、I2C、UART、以太网)为什么偏偏使用USB呢?
    的头像 发表于 08-06 14:47 4582次阅读
    基于FPGA的USB数据传输

    编程电源长期过载会有什么影响?

    编程电源长期过载会引发元件失效、性能下降、安全隐患等多维度问题,直接影响设备寿命和系统稳定性。以下是具体影响及分析:一、元件级损坏1. 功率器件(如MOSFET、IGBT) 过热烧毁: 过载
    发表于 06-27 16:28

    华为开发者大会2025:软通动力联合江苏申发布“微型车HarmonyOS Connect智慧出行解决方案”

    华为开发者大会 2025期间,软通动力携手江苏申车业有限公司联合发布 “申微型车HarmonyOS Connect智慧出行解决方案” ,依托鸿蒙生态深度整合微型车行业资源,为中国电动微型车用户
    的头像 发表于 06-23 09:33 914次阅读
    华为开发者大会2025:软通动力联合江苏<b class='flag-5'>宗</b>申发布“微型车HarmonyOS Connect智慧出行解决方案”

    虹科NVH诊断案例 | 保时捷卡宴V6发动机敲击声与失火诊断

    问题根源。对于初学者而言,这个案例可能会有些复杂,但其中的思路,想必会对有所启发。振动异响精准诊断01故障现象一辆3.6LV6保时捷卡宴,车主反映早上冷启动时,发动机
    的头像 发表于 06-19 16:31 556次阅读
    虹科NVH诊断案例 | 保时捷卡宴V6发动机敲击声与失火诊断

    图书馆WiFi总掉线?我的秘密武器居然是它.

    ​​蜂鸟IP​​这个神器(其实是偷偷试的,嘘——),今天就来和同样被图书馆网络折磨的小伙伴们分享一下我的“自救”经历。 ​​1. 图书馆网络的“七宗罪”​​ 在图书馆上网有多难?我的血泪史告诉我
    发表于 06-10 18:05

    国内第一台位半数字多用表知道吗?

    北京航天测控技术有限公司生产的AMC93200系列位半数字多用表,是国内第一台位半数字多用表。该产品经过中国计量院计量认证,并获得了锂电领导企业的计量认证,还经过了航天重大发射任务高端
    的头像 发表于 05-19 14:30 509次阅读
    国内第一台<b class='flag-5'>七</b>位半数字多用表<b class='flag-5'>你</b>知道吗?

    使用EZ-USB HX2LP CY7C65630时,遇到将复位线拉低的问题怎么解决?

    问题吗? 也许复位引脚的内部示意图会有所帮助。 其他信息 Vcc通过10k连接到3.3V 复位信号上没有电阻。 信号直接连接至电压监控器 (CAT811STBI-GT3)
    发表于 05-13 06:04

    知道电感的大关键参数吗?

    今天这篇文章介绍电感的大关键参数。1、电感值电感值就是电感做好以后的固有特性,比如1uH, 10mH,1H,这样不同类型的感值。在学习电感值之前,我们先看一下电阻公式: 其中p是导体的电阻率
    发表于 04-16 11:31

    灯光太普通?快来试试这款多模式的彩灯方案!

    单触摸彩灯方案是否也曾为房间的单调而苦恼?是否觉得普通的灯光已经无法满足?别担心,单触摸彩灯方案来了!单触摸彩灯的设计非常人性化,只需轻轻一触,提供了五种灯光模式,满足
    的头像 发表于 03-17 18:22 1098次阅读
    灯光太普通?快来试试这款多模式的<b class='flag-5'>七</b>彩灯方案!

    最新!智慧灯杆大应用场景案例独家汇总

    最新!智慧灯杆大应用场景案例独家汇总
    的头像 发表于 03-07 10:10 790次阅读

    TVP5145如果视频切换是在内部而非外部完成的,那么帧/场再同步时间是否会有所改善?

    ,因此我对 TI 提出的问题是:如果视频切换是在内部而非外部完成的,那么帧/场再同步时间是否会有所改善?
    发表于 02-17 07:40