什么是整洁的代码?

避坑!!!Stata双重机器学习(DML)遇到的问题及解决方式 除了上述代码,我还在Anaconda Navigator图形界面来更新conda,更新过的小伙伴应该都知道,这个过程非常漫长,我大概经历了2-3天,在这个过程中电脑一直运行,但是很不幸,无论哪种方式,最终都没有更新到最新版本。安装成功之后,我抱着试一试的心态再次在stata18MP中运行,没有想到,这次竟然运行成功了!我之前一直用的是stata17MP版本,在运行DML的时候,代码一直出错,我以为是python路径没有设置好的原因,就各种在python上面下功夫,经过各种查找后,确定DML必须要在。 阅读详情

什么是整洁的代码?

在软件工程这样一个庞大而多样化的领域中,持续阅读对于构件基础知识和探索分支知识至关重要。与任何行业一样,软件开发有一些必读书籍,而《代码整洁之道》就是其中之一。这本书常年出现在Google的“顶级软件工程书籍”搜索结果中, 并且在工程界广为人知。

这里有一些我从中学习到的知识,与大家分享一下。


对这本书的介绍

image

在很多方面,《代码整洁之道》的结构像是一本代码手册。正如大多数好书一样,是一本非常自以为是的书。

作者马丁在这本书中描述了什么是好的编码以及怎样去重构不好的编码,以告诫那些无法分辨出编码习惯好坏的人。马丁对他的失败持开放态度。多年来阅读糟糕的代码的经历让他有意去帮助其他开发者避免危险。总之,这本书成百上千的建议会使你生产出优质的代码。也就是说,大多数工程师都在努力学习,使他的糟糕的代码变得更好。

但是《代码整洁之道》不仅仅是一个教程。他不仅描述了编写好代码的方式,而且写了为什么要写好代码。不仅仅是事记硬背的规则。我从中读出了一个优秀的程序员的不可侵犯的价值观。下面,我将这概括为三个关键的概念。

1. 我们要有工匠精神

很少会有那种从始到终都不被修改的完美代码(当然,“完美的代码”这样的说法是错误的,没有什么事物是完美的)。尽管如此,编写出尽可能最好的代码是软件工程师的首要任务。有的时候,这意味着我们要在项目进度、客户需求、管理要求、疲劳这几方面进行平衡。

底线:“工作”的代码并不总是“完成”。如果编码人员的工作是生产解决问题的产品,那么解决问题的方法是否重要? 是。 从长远来看,软件做得很好,每个人都受益,包括客户,用户,公司和编码员。代码混乱,匆忙或“足够好”的代码,这是着眼于短期回报的体现。

即使是优秀整洁的代码,在一段时间过后也会显得糟糕不堪。而且会比你预想中的要坏。

马丁认为,编写整洁的代码的关键是高质量的输入(周全,可维护,灵活的代码),可以产生高质量的输出(长期业务收益)。

2. 你今天的努力可以减轻日后的负担

我们所有人都经历过使用低质量产品所带来的失望。想象一下,​​在洗衣机中几分钟就会磨损边缘的新衬衫,或者是在你的孩子将它从包装盒中取出后立即打破的塑料玩具。制作精良的代码也是这样,它在边缘处的碎片速度比您预期的要快得多。(所以我们需要边界值测试)

你可以试着跟一些质量很好的东西进行比较。有一双鞋我每天都穿,并且穿了十年,这几天终于破了。这双鞋比其他鞋子贵一点,但它的质量是不可否认的,从长远来看,我省钱了。当时间终于把这些鞋扔出去时,我又买了一双相同的对,因为我知道这双鞋又会陪伴我十年。

同样的原则适用于代码。高质量的输入不仅可以产生更持久的输出,还可以节省资金并建立客户忠诚度。精心重构和测试您的代码可能需要更长的时间,但技术债务和可维护性的节省非常值得额外的努力。

3. 你的代码不只是你自己的

以自己的工作为荣,这很重要。 认识到你编写的代码不是你自己的代码同样重要。

过于聪明的技巧,黑客和程序手的技巧只对作者有趣。

这可能看起来有点悖论 - 毕竟,编写干净的代码需要您与其质量相媲美。 但好的代码并不是真的,因为它的目的是供他人使用:你的队友,你的客户,甚至你未来的自我。 当一些未来的项目维护者(甚至可能是你自己)无法理解为什么你用你的方式写东西时会发生什么? 毫无疑问,他们必须花费宝贵的时间和精力来解读你为他们留下的谜题。


