前言: Hello大家好,我是Dream 。经常有朋友问我,自己写的代码太乱,虽然功能都能实现但是写的并不简洁,让人一眼看上去就会很难受,那如何去写出简洁优雅的代码呢?那今天我就来和大家分享一下一些写代码的好习惯和小技巧,掌握这些小技巧,我相信写出简洁优雅的代码并不成问题,快来一起看吧!

一、为什么要注意代码的写法

代码的写法直接影响着程序的可读性、可维护性和可扩展性。好的代码写法可以使程序更易于理解和修改,减少出错的可能性,提高代码的质量和效率。写出简洁的代码是每个程序员都应该追求的目标。

二、如何正确的书写代码

当谈到如何正确的书写代码时,有几个关键点需要注意。
首先,代码应该易于阅读和理解。这意味着使用清晰的变量名和注释,以及遵循一致的代码风格。其次,代码应该是可维护的。这意味着使用模块化的设计,避免重复代码,并确保代码易于修改和扩展。最后,代码应该是高效的。这意味着使用最佳的算法和数据结构,并避免不必要的计算和内存使用。
为了编写高质量的代码,您应该始终遵循以下几个步骤:

1.计划和设计

在编写代码之前,我们应该花时间计划和设计我们的代码。这包括确定我们的目标,设计您的数据结构和算法,以及编写伪代码。

2.编写代码

在编写代码时,我们应该遵循一致的代码风格,使用清晰的变量名和注释,并确保我们的代码易于阅读和理解。

3.测试和调试

在编写完代码后,我们应该进行测试和调试。这包括编写单元测试和集成测试,并使用调试器来查找和修复错误。

4.优化和重构

一旦您的代码可以正常工作,我们应该考虑优化和重构。这包括使用更好的算法和数据结构,避免重复代码,并确保我们的代码易于维护和扩展。

三、书写简洁优雅代码的小技巧

1.使用有意义的变量名

变量名应该能够清晰地表达变量的含义。使用有意义的变量名可以使代码更易于理解和维护。例如,使用“count”代替“c”可以使代码更加清晰。

list=['Python','Circle','is','ok']

2.避免重复的代码

重复的代码会使代码变得冗长和难以维护。可以使用函数或类来避免重复的代码,这样可以使代码更加简洁和易于维护。
如果从一个类中复制了一段代码到另一个类中,这段代码需要时不时的修改,那么就要花时间去修改所有包含这段逻辑的代码,无形中增加了维护成本和发生bug的几率。这时候就要着手消除和抽取重复的代码。消除重复的代码有一个三次法则:
1.第一次先写了一段代码。
2.第二次在另一个地方写了一段相同的代码。
3.再次在另一个地方写了同样的代码,这个时候就要赶紧去抽象消除这个问题了。

3.使用注释

注释可以帮助其他人理解代码的含义和目的。注释应该清晰、简洁,并且应该解释代码的目的和实现方式。

#表示只包含一个元素的元组,一定要在后面加逗号
a=(1)print(type(a))#整数
a=(1,)print(type(a))#元组

4.使用简单的语句和表达式

使用简单的语句和表达式可以使代码更加易于理解和维护。应该避免使用复杂的语句和表达式,因为它们会使代码变得难以理解和维护。

#求两个集合的差集
a={6,7,8}
b={7,8,9}print(a-b)

5.避免使用全局变量

全局变量会使代码变得难以理解和维护。应该尽量避免使用全局变量,而是使用局部变量或参数来传递数据。
全局变量有些时候是无法避免的,只能尽量减少全局变量。我能想到的主要有三个方面:
1、通过函数参数传递数据或指针。对于回调函数,通常有一个参数是自定义的数据指针,可以利用这个参数传递类指针或者自定义一个结构的指针。
2、只在某一个函数中使用的变量可以定义为局部静态变量(在函数内部定义,前面加static修饰)。
3、把全局变量定义成一个结构,定义一个全局的结构体变量。

6.使用适当的数据结构

