代码整洁之道 读书笔记 一

本文介绍了编写整洁代码的重要性和具体实践方法,包括遵循勒布朗法则、采用有意义的命名、编写短小精悍的函数等内容。

被要求到阅读这本传说中的书,写个读书笔记记录一下~

第一章 整洁代码
1.勒布朗法则:稍后等于永不(Later equals never)
2.整一章都在描述代码整洁有多重要..

第二章 有意义的命名
1.选择体现本意的名称能让人更容易理解和修改代码
2.避免选择具有误导性的命名,比如使用一些专有名词来命名,或者是使用一些很长但区别又很小的长命名。命名最好用同样的拼写方式。字母l和字母O于数字1和数字0在一定程度上很相似,避免使用这两兄弟单独作变量名。
3.做有意义的区分:用a1,a2,a3……等数字系列命名很蠢,完全没有体现出信息;不要使用意义相近的词作为两个命名,如data和Info,这两个词的意义没有区别,命名难以区分;不要使用废话,比如拒绝让table出现在表的命名中,能够去掉的部分就去掉,避免影响区分。
4.不要随性地自己制造词汇命名,只使用能读得出来的词来命名
5.让命名可搜索,避免让这个命名成为其他命名或代码的一部分,否则将导致搜索不到真正想搜索的变量。
6.避免使用编码,同时编码的名称通常也不便发音。
7.类名应为名词或名词短语,避免使用动词命名类。而方法名应该是动词或动词短语。读写函数和判断函数应分别用get,set,is开头,属性结尾。
8.不要在代码中发挥幽默感,比如使用俚语命名。

第三章 函数
1.函数的第一规则是短小,第二条规则是还要更短小。
2.if语句、else语句、while语句等其中的代码块应该只有一行,这行大抵是一个函数调用语句,函数也应该具有较具说明性的名称。
3.函数应该做一件事。做好这件事。只做这一件事。这一件事可以是同一抽象层的多个步骤。如何才叫同一抽象层,我的理解是同一抽象层的代码顺序地读起来可以很容易知道这段代码的目的,而不同抽象层的代码放在一起使可读性变得很差。
4.单一权责原则(Single responsibility principle):A class should have only one reason to change.通俗来说,一个类只应该有一个职责。
5.开放封闭原则:类的设计应该是可扩展,但是不可修改的。对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。对修改封闭,意味着类一旦设计完成,就可以独立其工作,而不要对类尽任何修改。
6.尽量不要直接使用switch,而是将switch埋到抽象工厂底下,用于创建多态对象。
7.函数需要取有描述性的名称,最好能用名字体现出函数效果。函数的名字不怕长,有清楚的描述性就好。
8.函数参数越少越好,尽量不要使用3个及以上的参数。
9.只有1个参数的函数通常有这两种形式:一种是对参数做判断,返回值常为boolean;还有一种是对参数进行操作,转换成另一种类或基础类型并作为返回值返回。其他形式的一元函数尽量避免编写。
10.避免向函数传入布尔值,应该设计成两个函数,把判断放在函数外。
11.二元函数的两个参数有联系的话让人比较容易读懂函数,比如坐标点函数Point(int a,int b)。二元函数应该尽量使用一些机制变成一元函数,比如将这个函数写在其中一个参数的类里,通过这个类调用这个函数就不需要再传入这个参数了;或者是用一个新类包含其中一个参数和这个函数,通过这个类调用函数就能直接使用这个参数了。
12.避免函数出现副作用,其实就是坚持贯彻单一权责原则,让函数避免做第二件事造成耦合。就算真的要做第二件事,那也应该在命名中体现出来,名字如果只描述了第一件事而忽略第二件事会很容易造成困扰。
13.参数str:把str添加到什么东西后面,则str是输入参数;把什么东西添加到str后面,则str算是输出参数。普遍而言,函数要尽量避免使用输出函数,应该改成 “str.函数()” 这样的修改所属对象状态的形式。
14.返回某对象的状态信息,修改对象的某状态。这两种函数效果不应该出现在用一个函数中,防止混淆。
15.不要自己编写错误码返回,使用异常代替。
16.try catch代码中不应该放流程的主题,将主题抽离出来,用函数调用代替,代码会更加易于理解和修改。
17.去掉一切重复的东西,重复是软件中一切邪恶的根源。
18.在大函数中使用结构化编程,即函数只有一个入口一个出口,循环中不要有break、continue语句,永远不要用goto语句。而在小函数中结构化编程益处不打,所以可以使用break和continue。
19.要写出优美的函数,要想写文章一样,一开始想怎么写就怎么写,然后再对其进行修改和打磨。没人可以做到一开始就能按照规则写函数。

内容概要:本文介绍了个基于MATLAB实现的无人机三维路径规划项目,采用蚁群算法(ACO)与多层感知机(MLP)相结合的混合模型(ACO-MLP)。该模型通过三维环境离散化建模,利用ACO进行全局路径搜索,并引入MLP对环境特征进行自适应学习与启发因子优化,实现路径的动态调整与多目标优化。项目解决了高维空间建模、动态障碍规避、局部最优陷阱、算法实时性及多目标权衡等关键技术难题,结合并行计算与参数自适应机制,提升了路径规划的智能性、安全性和工程适用性。文中提供了详细的模型架构、核心算法流程及MATLAB代码示例,涵盖空间建模、信息素更新、MLP训练与融合优化等关键步骤。; 适合人群:具备定MATLAB编程基础,熟悉智能优化算法与神经网络的高校学生、科研人员及从事无人机路径规划相关工作的工程师;适合从事智能无人系统、自动驾驶、机器人导航等领域的研究人员; 使用场景及目标:①应用于复杂三维环境下的无人机路径规划,如城市物流、灾害救援、军事侦察等场景;②实现飞行安全、能耗优化、路径平滑与实时避障等多目标协同优化;③为智能无人系统的自主决策与环境适应能力提供算法支持; 阅读建议:此资源结合理论模型与MATLAB实践,建议读者在理解ACO与MLP基本原理的基础上,结合代码示例进行仿真调试,重点关注ACO-MLP融合机制、多目标优化函数设计及参数自适应策略的实现,以深入掌握混合智能算法在工程中的应用方法。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值