什么是整洁的代码?

每个人都有他(她)独自的如何编写整洁的代码的列表。事实上,马丁的书中有各种各样的软件名人给出的整洁的代码的定义集合。根据我在本书中学到的内容,我的定义如下:

  1. 整洁的代码是简单的。在算法或系统级复杂性方面可能并不简单,但在实现方面肯定很简单。 过于聪明的技巧,黑客和程序手的技巧只对作者有趣,并削弱了代码的长期价值。 对于冗长的代码来说也是如此,需要永远才能达到目的。

  2. 整洁的代码是可读性强的。如果程序中使用的命名约定,间距,结构和流程不是为读者而设计的,那么该读者几乎肯定无法理解原作者的意图。 关于如何编写可读代码的约定可能看似教条或缺乏表达性,但它们有助于使代码公共而不是晦涩难懂的。

  3. 整洁的代码是体贴的。没有尽力告知未来读者的代码是不尊重他们时间的代码。 清洁代码的编写应该假设未来的消费者是聪明的,有思想的专业人士(像你一样),它应该不遗余力地帮助他们。

  4. 简洁的代码是经过测的。没有人能够在第一次就写出没有BUG的代码。即使假如能够做到,没人能保证这完美的代码在之后不会出错。写出整洁的代码代表着写出经过测试的代码。这样,未来的用户可以确信他们正在和有效的软件进行交互。此外,在进行修改时,他们还会有一个现成的测试组件,以确保程序没有问题。

  5. 持续践行写出整洁的代码。编写整洁的代码需要良好的肌肉记忆,就像玩乐器,踢球或煎蛋一样。学习编写整洁代码的最佳方法。更重要的是,坚持做下去。当你在家里从事个人项目时,即使没人会看你的代码,你也要用整洁的代码来做。

  6. 整洁的代码是被无情地重构出来的。清洁代码应该处于不断的重构状态。而你需要有一个很好的测试套件来备份你的代码,你可以随心所欲地重构它,从不担心破损。

  7. 整洁的代码是SOLID。整洁的代码同时也是整洁的设计,遵循SOLID原则是确保你的代码具有灵活性、可维护性、和持久性的方法。

在 程序设计领域, SOLID(单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)是由罗伯特·C·马丁在21世纪早期引入的记忆术首字母缩略字,指代了面向对象编程和面向对象设计的五个基本原则。当这些原则被一起应用时,它们使得一个程序员开发一个容易进行软件维护和扩展的系统变得更加可能。 SOLID所包含的原则是通过引发编程者进行软件源代码的代码重构进行软件的代码异味清扫,从而使得软件清晰可读以及可扩展时可以应用的指南。SOLID被典型的应用在测试驱动开发上,并且是敏捷开发以及自适应软件开发的基本原则的重要组成部分。

如果我们将马丁的书作为圣经,那么“整洁”的属性可以成倍增加。但仔细阅读《代码整洁之道》后,这个清单是一个很好的起点。坚持这些原则需要不断关注细节,并愿意承认你昨天所写的内容今天仍然可以改进,即使这段代码运行的很好得很好。


尽管《代码整洁之道》包含了大量有用的规则和最佳实践,但它对读者所蕴含的心态可能更有用,我们要有工匠精神,你今天的努力可以减轻日后的负担,你的代码不只是你自己的。编码员阅读的越多,世界代码就越整洁,我们的所有工作都会变得更容易。

译者的话

之前翻译的那几篇太多链接了,无法发到微信公众号等平台,然后就找了一篇没什么链接的文章。我翻译了大概四五天,每天一个小时。英语不好实在是。。。下次不敢再翻译文字这么多的文章了。

参考

What Is Clean Code? 原文

每日一图

image

George Bellows “Giant Sky” 1913

niracler wechat

本文作者: niracler
本文链接: www.niracler.com/2019/03/09/什么是整洁的代码/
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能 在探讨计算机性能优化的旅程中,我们常常被引导去关注算法的复杂度、代码的优化,或是更高效的数据结构。然而,有一个经常被忽视的角色在幕后默默地影响着程序的运行效率——那就是缓存(Cache)。正如哲学家亨利·戴维·梭罗在《瓦尔登湖》中所说:“细节是造成美丽的源泉”,在软件开发的世界里,对缓存的理解和优化,就是那些决定程序性能优雅与否的细节。 阅读详情