使用适当的数据结构可以使代码更加简洁和易于维护,在大多数情况下,比不使用数据结构或使用不恰当的数据结构,能够更有效管理大量数据。例如,使用数组或列表来存储数据可以使代码更加简洁和易于维护。

7.使用函数和类

使用函数和类可以使代码更加模块化和易于维护。函数和类应该具有清晰的目的和功能,并且应该遵循单一职责原则。

class Person:def __name(self):print('私有方法')

8.使用异常处理

使用异常处理可以使代码更加健壮和易于维护。异常处理应该能够清晰地表达异常的类型和原因,并且应该提供适当的处理方式。

9.使用代码格式化工具

使用代码格式化工具可以使代码更加整洁和易于阅读。代码格式化工具可以自动调整代码的缩进、空格和换行符等格式。大多数编译器中都都会自带代码格式规范的工具,例如,Pycharm中的代码规范工具——Black。
安装的命令为
pip install black
可以在anaconda下的anaconda promtpt下、cmd命令行中输入该命令,也可以在pycharm中下方的terminal中输入命令进行安装。

10.遵循编码规范

遵循编码规范可以使代码更加一致和易于维护。编码规范应该包括变量命名、代码格式、注释和异常处理等方面的规定。

11.使用空格和缩进

空格和缩进可以让代码更易读。在编写代码时,应该尽量使用空格和缩进来分隔代码块和函数块。这样可以让代码更加清晰。和空行一样,空格的使用也没有强制性的规定,仅仅是为了增强代码的可读性。一般情况下,以下位置可以适当插入空格:
(1) 等号的前后;
(2) 数学运算符的前后,关键字和括号之间插入空格;
(3) 比较运算符的前后;
(4) 后面有代码的分号后面;
(5) 分割不同参数的逗号后面;为了和上下行的代码对齐,有时候需要插入两个空格;如果需要插入更多空格才能和上下代码对齐,通常会使用 tab 键。

12.遵循编码规范

编码规范可以帮助你写出更加规范和易读的代码。在编写代码时,应该遵循编码规范,比如使用统一的缩进、命名规范等。

13.使用版本控制

版本控制可以帮助你更好地管理代码。在编写代码时,应该使用版本控制工具,比如 Git,来管理代码的版本和变更。

14.不要重复造轮子

在编写代码时,应该尽量使用现有的库和框架,而不是重复造轮子。这样可以提高代码的效率和质量。
对于程序员个人来说,我觉得在程序员编程水平还比较初级的时候,多多造轮子可以提高自己的动手能力和编程能力,对于编程水平中等的程序员,我建议也是多多造轮子,以此来提高自己的编程能力,对于高手程序员来说,他在成为高手之前的那些日子里就是天天在造轮子,因为他那时候如果不多多造轮子(如果他那时候不拼命反反复复写代码),那他现在也不可能成为高手!所以,对于高手程序员来说,此时,可以不必重复造轮子了,如果他是出于精进、精益求精或者是出于研究和学习的目的,那他也可以适当的偶尔的造轮子,那也是OK的。

15.测试代码

测试代码可以帮助你发现代码中的问题和漏洞。在编写代码时,应该尽量编写测试代码,以确保代码的正确性和稳定性。测试能够给我们信心,如果你的代码通过了测试,那么即便有再多的人使用你编写的程序,它也能正确地运行。通过测试,可确定代码面对各种输入时都能够按预想的那样工作。
测试是很多初学者都不熟悉的主题,作为初学者,并非必须为你尝试的所有项目编写测试,但参与工作量较大的项目时,应对自己编写的函数和类的重要行为进行测试,这样就能够更加确定自己所做的工作不会破坏项目的其他部分,如果不小心破坏了原来的功能,你马上就会知道,从而能够轻松地修复问题。相比于等到不满意的用户报告bug后再采取措施,在测试未通过时采取措施要容易得多。
Python标准库中的模块unittest提供了代码测试工具,单元测试用于核实函数的某个方面没有问题,测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求。良好的测试用例考虑到了函数可能收到的各种输入,包含针对所有这些情形的测试,全覆盖式测试用例包含一整套单元测试,涵盖了各种可能的函数使用方式。
总之,写出简洁的代码需要程序员不断地学习和实践。 通过使用有意义的变量名、避免重复的代码、使用注释、使用简单的语句和表达式、避免使用全局变量、使用适当的数据结构、使用函数和类、使用异常处理、使用代码格式化工具和遵循编码规范等技巧,可以写出更加简洁、易于理解和维护的代码。

