代码整洁之所以重要的七个理由_Cbird-coder的博客-CSDN博客


本站和网页 https://blog.csdn.net/xygl2009/article/details/21373001 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

代码整洁之所以重要的七个理由_Cbird-coder的博客-CSDN博客
代码整洁之所以重要的七个理由
Cbird-coder
于 2014-03-17 10:13:05 发布
598
收藏
分类专栏:
一般问题
一般问题
专栏收录该内容
7 篇文章
0 订阅
订阅专栏
再简单的问题,一个糟糕的程序员都能把它变复杂。——Steve Bohlen
代码没有良好的风格,没有良好的实现,再简单的逻辑都能变得晦涩难懂。改进代码风格,对于项目的开发、维护起到至关重要的作用。
什么是整洁的代码?
代码整洁是一种以读者为中心的开发风格,以此开发的软件易于读写和维护。开发人员总以为他们的工作在应用程序能够正常运行时就完成了。但是我们编写代码,并不只是为了给计算机用。
编码是一种和另外一个人交流你希望计算机做什么的艺术。–Nonald Knuth
保持代码整洁,首先要意识到你的读者不只是计算机,还是活生生的人!牢记这个原则,我们来讨论代码整洁之所以重要的七个简单理由。
1. 你是个作家
想让妈妈觉得你很厉害?告诉她你是个作家!作家就是那些练习写作并以此为职业的人。开发人员每天都在写。但是作为开发人员,我们总会忘记我们写的每一行代码都会被人阅读十遍以上。这些人,就是我们的同事。他们阅读代码,忙着修复漏洞和添加新的特性。
卓越的作家以写叙述清晰、扣人心弦的故事著称于世。他们使用诸如章节、标题和段落等工具,有条理组织他们的想法,并耐心的引导读者。开发人员的工作模式也很类似,只是他们简单的使用命名空间、类和方法这些行话来讲述故事罢了。
代码整洁的人能够聪明使用这些工具来降低复杂度,使故事变得清晰。
2. 代码整洁是基础
近年来,专业的重构、单元测试、测试驱动的开发等软件实践备受关注。这些实践提升了代码质量和软件的可维护性。实现代码整洁的原则是一项基本技能,它的优势会在进行重构代码或者对代码进行单元测试时显现。代码整洁的原则使得源代码高度模块化并且易于阅读和测试。如果将那些软件实践看作是房子的话,整洁的代码则是地基。
3. 证明你的技能
假设你正在参加一场技术面试。如果被问到代码质量,为证明你的代码质量,你能够举出专业且合理的理由吗?你会回答“加注释么”?
如果这就是你关于代码整洁所能想到的,那可是个坏兆头。如果你从未有条有理的深入思考过代码风格的质量问题,那么你可以改进的机会估计很多。代码整洁的人能够传授很多他们使用的具体行为、模式和技巧。但是,代码整洁毕竟不是偶然现象,它要求可行的规律的专注于清晰的表达意图。
能够被衡量的东西,都能被管理。—— Peter Drucker
建立一个整洁代码的词汇表,不仅有利于面试和提升代码质量;而且,在代码审查时,建立大家公认的代码可读性的词汇表和框架,能够促进冷静的对话。
4. 读代码才是难事
开发人员常以能够解决难题为傲。不过相对来讲,写代码比较简单,读代码才是件难事。这就是为什么 Eric Lippert 写文章说阅读代码很难。这也是为什么这么多的程序员宁愿重写,也不愿做阅读和理解已有的代码这种苦差事。既然看代码原本就很挑战,如果一些代码你写的时候都只能勉强理解,你会发现过后你一点都看不懂。专业的程序员写了太多的代码,以至于只要间隔几周,就能忘记大部分的结构和设计,像以全新的视角看这个项目。过段时间看不懂自己的代码确实是很尴尬的事。
5. 技术债务让人沮丧
马虎混乱的代码会给我们的项目埋下技术债务。仔细考虑情境时,技术债务也会是有用的,但是过度的技术债让人沮丧,并且会导致团队的人才流失。当简单的事情变得复杂时,开发人员就会开始撤退去别的地方了。他们更看重工作质量带来的成就感,而不是工作数量。技术债务会降低代码重用的机会,并且处处拉低其他代码库的质量。
6. 你太懒惰
PERL语言的作者Larry Wall说过程序员的三大美德:懒、缺乏耐心、自大。是的,在合适的情境中,懒惰确实是积极因素。早些年,当我还在跌跌撞撞的写代码的时候,我认识到保持代码整洁所付出的艰辛真的会得到回报。专业的开发人员努力做到正确的懒惰。这种懒惰是把更多的精力放到代码中,以至于开始时不难写,以后也不会难以重用。代码整洁不会多花费很多时间,而且一旦你掌握这些原则,你的编码速度实际上会更快。因为精炼的、表达充分的代码最大的优点就是易于管理。
人们处于压力中时,容易偷工减料并且忽略最佳做法。然而像Bob Martin大叔在他的《代码整洁之道》中提醒我们的那样:我们没有时间不认真。长远来看,马虎草率所增加的出错次数和后期的维护代价,最终会拖延项目速度。历史经验告诉我们,后期你基本不可能有时间再去整理你的代码。所以为什么不在一开始就好好做呢?
7. 不要成为那个动词
好吧,其他的原因都解释的站得住脚,但是这个理由最关键。大家都知道前同事的名字变成动词来描述“脏”代码的事:糟糕,这些代码是Jimmy写的。“Oh man, this code has been Jimmy’d.”
这样的评价,简直就是长远就业前景的克星啊。我们都希望未来的职位上,同事能够推荐或者录用我们不是吗?想要确保今后同事会推荐你,并且期待和你以及你的代码合作,让别人知道你的代码整洁是最好的方式。
代码整洁的原则
以下是代码整洁的三个核心原则:
1. 选择正确的工具
2. 优化信噪比
3. 尽最大努力写出能够自解释的代码
Cbird-coder
关注
关注
点赞
收藏
评论
代码整洁之所以重要的七个理由
再简单的问题,一个糟糕的程序员都能把它变复杂。——Steve Bohlen代码没有良好的风格,没有良好的实现,再简单的逻辑都能变得晦涩难懂。改进代码风格,对于项目的开发、维护起到至关重要的作用。什么是整洁的代码?代码整洁是一种以读者为中心的开发风格,以此开发的软件易于读写和维护。开发人员总以为他们的工作在应用程序能够正常运行时就完成了。但是我们编写代码,并不只是为了给计算机用。
复制链接
扫一扫
专栏目录
TensorFlow2常用模块介绍
FIEforever的博客
03-18
166
TensorFlow2常用模块介绍
《HCIA-AI 华为认证人工智能工程师在线课程 》
课程链接
本节内容分为3个单元,主要讲解了如何使用tf.keras模块来完成神经网络建模。
详细内容要点:
网络拓扑架构构建
网络层的定义
网络的训练、评估与测试
学完本单元后,你能掌握tf.keras模块来完成神经网络建模的使用方法。
代码
# -*- coding: utf-8 -*-
"""
Created on Wed Mar 17 15:16:11 2021
《HCIA-AI 华为认证人工智
参与评论
您还未登录,请先
登录
后发表或查看评论
如何写出好的代码?详解const和assert断言
猪肉炖粉条的博客
12-06
59
普通的工程师堆砌代码,优秀的工程师优雅代码,卓越的工程师简化代码。如何写出优雅整洁易懂的代码是一门学问,也是软件工程实践里重要的一环。
tf2.0报tf.function错误
不积跬步,无以致千里;不积小流,无以成江海
02-22
8833
错误信息全部信息:
WARNING:tensorflow:11 out of the last 11 calls to <function
train..train_step at 0x7f6d1843e840> triggered tf.function
retracing. Tracing is expensive and the excessive number of trac...
为什么保持代码整洁如此重要?
热门推荐
人邮异步社区
02-05
1万+
对于代码整洁,没有唯一的或者严格的定义,而且可能无法正式地衡量怎样才算代码整洁,因此你不能在代码仓库上运行一个可以告诉你代码是好是坏、可维护性如何的工具。当然,你可以运行检查器、代码校验器、静态分析器等工具。这些工具会给你很大的帮助。它们是必需的,但光有这些还远远不够。代码整洁与否不是机器或脚本能说了算的(到目前为止),而是作为专业人员的我们才能决定的。
几十年来,我们沿用“编程语言”这个术语,并将其视为把我们的想法传达给计算机的语言,可以让计算机运行我们的程序。但是我们错了,这仅仅是部分事实。编程语
5实现断点续播_tensorflow 2.x系列03 模型断点续训,自动停训
weixin_30941657的博客
01-07
129
tensorflow 2.x系列03 模型断点续训,自动停训本期文章是一个系列课程,本文是这个系列的第3篇复习笔记(1)Build and train neural network models using TensorFlow 2.x(2)Image classification(3)Natural language processing(NLP)(4)Time series, sequence...
关于烂代码的那些事(中)
nicehuai
08-23
563
作者: 秦迪 发布时间: 2015-08-13 22:36 阅读: 10350 次 推荐: 32 原文链接 [收藏]
  1. 摘要
  这是烂代码系列的第二篇,在文章中我会跟大家讨论一下如何尽可能高效和客观的评价代码的优劣。
  在发布了关于烂代码的那些事(上)之后,发现这篇文章竟然意外的很受欢迎,很多人也描(tu)述(cao)了各自代码中这样或者那样
整洁代码的理解
老胡
09-15
1202
前段时间看了《代码整洁之道》这本书,书中的一些观点讲的很不错,这些观点很容易让人对号入座,也很容易让人知道自己写的代码是否漂亮、是否整洁。通过这篇文章记录下读后感和书中的一些观点。
为什么要整洁代码
很多时候我们修复bug或开发新功能时都会先看看周边的相关代码(开发过程中经常碰到前面写的代码到后面就忘了,回看代码是常事),如果想要bug或新功能写的轻松那自然就要求代码阅读也轻松。不整洁的...
《代码整洁之道》总结和感想
u010210248的专栏
01-15
5917
花了三天时间将《代码整洁之道》的基础部分看了两遍,看完了这本书,感觉不是能力上的提升,而是思想上对整洁有个整体的把握以及一些保持整洁的小技巧。下面我先说下我对这本书的整体感觉。
我认为不足:作为初学者的我到14章《逐步改进》就止步了,整篇的都是代码,完全看不下去;后面还有关于并发的知识,我觉得单独把并发当做一个重要知识点在本书讲解不是很合适;还有后面那个附录的代码看的也是真的
Python中tensorflow Import使用错误集合
小黄瓜要编程的博客
12-17
5163
cannot import name ‘BatchNormalization’ from 'keras.layers.normalization’
错误
拉取一份代码,报错cannot import name ‘BatchNormalization’ from ‘keras.layers.normalization’
解决
将原导入from keras.layers.normalization import BatchNormalization
修改为from keras.layers.normaliza
代码整洁之道,不止于程序员需要的职业素养
u012101245的博客
12-11
1598
代码整洁之道,不止于程序员需要的职业素养
最近在读《代码整洁之道》这本书,分享一些我的感悟。首先得说明一下这本书是一本技术类的书籍,大部分内容讲的是纯技艺方面的知识,比如测试驱动开发、阻塞、调试、编程练习等等,也就是“术”,但我分享的主要不是这方面,而是分享书中的职业素养的部分。
在还是学生的时候,做起事来就凭着真性情,想怎么弄就怎么弄,代码想怎么写就怎么写,甚至不写都可以。但到了公司,就不是任由...
为什么保持代码整洁如此重要
goldenwinner2008的博客
10-26
99
为什么保持代码整洁如此重要,有很多原因。与可维护性、减少技术重复、以及提高效率和管理一个成功的项目有关。
因为只有时刻保持代码整洁才能把程序写明白,把逻辑关系写清楚,减少错误的发生,也为以后的修改或者更新添加新的功能提供便利条件。
整洁的代码就像一部汽车一样,只有汽车各个部件都完善,才能使汽车正常的运转,如果汽车的部件不合规,那么汽车的就不能很好的运行起来,中间就会出现很多问题,进而导致汽车出现故障或事故,所以要保证部件的合规合理,才能使汽车正常的行驶。代码也一样,只有代码整洁,才能发现问题,修改问题,
TCP/IP协议学习之五(UDP协议)
不积跬步,无以致千里;不积小流,无以成江海
08-11
404
UDP与前面提到的TCP一道同属于传输层。
UDP与TCP不同,它是一种面向无连接的协议,也就是数据双方通信的时候,不需要事先建立连接。所以UDP头节省了很多字段,UDP头只有8个字节。UDP头的组成如下:
UDP头只含有源端口与目的端口,再加上数据报长度和校验和。这里说下这个校验和怎么算,其实TCP的校验和也是这么计算的。计算之前需要添加一个12个字节的伪首部,伪首部和UDP数据包组
优秀程序员必读的6本专业书籍推荐
码农王也的博客
02-18
1311
书籍对人们的影响是潜移默化的,无论身处何种人生阶段,从事什么职业,我们都应亲近书籍,给予我们人生更多启迪和帮助,程序员群体亦是如此。编程不仅考验的是代码能力,更是对学习能力、逻辑思维能力、解决问题的能力的综合考察。作为一名程序员,如何通过精进学习,提高自身业务能力,不妨从通读下面这6本专业书籍入手。
推荐一:《程序员修炼之道》
推荐理由:这本书几乎涵盖从个人责任、职业发展,知道用于使代码保持灵...
《代码整洁之道》学习总结
zhang_jiayuan的博客
11-21
325
如何写出规范而整洁的代码是每一位程序员孜孜不倦的追求,这在团队协作中显得尤为重要,从《代码整洁之道》,《阿里巴巴Java开发手册》(附下载链接: https://pan.baidu.com/s/11Yo0_9bqa-WQS5G25MXyrQ 提取码: bg43),《重构:改善既有代码的设计》等书,无不体现人们为之做出的努力。最近读了Robert C.Martin的《代码整洁之道》,做如下总结:
...
代码整洁之道 总结
无能力者只知抱怨
05-19
5962
1.什么样的代码才是整洁的
从字面意思上理解,整洁的代码,对于程序员来说非常的一目了然,简单、整洁,结构清晰,逻辑清楚。代码其实是一种语言,传递的是逻辑,如果这份代码可以像我们说话一样快速的将逻辑传递给读者,那么这样一份代码就是一份整洁的代码。可以借助沃德原则:"如果每段代码欧让你感到深合已意,那就是整洁代码"
2.如何保持代码整洁
首先便是要有保持代码整洁的意识,书中反复提到的提到的...
整洁代码有多重要,看了这个你就懂了
weixin_58045538的博客
10-11
39
今天给大家普及一个法则,我们称之为勒布朗法则——稍后等于永不,先给大家讲一个跟开发有关的故事:
20世纪80年代末,有家公司写了个很流行的杀手应用,许多专业人士都买来用。然后,发布周期开始拉长。缺陷总是不能修复。装载时间越来越久,崩溃的几率也越来越大。主人公还记得自己在某天沮丧地关掉那个程序,从此再不用它。在那之后不久,该公司就关门大吉了。
20年后,主人公见到那家公司的一位早期雇员,问他当年发生了什么事。原来,当时他们赶着推出产品,代码写得乱七八糟。特性越加越多,代码也越来越烂,最后再也没法管理这些代
锂电池基础知识介绍.pdf
12-22
动力锂电池及BMS系统资料
操作系统与设备驱动程序的安装-实验报告.doc
最新发布
12-22
操作系统与设备驱动程序的安装-实验报告.doc
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
Cbird-coder
CSDN认证博客专家
CSDN认证企业博客
码龄11年
暂无认证
206
原创
3万+
周排名
122万+
总排名
66万+
访问
等级
8173
积分
102
粉丝
130
获赞
114
评论
428
收藏
私信
关注
热门文章
wifi的几种工作模式
29365
一个最容易忽略的问题scanf的结束条件以及返回值
24091
libopencv_videoio.so: undefined reference to `av_free@LIBAVUTIL_52'
23639
hadoop内存大小设置问题
17168
LSTM该不该使用RELU?
16538
分类专栏
网络协议与组网
10篇
系统管理
23篇
web架构
9篇
图像处理
3篇
一般问题
7篇
嵌入式项目
7篇
opencv学习
9篇
操作系统
14篇
shell编程
19篇
虚拟化与云计算
4篇
hadoop学习
16篇
算法与数据结构
15篇
防火墙iptables
4篇
C/C++程序基础知识与概念
18篇
数理逻辑与机器学习(machine Learning)
1篇
Debug方法
1篇
工具
7篇
Linux系统性能
5篇
面试
2篇
算法问题
10篇
走走看看想想
Ros
3篇
深度学习相关
20篇
Python网站学习
4篇
Python机器学习
6篇
最新评论
shell之expect
️..:
感谢提醒
tensorflow2.0的模型保存加载的几个方法
YSG一首歌:
问题还是没有解决
tensorflow2.0的模型保存加载的几个方法
YSG一首歌:
你好,可以私下请教吗,我运行的是你的另外一个项目
tensorflow2.0的模型保存加载的几个方法
YSG一首歌:
可能是的,我注释了两行代码
# 指定input_signature何时调用tf.function以确保仅构建一个功能图
train_step_signature = [tf.TensorSpec(shape=(None, None), dtype=tf.int64)]
@tf.function(input_signature=train_step_signature)
tensorflow2.0的模型保存加载的几个方法
Cbird-coder:
看样子是权重没有保存好?没有任何载入,检查一下权重保存情况
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
使用nginx+tornado部署高并发web
Tornado绑定不同进程到不同端口上
Tornado运行tensorflow卡死问题分析
2020年7篇
2019年6篇
2018年9篇
2017年32篇
2016年4篇
2015年105篇
2014年44篇
2013年24篇
目录
目录
分类专栏
网络协议与组网
10篇
系统管理
23篇
web架构
9篇
图像处理
3篇
一般问题
7篇
嵌入式项目
7篇
opencv学习
9篇
操作系统
14篇
shell编程
19篇
虚拟化与云计算
4篇
hadoop学习
16篇
算法与数据结构
15篇
防火墙iptables
4篇
C/C++程序基础知识与概念
18篇
数理逻辑与机器学习(machine Learning)
1篇
Debug方法
1篇
工具
7篇
Linux系统性能
5篇
面试
2篇
算法问题
10篇
走走看看想想
Ros
3篇
深度学习相关
20篇
Python网站学习
4篇
Python机器学习
6篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值