相关推荐

Qt6导入QtChart绘制图表(添加组件)

我在按照大佬们的说明添加QtChart时发现,我的电脑上并不能正确的添加QtChart并编译通过,所以在综合了两位大佬的说明又自己探索了一番后,正确编译通过,分享出来,以便同志们节省一些时间。

Nuaa0719301zyx的博客 2950

聊聊clean code

clean code,顾名思义就是整洁的代码,或者说清晰、漂亮的代码,相信大多数工程师都希望自己能写出这样的代码。 也许这是个千人千面的话题,每个工程师都有自己的理解。比如我,从一个天天被骂代码写得烂的人,逐渐学习成长,到现在也能写的出“人模人样”的代码来了。这期间算是积累了一点经验心得,想和大家分享,抛砖引玉。 本文主要针对面向对象编程的clean code来阐述,面向过程代码的...

美团技术团队 6754

DIY压电陶瓷传感器信号放大:从拆解到JFET电路实战(附示波器实测数据)

本文详细介绍了如何利用废旧设备拆解的压电陶瓷片,结合JFET(结型场效应管)高输入阻抗特性,DIY搭建高灵敏度振动传感器放大电路。从元件拆解、参数实测到JFET共源极放大器实战搭建与调试,提供了完整的步骤、示波器实测数据及优化方案,帮助电子爱好者实现低功耗振动检测应用。

weixin_29195615的博客 386

整洁的代码

#前言# 相信大家只要干过两三年编程,就有可能曾经被某人的代码绊倒过。如果你编程不止两三年,也有可能被这种代码拖过后退。进度延缓的程度会很严重。随着这种混乱代码的增加,团队生产力也会持续下降。 要写出整洁代码如同是绘画一般, 整洁的代码需要遵循大量的'小技巧',会培养一种代码感.这种代码感,相...

297

ESP32-C3芯片通过蓝牙控制开锁功能

定义BLE服务和特征,用于接收开锁命令。0x00FF// 服务UUID0xFF01// 特征UUID4// 句柄数量// 特征值// 特征属性// 处理GATT服务器事件// 处理事件(详细代码见下文)// 注册GATT回调if (ret) {return;// 创建GATT服务器。

m0_46145044的博客 920

Android13 CarPowerManagementService启动流程分析

在CarPowerManagementService中init调用PowerHalService的setListener设置事件侦听器以接收车辆的电源事件。

liuning1985622的博客 956

什么是整洁的代码

写出整洁的代码,是每个程序员的追求。《clean code》指出,要想写出好的代码,首先得知道什么是肮脏代码、什么是整洁代码;然后通过大量的刻意练习,才能真正写出整洁的代码。 WTF/min 是衡量代码质量的唯一标准,Uncle Bob 在书中称糟糕的代码为沼泽(wading),这只突出了我们是糟糕代码的受害者。国内有一个更适合的词汇:屎山,虽然不是很文雅但是更加客观,程序员既是...

dream317 391

小红书分享链接失效?教你永久保存笔记的2种方法(含API调用技巧)

本文详细解析了小红书笔记链接失效的原因,并提供了两种永久保存笔记的方法,包括短链接转换API调用技巧和本地归档技术。通过Python代码示例和工具推荐,帮助用户实现笔记内容的高效保存和管理,确保珍贵内容不再丢失。

gin88的博客 2746

代码整洁之道总结

不要返回null值若需要返回空列表,可以用Collections.emptyList()别传递null值尽量不要将null值传递给其他方法如果有人传入null值,可以使用断言来处理assert <boolean表达式> : <错误信息表达式>如果<boolean表达式>为true,则程序继续执行 如果为false,则程序抛出java.lang.AssertionError,并输入<错误表达式>assert p1!assert p2!

zxy_94的博客 1757

Ansys Fluent DPM模型实战:旋风分离器颗粒轨迹仿真全流程解析(附案例文件)

