`
lujiawu12
  • 浏览: 128747 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

clean code读书总结和思考1

阅读更多
什么是clean code
Later equals never.

软件质量不仅关系到软件的效率,更加关系到软件的生存
总结一下,大致满足以下几点就差不多了。
1. 可读性强,清晰的表达思想,易读,易改
2. 较高的运行效率
3. 简单明了,单一职责,不要过度设计
4. 高内聚,低耦合
5. 包含单元测试
1.命名
原则
1. 名字表现内容,让读者能通过名字即知道这个代表什么,不需要注解。如果需要注解,则不是个好名字
2. 不能有歧义,误导读者。也不要一词二义
3. 名字要有特征,不能取name2 之类的名字。
4. 名字要便于发音,易于交流
5. 易查找,便于定位
6. 类名应该是名词,而方法名是个动词形式
7. 根据情况选择技术领域,或者问题领域内的名词
8. 名字应该依赖于上下文,比如方法,类,包。一同表达出想要的意义
9. 不要在名字中添加无用的字段。言简意赅

难点
1. 良好的表达技巧
2. 广泛的文化背景

实践
1. 名字长度 10-16个字符
2. 把限定词total,sum,average,max,min,record,string,pointer加在名字的最后
3. 常用的对仗词
Begin/end  next/previous   visible/invisible  
4. 典型的布尔命名done,error,found,success,ok
5. 缩写的一般原则:比如去掉所有的非前置元音,去掉虚词and,or,the ,统一的使用每个单词的第一,第二,或者第三个字母,保留每个字节中最引人注意的发音

2.方法
原则
1. 方法要尽量简短
2. 语句块和缩进的层次不宜超过2
3. 方法应很好的完成一个唯一的任务(同一个抽象层次)
4. 尽量避免用switch,因为它违反SRP和OCP原则,所以应尽量把它放在底层来创建多态对象。
5. 使用描述性的名字,如果方法结构得当,去个好名字不是难事
6. 方法的参数应尽可能的少,最好控制在3个之内;参数如果很多,应用参数对象。用成员变量和替代参数也可以提高程序的内聚性。
7. 参数不宜混淆,应和方法名相关
8. Boolean不宜作为参数传入方法体内
9. 一个方法应尽量干净,不能有副作用,不能依赖于不相关的事物
10. 参数不能作为输出之用
11. 用异常代替错误码,防止代码依赖于错误码。
12. 提取try …. Catch块中的代码,方便阅读
13. 提高抽象,增加代码复用
总结:很好的表达出整个程序
实践
1. 先写一个随意笨拙的方法,并让测试通过。
2. 遵循以上原则,进行重构。TDD
3. 让系统(程序)被很好的表达出来,而不是仅仅被写出来

分享到:
评论

相关推荐

    读书的格言摘录35条.docx

    例如,《Effective Java》、《Clean Code》等书籍不仅提供了编程技巧,还传达了优秀程序员应有的价值观和工作态度。 ### 9. 风声、雨声、琅琅读书声,都进入我们的耳朵,所以,作为一个读书人,家事、国事,天下的...

    实训商业源码-智能设备-论文模板.zip

    实训商业源码-智能设备-论文模板.zip

    实训商业源码-智慧农场小程序 1.8.8+众筹1.1.0+拼团1.0.0+报名1.0.6-论文模板.zip

    实训商业源码-智慧农场小程序 1.8.8+众筹1.1.0+拼团1.0.0+报名1.0.6-论文模板.zip

    电力电子领域PCS储能变流器双向Buck Boost电池充放电Matlab仿真研究 PI控制 基于文献复现的双向Buck Boost储能变流器的Matlab仿真模型与电压电流双闭环PI控制分析

    内容概要:本文详细探讨了基于文献复现的PCS储能变流器双向Buck Boost电池充放电过程的Matlab仿真模型。首先介绍了PCS储能变流器的重要性和双向Buck Boost技术的应用背景,特别是在可再生能源快速发展的背景下,储能系统的作用愈发关键。接着,文章描述了模型的具体构建方法,包括电池模型、PCS储能变流器模型和母线电压模型,并采用了电压电流双闭环PI控制策略。仿真过程分为三个阶段:0-0.1秒不充不放,0.1-0.3秒充电功率10KW,0.3-0.5秒放电功率15KW。重点讨论了LCL滤波器的效果及其对系统稳定性的影响。最后,提供了简单的Matlab代码片段用于设置仿真参数并运行模型。 适合人群:电力电子领域的研究人员和技术人员,尤其是对储能系统和PCS储能变流器感兴趣的读者。 使用场景及目标:适用于希望深入了解PCS储能变流器双向Buck Boost技术原理的研究人员,以及需要进行储能系统设计和优化的实际工程技术人员。目标是帮助他们掌握该技术的应用,提升系统性能和稳定性。 其他说明:文中提到的相关文献可以提供更多关于LCL滤波器和其他相关技术的详细信息,有助于进一步深入研究。

    实训商业源码-智慧乡村社区V6.3.9+手机录入V1.0.1-论文模板.zip

    实训商业源码-智慧乡村社区V6.3.9+手机录入V1.0.1-论文模板.zip

    减速电机测试上位机软件

    用于生产电机测试的上位机软件,有一定参考价值

    毕业设计-图片格式转换-整站商业源码.zip

    毕业设计-图片格式转换-整站商业源码.zip

    [YOLO11+UADETRAC]UADETRAC车辆识别数据集,使用YOLO11格式进行标注(三)

    车辆识别数据集,使用YOLO11格式进行标注,可以直接进行训练,本数据集包含MVI_40171到MVI_40204及其YOLO标注 0:car 1:van 2:bus 3:others

    电力电子领域中正负序PLL锁相环算法在华为与阳光电源DSP芯片中的应用及C语言实现 DSP芯片

    内容概要:本文详细介绍了华为与阳光电源在电力电子领域中采用的正负序PLL锁相环算法,用于提取和抑制不平衡电压。文章首先解释了正负序PLL锁相环的基本原理,即通过精确控制电源输出的相位来实现对负载电压的稳定控制。接着,文中探讨了该算法的具体应用场景,如高效电源设备的运行和电力系统监控,展示了其在提高设备运行效率和稳定性方面的重要作用。最后,文章讨论了技术细节和实现方式,强调了硬件资源利用效率、数字信号处理技术的应用以及多种滤波技术的使用,确保算法的高精度和稳定性。 适合人群:从事电力电子技术研发的专业人士,尤其是对锁相环算法感兴趣的工程师和技术研究人员。 使用场景及目标:适用于希望深入了解正负序PLL锁相环算法在实际应用中的实现方法和技术细节的人群。目标是帮助读者掌握该算法的工作原理及其在提升电力设备性能方面的应用。 其他说明:文章不仅提供了理论知识,还包括了具体的C语言实现指南,便于读者在实践中理解和应用。

    STM32HAl库驱动8个LED的Proteus仿真及源代码 STM32F103CubeMX生成原代码

    源代码是HAL库 Proteus仿真STM32F103C8芯片

    基于电压外环PI与内环滑膜控制的Buck变换器20V转10V仿真及参数设计 PI控制

    内容概要:本文详细介绍了基于电压外环PI控制和内环滑膜控制的Buck变换器的设计与仿真方法,特别针对将输入电压20V转换为输出电压10V的应用进行了深入探讨。文中首先阐述了PI控制器参数的选择依据及其计算方式,接着重点讲解了滑膜控制的具体实现步骤,包括滑模面的选择、切换函数的设计以及滞环的引入。此外,还提供了MATLAB/Simulink仿真实现的关键代码片段,并分享了一些实用的经验技巧,如在负载突变情况下的优化措施和参数调整策略。最后,作者推荐了几本相关领域的权威参考资料,强调了实际应用中需要注意的安全保护措施。 适合人群:对电力电子技术感兴趣的工程师和技术爱好者,尤其是希望深入了解Buck变换器双环控制系统设计与仿真的专业人士。 使用场景及目标:适用于从事电源管理芯片设计、电力电子设备开发等领域的工作人士,旨在帮助他们掌握先进的Buck变换器控制算法,提高系统的稳定性和响应速度。 其他说明:文中提供的仿真文件已上传至GitHub平台,方便读者下载并进行实验验证。同时提醒读者关注实际工程应用中的安全防护措施,确保电路运行可靠。

    电源设计领域Buck DCDC降压变换器PWM PFM双模式调制电路设计及应用 SPICE

    内容概要:本文详细介绍了基于PWM和PFM双模式调制的Buck DCDC降压变换器的设计方法及其应用场景。文中不仅涵盖了电路的基本架构,还深入探讨了各个子模块如带隙基准、自适应导通时间控制器、比较器、运放、非交叠时钟以及驱动电路的具体实现方式和技术细节。此外,文章提供了完整的电路文件、参考文献、设计文档、仿真报告,并配有部分视频讲解,帮助读者全面理解整个设计流程。特别强调了该设计在不同负载条件下的高效性能表现,尤其是在轻载条件下PFM模式的应用,确保了系统的高效率和平滑模式切换。 适用人群:适用于电源设计领域的初学者和有一定经验的研发人员,尤其是对Buck DCDC降压变换器感兴趣的工程师。 使用场景及目标:本设计旨在为电源管理芯片开发者提供一种高效的降压变换解决方案,特别是在便携式电子设备和其他低功耗系统中。通过学习本文提供的设计方案,读者可以掌握如何优化电路性能,提高响应速度,降低功耗,同时实现无缝模式切换。 其他说明:文章中提到的技术细节对于理解和改进现有电源管理系统非常有价值,尤其是一些创新性的设计思路,如自适应导通时间控制、动态迟滞技术和非交叠时钟生成电路等。

    基于vue+javaScript+css开发的熟食订货系统+源码+文档(毕业设计&课程设计&项目开发)

    基于vue+javaScript+css开发的熟食订货系统+源码+文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于vue+javaScript+css开发的熟食订货系统+源码+文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于vue+javaScript+css开发的熟食订货系统+源码+文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于vue+javaScript+css开发的熟食订货系统+源码+文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于vue+javaScript+css开发的熟食订货系统+源码+文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于vue+javaScript+css开发的熟食订货系统+源码+文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档

    基于Python的心电图实时监测与处理系统:低通滤波器应用及ECG图像保存

    内容概要:本文介绍了一种利用Python开发的实时心电图(ECG)监测系统。该系统能够实时显示ECG信号,允许用户调整低通滤波器参数,并支持保存采集到的ECG图片。文中详细讲解了系统的各个组成部分及其具体实现方法,包括数据采集、数据处理(如低通滤波)、界面显示以及图片保存等功能。作者还提供了完整的代码示例,展示了如何使用numpy进行数值运算,matplotlib进行图形化展示,scipy进行信号处理。 适合人群:对生物医学工程、医疗健康领域感兴趣的开发者和技术爱好者,尤其是那些想要了解或学习如何使用Python构建简单但实用的医疗设备仿真程序的人群。 使用场景及目标:适用于需要快速搭建原型或进行教学演示的情境下,帮助研究人员更好地理解和研究心脏活动特征。同时,对于初学者来说,这也是一个很好的练习项目,有助于掌握Python编程技巧以及相关库的应用。 其他说明:尽管这是一个简化的版本,但它涵盖了从理论到实践的关键步骤,为后续深入探索打下了坚实的基础。此外,文中提到的所有代码都可以直接运行,便于读者动手尝试。

    基于MATLAB的单闭环直流调速系统设计与仿真:涵盖设计报告、电气接线图及系统要求 电流截止保护

    内容概要:本文详细介绍了基于MATLAB的单闭环直流调速系统的完整设计流程。首先,文中明确了设计要求,包括平滑的速度调节、较宽的调速范围以及稳定的系统性能。接着,作者展示了如何搭建电机模型并选择了PI调节器作为转速调节器,同时提供了具体的参数计算方法。此外,还讨论了动态校正策略,强调了开环频率特性的分析及其对系统稳定性的影响。电流截止保护环节的设计也被提及,确保系统在负载变化时能够保持稳定。最后,通过仿真验证了系统的性能,确保其符合预期的各项指标,并分享了一些实际操作中的经验教训。 适合人群:从事电力电子、自动化控制领域的工程师和技术人员,尤其是那些希望深入了解直流调速系统设计的人群。 使用场景及目标:适用于需要设计高效可靠的直流调速系统的项目,旨在帮助读者掌握从理论到实践的全过程,提高系统设计能力。 其他说明:文中不仅提供了详细的理论推导和公式解释,还有丰富的实战经验和技巧分享,有助于读者更好地理解和应用相关知识。

    【Python编程基础】模块与面向对象编程详解:从入门到实践的全面解析介绍了Python编程中的

    内容概要:本文详细介绍了Python编程中的模块和面向对象思想。首先,阐述了Python在当今编程领域的广泛应用,包括人工智能、数据分析和网络爬虫等。接着,文章深入讲解了Python模块的概念,包括模块的作用、常见的内置模块(如math模块)及其导入方式(import、from...import、from...import *),以及如何创建自定义模块和包。随后,文章探讨了面向对象编程思想的诞生背景及其基本概念,包括对象、类、属性和方法,并重点介绍了面向对象的三大特征:封装、继承和多态。最后,文章通过一个学生管理系统的案例,展示了模块与面向对象思想在实际项目中的结合应用。 适合人群:对Python编程感兴趣的初学者,以及希望深入了解模块和面向对象编程的中级开发者。 使用场景及目标:①理解Python模块的使用方法,包括导入方式和自定义模块的创建;②掌握面向对象编程的基本概念和特性,如类、对象、封装、继承和多态;③学会将模块与面向对象思想结合应用于实际项目开发,提高代码的可维护性和复用性。 阅读建议:本文内容详实,涵盖模块和面向对象编程的基础理论与实践案例。读者应结合实际编程练习,逐步掌握模块的使用技巧和面向对象编程的核心思想。特别是通过案例分析部分,读者可以更好地理解如何将理论应用于实际项目中,提升编程能力。

    微电网控制中改进下垂控制策略及其应用——负载稳压与混合储能系统仿真研究

    内容概要:本文探讨了微电网控制中改进下垂控制策略的应用,旨在解决纯阻性负载和冲击负载对母线电压稳定性的挑战。文中介绍了系统的基础参数,包括电池、超容、光伏等设备的具体配置,并通过Simulink仿真环境建立了双闭环控制、传统下垂控制和改进下垂控制三种模型进行对比。改进下垂控制策略通过引入SOC参数优化了储能系统的性能,减少了直流母线电压的偏差。此外,在改进下垂控制基础上加入了二次控制,提高了系统的响应速度和稳定性。最终,通过对不同负载情况下三种控制方法的表现进行实验和数据分析,验证了改进下垂控制的有效性和优越性。 适合人群:从事电力电子、微电网控制、储能系统等相关领域的研究人员和技术人员。 使用场景及目标:适用于微电网系统的设计与优化,特别是涉及负载稳压和平抑新能源发电功率波动的场合。目标是提升系统的稳定性和效率,确保母线电压在各种负载条件下保持稳定。 其他说明:本文不仅提供了详细的理论分析,还附有完整的仿真模型和参考文档,便于读者理解和复现实验结果。

    自助授权的最新二开云授权系统源码+可授权后门盗版入库

    自助授权的最新二开云授权系统源码+可授权后门盗版入库 安装说明:上传访问安装

    实训商业源码-抖抖赢口红小程序V1.2.2全开源解密版-论文模板.zip

    实训商业源码-抖抖赢口红小程序V1.2.2全开源解密版-论文模板.zip

Global site tag (gtag.js) - Google Analytics