首页 > 其他分享 >开发者为什么需要“不良代码”

开发者为什么需要“不良代码”

时间:2024-05-27 14:04:05浏览次数:28  
标签:代码 我们 质量 编写 不良 开发者

在这里插入图片描述
“从未犯过错误的人也从未有过新发现。” — 塞缪尔·斯迈尔斯

想象一下场景:苏格兰,1928年。可能在下雨,一位科学家不小心让他的培养皿被霉菌污染了,他并不知道这个错误最终将拯救数百万人的生命,这项伟大的发现就是青霉素。这位科学家的名字就是亚历山大·弗莱明,他一个小小的技术失误改变了世界,让人们的生活变得更加美好。

在当下,软件开发领域存在着一种错误的观念,是什么呢?

与弗莱明的屡次失败而发现青霉素的方式类似,在实际开发中,粗糙的代码可以带来意想不到的结果。

在这篇博客文章中,我们将分析“好代码”与“不良代码”的概念,以及为什么开发者们不应该一开始就害怕“不良代码”。

为什么“不良”代码在某种程度上来说是有益的。

让我们明确一件事,本篇博文中不存在“代码质量歧视链”,但开发者们都清楚,市面上的确存在一些不良代码。

这没关系,真正有问题的点是我们对于“不良代码”这个术语的误解。

“好代码”和“不良代码”的概念在过去十年左右已经悄悄进入开发领域,这已经成为一个相当复杂的问题。不是因为我们分辨不出区别,而是因为我们经常过分强调从一开始就写出完美的代码,以至于我们忘记了“初稿”存在的合理性。你可以保证世界上伟大的艺术家、作家和工程师,例如达芬奇、莎士比亚和特斯拉等在没有草图之前就可以创作出伟大的作品吗?如果不能,为什么在编码时开发者们普遍忌讳“初稿”呢?

那我们将如何重新思考代码?从我们的代码词汇中去除“不良”这个词吗?

这很简单:“不良”代码是编写好代码的重要部分。

“但这没有道理!”有些开发者可能要哭了。我们可以这样说,当一个开发者开始编写一个程序、应用程序,甚至一个随机的编码项目的想法时,不应该先考虑代码质量,而是应该关注想法的质量。

这是什么意思呢,这种方式可以让开发者摆脱“创造完美”的压力,不要太关心最终结果。把东西写在纸上,写出一些可行并且有良好基础的架构,将帮助你实现‘好’代码的目标。

毕竟,没有架构你不能创造一个完整的项目。

相关:通过 GitHub Actions 增强 CI 中的代码质量

我们还要坚持认为初代版本的代码是“不良”代码吗?

我们所说的“不良”代码实际上意味着什么?是代码跑不通吗?充满 bug 吗?或者它只是不符合我们的标准?

让我们重新表述原始问题:对你来说,“不良”代码意味着什么?

‘不良’代码对每个开发者来说意味着不同的事情。说实话,这是一个模糊的术语,可能意味着多种不同的事情。对于开发者来说,它只是彻头彻尾的懒惰,一个单词的答案,伪装成不存在的、陈旧的、无味的反馈。

给代码贴上“不良”标签实际上可能弊大于利。他使得开发者们在写代码的时候、在进行开发工作时候畏手畏脚,甚至不惜一切代价避免“不良”的标签。所以,我们应该从整个行业的视角作出改变,不再使用“不良代码”这个术语。

毕竟,即使是“不良代码”仍然可以起到作用。“不良代码”真的会造成不良结果吗?

事实上,让我们重新思考这个术语,并创造一些更有生产力的概念,一些更有可能提高开发者信心、生产力以及开发速度的概念。

相关:如何提高 C++ 代码质量

我们的目标是编写可用的软件,逐步提高代码质量,从初稿进化成为好的代码。

不要误解。我们并不是说开发者应该变得自满,随意输出低质量副本,然后满不在乎地耸耸肩就离开。从应用程序速度、安全性到维护方面等诸多层面上讲编写好代码至关重要,过分强调‘不良’代码将使最终编写好代码变得更加困难。

这篇博文能提供给开发者最大的启发是:我们不应该害怕输出‘不良’代码。只要我们明白它只是一个起点,开始就是成功的一半。