本文详细解析了使用Ansys Fluent中的离散相模型进行旋风分离器颗粒轨迹仿真的全流程。从几何简化、网格策略到物理模型界定,重点阐述了DPM模型的关键设置步骤,包括单向耦合假设、颗粒注入与受力配置,并提供了结果分析与优化方法,帮助工程师精准模拟气固分离过程,提升设计效率。

sunny的博客 701

AI Agent Harness与SCADA系统集成

简单来说,AI Agent Harness是Industrial AI Agent的“中央调度室+装备库+知识库+安全网”把不同技术栈、不同部署环境(云/边/端)、不同功能(感知、推理、决策、执行、验证)的“零散Agent”组装成具备特定工业场景能力的Agent Team(如聚合反应根因诊断Agent Team);管理Agent Team的生命周期(创建、初始化、调度、监控、销毁);提供统一的工业多工具调用接口(对接SCADA、MES、PLC、DCS、巡检机器人、数字孪生平台等);内置。

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 354

代码整洁之道——如何写出整洁高效的代码

适合初学者和对代码规范一知半解的朋友

weixin_49808281的博客 2591

YOLO11改进|注意力机制篇|引入ELA注意力机制

YOLO11添加ELA注意力机制

A1983Z的博客 3647

代码整洁之道 总结

1.什么样的代码才是整洁的 从字面意思上理解,整洁的代码,对于程序员来说非常的一目了然,简单、整洁,结构清晰,逻辑清楚。代码其实是一种语言,传递的是逻辑,如果这份代码可以像我们说话一样快速的将逻辑传递给读者,那么这样一份代码就是一份整洁的代码。可以借助沃德原则:"如果每段代码欧让你感到深合已意,那就是整洁代码" 2.如何保持代码整洁 首先便是要有保持代码整洁的意识,书中反复提到的提到的...

无能力者只知抱怨 7798

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

[代码整洁之道]-整洁代码

1.1要有代码代码是我们最终用来表达需求的语言,所以代码永存1.2糟糕的代码 糟糕的代码代价很大,足以毁掉一个公司。 稍后等于永不——现在时间太紧,先完成功能,有朝一日再回头清理,但事实是从来没有回头优化过代码1.3混乱的代码 团队的生产力持续下降,趋向于零 1.3.1华丽新设计只是表面看上去很华丽,但实际发挥不了太大作用,还会降低效率。花时间保持代码的整洁不但有关效率,还有关生存1.3.2

master 2309

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【《代码整洁之道》精读与演绎】之三 整洁代码的函数书写准则

这篇文章,是关于整洁代码函数书写的一些准则。 一、引言以下引言的内容,有必要伴随这个系列的每一次更新,这次也不例外。 《代码整洁之道》这本书提出了一个观点:代码质量与其整洁度成正比,干净的代码,既在质量上可靠,也为后期维护、升级奠定了良好基础。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。 但我们知道,很多时候,理想很丰满,现实很骨

【浅墨的游戏编程Blog】毛星云(浅墨)的专栏 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

代码之美——代码整洁之道

代码之美有很多方面,可以谈高级编程语言以及各语言的框架/类库,也可以聊算法和数据结构,还可以谈操作系统内核或是层出不穷的中间件,不过这里我们看最不起眼的代码整洁之道。

京东零售技术的博客 2873

【《代码整洁之道》精读与演绎】之一 让代码比你来时更干净

“我们就是一群代码猴子,上蹿下跳,自以为领略了编程的真谛。可惜当我们抓着几个酸桃子,得意洋洋坐到树枝上,却对自己造成的混乱熟视无睹。那堆“可以运行”的乱麻程序,就在我们的眼皮底下慢慢腐坏。” ——《代码整洁之道》作者 RobertC.Martin,于SD West 2007技术大会 一、系列文章前言 敲完上面这段文字的时候,心里在想,一个刚踏入编程生涯的新人,要经历多少的淬炼,才能领略到Bob大叔所谓的编程的真谛。 有人说,这个过程会很漫长,大概至少是在读完N本编程领域的经

【浅墨的游戏编程Blog】毛星云(浅墨)的专栏 2万+

Python代码整洁之道

在软件开发中,代码的整洁性对于项目的长期成功至关重要。整洁的代码不仅易于阅读和理解,还更易于维护和扩展。Python以其简洁、易读和强大的功能而著称,但即使是Python代码,如果不加以注意,也可能变得混乱不堪。以下是一些建议,帮助你提高Python代码的整洁性。