四、好书推荐

技术书籍是学习技术知识的重要资源之一。读技术书可以帮助我们学习新技能和知识,技术书籍提供了可靠的、全面的信息,帮助我们快速学习新技能和知识。同时技术书籍有助于保持你的竞争力,因为它们提供了最新的技术知识和实践。这在当今快速发展的技术领域尤为重要,不断学习新知识和技能才能保持竞争力。总之,读技术书对于学习技术知识、提高职业素养和保持竞争力都非常重要。
在这里给大家推荐本好书:《网络结构数据分析与应用》

国内首本成体系网络结构数据分析与应用教程,填补网络结构数据书籍空白;介绍网络结构数据分析方法,解析网络结构数据实际应用价值,全面掌握网络结构数据知识。
国内网络结构数据开河之作,全面实操网络结构数据。

1.内容简介

当今社会,网络结构数据普遍存在于各行各业。如何从这些数据中挖掘出价值,并且解决实际问题,成为学界和业界共同关注的研究方向。 本书共七章。第一章主要讲解为什么关心网络结构数据,介绍了R语言及常用的包,同时整理了常用的网络数据集。第二章介绍了网络结构数据的定义及分类。第三章讲解了网络结构数据的可视化,重点介绍了针对大规模网络的可视化方法及网络的动态交互式可视化。第四章介绍了描述网络特征的各种统计量及重要的网络结构。第五章重点介绍了三种经典的网络结构数据模型,第六章主要介绍了网络结构数据中社区发现的相关概念及方法,并整理了常见的评价指标及标准数据集。第七章介绍了网络结构数据分析中的链路预测问题。

本书适合网络结构数据的初学者,相关专业的学生或对网络结构数据感兴趣的读者阅读。

2.作者简介

潘蕊, 中央财经大学统计与数学学院副教授,中央财经大学龙马学者青年学者。北京大学光华管理学院经济学博士。主要研究领域为高维数据分析、网络结构数据分析、数据挖掘与建模等。在Annals of Statistics、Journal of the American Statistical Association、《中国科学:数学》等国内外期刊发表论文多篇。著有《数据思维实践》。
张妍,女,厦门大学在读博士研究生,研究方向为网络结构数据。
高天辰,男,厦门大学在读博士研究生,研究方向为复杂网络分析。

京东自营购买链接:https://item.jd.com/13522273.html

