近日读书收获的一些小东西:
函数的第一规则是短小,短小的函数不仅有利于其他人细致理解,而且当开发者对编写的代码进行试错时更加的方便直观。if、else、while等语句,其中的代码块应该只有一行。该行大抵是一个函数调用语句。这样不仅能保持函数短小,而且,因为块内调用的拥有较据说明性的名称从而增加了文档上的价值。Dijkstra认为每个函数、函数中的每个代码块都应该只有一个入口一个出口。遵循这条规则,意味着每个函数中只应该有一个return语句,循环中不能有break或continue、goto语句,结构化编程值得提倡,但对于小函数,这些规则助力不大,只有在大函数中才有好处,因此函数的短小也使得其中偶尔出现的return、break、continue等语句没有坏处。
这也意味着函数不应该大到足以容纳嵌套结构。所以,函数的缩进层级不该多余一层或两层,这样也更易于阅读和理解。
函数应该净量减少传入的参数数量,参数带有太多的概念性,它与函数名处在不同的抽象层级,它要求读者了解目前并不特别重要的细节,并且从测试的角度参数越多,要编写确保参数各种组合运行正常的测试用例是很困难的事情,参数多于两个测试覆盖的所有可能值组合范围让人望而生微(虽然我不做测试)。
函数中的算法在代码中不断重复,会使函数变得臃肿,而且增加了放过错误的可能性,一旦消除重复,代码的可读性也会得到提升。
在编写代码时,应该想雕刻一样,先调出大概轮廓,再精雕细琢,所以开始写出冗长复杂的代码,之后进行函数分解、名称修改、重复消除、重新安置方法,之后组装好函数,完成代码的编写,这也是一种尝试编写的方法。
相关推荐
【Java初学者适用——Java实例大全】是一份专为初学者设计的教程资源,它涵盖了大量实际编程案例,旨在帮助新手快速掌握Java编程语言。在Java的世界里,实践是掌握知识的关键,通过实例学习能够更好地理解和应用理论...
《编程词典软件——函数词典》是一款专为编程初学者和高级开发者设计的实用工具,它集成了各种编程语言的函数、方法和概念解释,是编程学习与实践中不可或缺的助手。这款软件不仅有助于初学者快速理解编程基础知识,...
ArcGIS10地理信息系统教程从初学到精通——牟乃夏,高清版
本教程主要针对STM32初学者,通过一个简单的实例——循环交替点亮2个LED,来帮助大家熟悉STM32的基础操作。 首先,我们需要了解STM32的基本结构。STM32家族包含了多种型号,它们通常包含以下核心组件:CPU(Cortex-...
本资源包含"复变函数课件及期末要点总结",是学习和复习这门课程的宝贵资料,特别适合西北工业大学的学生使用。 首先,我们从章节划分来看,文件分别包含了第一章、第二章和第三章的内容。这通常代表了复变函数课程...
for i in range(1,10): for j in range(i): print("",i,"*","",j,end=" ") print()
在C++编程语言中,构造函数和友元是两个非常重要的概念,对于初学者来说,理解和掌握它们至关重要。本文将详细解析这两个主题,并通过实际示例进行解释。 首先,我们来探讨构造函数。构造函数是一种特殊的方法,它...
这个名为“LINUX实验程序——初学者”的压缩包显然是一系列针对初学者设计的Linux学习资源,旨在帮助新手掌握Linux的基本概念和系统编程技巧。下面,我们将深入探讨其中可能包含的知识点。 1. **Linux基础**:学习...
总的来说,“初学者必看——串口助手”是一个很好的实践项目,它不仅教会了我们如何使用VS创建桌面应用,还让我们掌握了串口通信的基本原理和编程技巧。通过这个项目,初学者可以深入理解串行通信的各个环节,为后续...
C语言函数库是C语言编程的核心组成部分,对于初学者来说,理解和掌握这些函数至关重要。C语言函数库,也称为标准库,提供了大量的预定义函数,用于处理各种编程任务,如输入输出、字符串操作、数学计算、内存管理等...
004-JavaSE进阶-IDEA相关快捷键
002-JavaSE进阶-IDEA设置字体
005-JavaSE进阶-day16作业题
001-JavaSE进阶-IDEA工具的使用
### Python GUI设计——Tkinter基础知识详解 #### 一、Tkinter简介 Tkinter是Python标准库中的一个图形用户界面(GUI)工具包,它提供了一系列的控件来帮助开发者快速构建用户界面。由于其易用性和跨平台特性,...
《即用即查——ASP+VBScript函数与对象参考手册》是一本专为从事Web应用开发的人员、ASP初学者、网页设计与制作人员、网页制作爱好者以及大中专院校学生设计的专业指导书籍。该书由韩延峰编著,ISBN编号为978-7-115-...
本“EXCEL练习——适合初学者”资料包提供了37个不同主题的练习文档,旨在帮助用户从基础到进阶,逐步掌握Excel的核心功能。 1. **基础操作** - **单元格引用**:学习如何选择、编辑和格式化单元格,理解相对、...
总结来说,神经网络BP算法是通过不断调整权重和偏置来逼近复杂函数的工具,而小波分解则提供了一种信号分析的手段,帮助我们理解数据的频率结构。在这个例子中,两种技术结合在一起,为初学者提供了一个直观的学习...