努力让自己发光,对的人才能迎着光而来 7万+

《代码整洁之道》 第一章:整洁代码

1.2 糟糕的代码 勒布朗(LeBlanc)法则:稍后等于永不(Later equals never)。 1.3.4 整洁代码的艺术 “整洁感”:它不仅让我们看到代码的优劣,还予我们以借戒规之力化劣为优的攻略。 “代码感”:缺乏“代码感”的程序员,看混乱是混乱,无处着手。有“代码感”的程序员能从混乱中看出其他的可能与变化。“代码感”帮助程序员选出最好的方案,并...

qq754261595的博客 500

代码之美-代码整洁之道

可能有人觉得谈代码太基础,有点low,不够高大上,应该谈谈设计、模型、算法,亦或是业务域;或者也有人觉得随着AI技术发展,代码可以自动生成了;我也曾一度觉得代码包括整洁代码,对于以此为生的专业人士,应该人人已经掌握。现实的世界却是啪啪地打脸,我们的注册应用系统数量以万记,没听说一个系统的代码是靠AI自动生成,而每个月的故障汇总中都有代码引起的问题,要解决这些基础问题,还是要从基础说起。

京东科技开发者 905

什么是整洁代码_什么是整洁的代码库?

什么是整洁代码 我最近看过《整理生活的改变人生的魔法》这本书。 我想我在Play商店获得了一个样本,马上想到:“哇,这个女人真是一个了不起的写作之声。” 现在,我已经读了很多书,我知道为什么:1.它是冗长的句子 ,礼貌地传递,就像以娃娃的声音传递的女巫诅咒一样; 2.它完全是哲学上的。 尼采说他只爱用鲜血写的东西。 如果生活得当,传记应该是一本好书。 如此令人敬畏的是,作者在5岁时就迷上了杂乱...

danpu0978的博客 165

【整洁之道】如何写出更整洁的代码(上)

如何写出更整洁的代码       代码整洁之道不是银弹,不会立竿见影的带来收益。   没有任何犀利的武功招式,只有一些我个人异常推崇的代码整洁之道的内功心法。它不会直接有效的提高你写代码的能力与速度,但是对于程序员的整个职业生涯必然会带来意想不到的好处。   如果你还是一个在校学生,或者是刚工作没多久的“菜鸟”,那么很有必要接触一些这方面的知识的。很显然,它会帮助你更快的适应企业级开

ggabcda的博客 2775

【代码整洁之道】第一章:整洁代码

第一章:整洁代码 1.1 要有代码 将需求明确到机器可以执行的详细程度,离不开代码。 代码永远都会存在。 1.2 糟糕的代码 为啥会写出糟糕的代码? 急着完成,赶时间。以后再清理。 注意:稍后等于永不。 1.3 混乱的代价 延缓进度 降低团队生产力 1.3.1 华丽新设计 老系统太乱了,没法继续开发; 需要重新设计一套新系统,但新系统需要很长时间才能替代老系统的功能。 ...

水月洞天 297

代码整洁之道

1.什么样的代码才是整洁的 从字面意思上理解,整洁的代码,对于程序员来说非常的一目了然,简单、整洁,结构清晰,逻辑清楚。代码其实是一种语言,传递的是逻辑,如果这份代码可以像我们说话一样快速的将逻辑传递给读者,那么这样一份代码就是一份整洁的代码。可以借助沃德原则:"如果每段代码欧让你感到深合已意,那就是整洁代码"   2.如何保持代码整洁 首先便是要有保持代码整洁的意识,书中反复提到的提到的一条童子军军规:让营地比你来时更干净。要写好整洁的代码,需要...

hskw444273663的博客 1700

《代码整洁之道》第一章 整洁代码 ---为什么需要整洁代码?

第一章 整洁代码概述什么是整洁代码?开始走向整洁代码 概述 欢迎阅读本栏目的读者,如果你想成为更加优秀的coder,请跟随笔者的观点去解析《代码整洁之道》这本书,相信你会收获颇丰。 软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。 本书提出一种观念:代码质量与其整洁度成正比。 干净的代码,既在质量上较为可靠也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规

zhangxiaoxiao9527的博客 525
上一篇: 关于python的播客推荐
下一篇: Python如何在遍历列表时删除元素
Niracler
博客等级 码龄10年 1粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值