作为一名程序员,怎样写出高效简洁的代码?相关推荐

  1. 程序员如何写出更好的代码

    Martin Thompson是Java Champion称号获得者,同时也是一名高性能计算科学家.他说,为了写出更好的代码,程序员需要运用基本设计原则,阅读已有代码.在QCon London 201 ...

  2. 命名自喜剧团体,宅男程序员三个月写出的编程语言是如何改变世界的?

    大数据文摘出品 来源:Zdnet 编译:洪颖菲.李可.Vicky.李雷 1989年,荷兰的一位叫Guido Van Rossum的宅男程序员觉得其他语言都不好用,于是花三个月创造了一种新的编程语言. ...

  3. 为什么好的程序员会写出糟糕的单元测试?

    恭喜你!在写了无数行代码之后你终于可以买一套海景别墅了.你雇了世界著名的摩天大楼建筑师 Peter Keating,他向你保证他设计的海景别墅是最好的. 几个月后你终于迎来了剪彩的时刻.新房子是一栋人 ...

  4. 程序员如何写出高质量年终总结?

    干得好,也要说的好,程序员年终总结看这篇! 对程序员来说,这一年改过很多 Bug,写过很多功能,也重构过一些模块,经历了无数个需求的迭代,进行了无数次的提测,还偶尔加个班......那么如何体现在我们 ...

  5. 成为一名优秀的程序员,写出优雅的代码,要看哪本书?

    你是否曾为糟糕的代码所深深困扰?如果你是位有点儿经验的程序员,定然多次遇到过这类困境.我们有专用来形容这事的词:沼泽(wading).我们趟过代码的水域.我们穿过灌木密布.瀑布暗藏的沼泽地.我们拼命想 ...

  6. [转载]程序员如何写出杀手级简历

    转载自:http://kb.cnblogs.com/page/505583/ 这几年,我在Google工作,是一名软件工程师(之前是在微软做一个开发团队的队长),我曾浏览过成百上千的简历,从中挑选出可 ...

  7. 程序员如何写出技术好文?

    本文作者是阿里巴巴淘系技术 2020 年度作者,在内网论坛写文,写一篇爆一篇.分享一下他写文章时用到的一些小技巧,希望对大家有帮助. 最重要的是内容 和所有人强调的一样,好文章最重要的是要有好的内容, ...

  8. 年薪10万与年薪100万的程序员,写出代码的区别

    编程是一门创造性的工作,是一门艺术.我们每天与代码打交道,为什么普通码农辛苦一年只拿十万,而高级架构师年薪百万.最主要的就是我们敲出来的代码有差别,差别在意大部分码农敲出来坏的代码,而高级架构师能敲出 ...

  9. 程序员如何写出优雅的代码?

    作者 | 老峰 责编 | 郭芮 一直以来,关于"代码规范"的话题都备受关注,业界甚至有很多流传甚广的段子不断调侃之.既然代码规范能引起这么大的共鸣,那么今天我们谈谈一个程序员的自我 ...

最新文章

  1. 微博云原生技术的思考与实践
  2. 深圳美景品牌策划机构:美景、BOBDOG传媒合作论坛广州举行
  3. leetCode-删除排序数组中的重复项
  4. (1) ebj学习:基本概念
  5. iptables二之防火墙SNAT源地址转换,MASQUERADE地址伪装之DNAT目标地址转换讲解和实验演示...
  6. 忠告:创业公司与大公司正面竞争易死
  7. CAN笔记(9) 位填充
  8. opencv运行出现错误
  9. 在win32/安卓开发环境下编译BOX2D代码
  10. Outlook验证服务器证书,OUTLOOK2019 解决 无法验证您连接到的服务器使用的安全证书...
  11. 悦诗风吟网络营销的目标_睫毛膏营销策划方案
  12. 【MIKE21】批处理依次打开模型文件运行模型
  13. mysql 主键 sql语句_Mysql主键相关的sql语句集锦
  14. 手动释放linux缓存——/proc/sys/vm/drop_caches
  15. 智能暖风机——2.嵌入式系统创建
  16. 计算机器怎么验证,谷歌验证器【设置步骤】
  17. 如何从第三方应用下载广播电台的缓存节目内容
  18. H3C忘记密码,优盘重置
  19. C语言 strcat 函数 - C语言零基础入门教程
  20. 2018-2021,60+篇阿里研发效能提升合集,都在这里了

热门文章

  1. Flutter webview加载本地HTML方案
  2. 计算机无法通过无线上网,ScanSnap 和计算机无法通过无线局域网连接。
  3. Python编程语言的10个特点
  4. 炫酷动态时钟——canvas
  5. VS2017 IDE开发工具选型、安装和使用
  6. 使用线性回归构建波士顿房价预测模型
  7. H3C 防火墙策略介绍
  8. LCD显示屏屏暗的问题和解决方法
  9. 德阳计算机信息通信学校,四川省信息通信学校2021年招生简章
  10. java 自动微分,MIT开源高性能自动微分框架Enzyme:速度提升4.5倍