对于那些正在审查我们团队代码的人,我们需要找到更科学合理的代码评价方法,而不是只,说一句“这的确很糟糕”。更加具体反馈可以使开发者从持续改进的代码中获得更好的结果。这是一刀切的否定所达不到的效果。

点击了解 Incredibuild 加速 C/C++ 构建编译的解决方案,并获取试用 License

标签:代码,我们,质量,编写,不良,开发者
From: https://blog.csdn.net/IncrediBuild/article/details/139232319

相关文章

  • 哆啦AAA萌也能用HTML画出来?看这里!【完整代码可运行】
    关注微信公众号「ClassmateJie」有完整代码以及更多惊喜等待你的发现。简介/效果展示你是否曾经想过,那些可爱的哆啦A梦角色是如何被创造出来的呢?今天,我要带你一起探索一个神奇的秘密——用HTML画出哆啦A梦!代码<!DOCTYPEhtml><htmllang="en"><head><metacha......
  • javaEE—图书管理系统(基础代码版)
                           前言:本篇博客是集合了javaEE所学的知识构建的一个基础框架,讲述着面向对象的过程是如何做到多对象交互协作完成框架的构建的。利用了数组,接口,类和对象,抽象类,Object类等知识来完成。后续会加入数据库,网页......
  • 水资源管理新视角:AquaCrop模型分析与代码解读
    AquaCrop是由世界粮食及农业组织(FAO)开发的一个先进模型,旨在研究和优化农作物的水分生产效率。这个模型在全球范围内被广泛应用于农业水管理,特别是在制定农作物灌溉计划和应对水资源限制方面显示出其强大的实用性。AquaCrop不仅包含一个全面的数据库,还提供了用户友好的接口,使得它......
  • 57天【代码随想录算法训练营34期】第十章 单调栈part01
    739.每日温度单调栈指的是只增加或只减少的stack,相当于一个memoclassSolution:defdailyTemperatures(self,temperatures:List[int])->List[int]:answer=[0]*len(temperatures)stack=[0]foriinrange(1,len(temperatures)):......
  • 关于泊松流生成模型(PFGM++)官方GitHub代码的一知半解
    论文:PFGM++:UnlockingthePotentialofPhysics-InspiredGenerativeModelsCodeisavailableathttps://github.com/Newbeeer/pfgmpp问题,学习官方代码后,生成数据会有以下报错解决方案:将generate.py中的调整为调整后即可正常运行,并生成图片相关参考Python*args和......
  • 代码随想录算法训练营第十八天 | 513.找树左下角的值
    513.找树左下角的值题目链接文章讲解视频讲解classSolution{public:intmaxDepth=INT_MIN;intresult;intfindBottomLeftValue(TreeNode*root){intdepth=0;traversal(root,depth);returnresult;}voi......
  • git clone 远程代码执行漏洞(CVE-2024-32002) 升级
    接到提醒说git有个漏洞,Gitclone远程代码执行漏洞(CVE-2024-32002)看了看,说是git的Symlinks模块存在高危漏洞,攻击者可以利用该漏洞执行任意代码,导致服务器失陷。以下这些版本都有影响0<git<2.39.42.40.0≤git<2.40.22.41.0≤git<2.41.12.42.0≤git<2.42.......
  • 记住这三个神仙代码,时刻为你的电脑保驾护航
    在这个数字化飞速发展的时代,我们的电脑不仅存储着重要的个人信息,还承载着繁重的工作任务。如何确保电脑的安全与稳定运行,成为了一个至关重要的问题。今天小编给大家分享这三个神仙代码,记好了这三个代码,时刻为你的电脑保驾护航。代码1:dxdiag按住win+R键,打开运行框,输入dxdiag......
  • 链式二叉树的前,中,后序遍历 AND 结点个数及高度等 文末附带全部代码
    目录前言1.前序遍历2.中序遍历3.后续遍历4.二叉树结点的个数5.二叉树叶子结点个数6.二叉树的高度7.二叉树第K层结点的个数8.二叉树查找值为x的结点全部代码总结正文开始前言本文旨在介绍二叉树的链式存储中一些函数的实现博客主页:酷酷学!!!更多文章,......
  • 【信道容量估计】基于AWGN、香农、最大中断、零中断和最大的最佳功率分配的中断门限实
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......