阅码

本文探讨了阅读代码的方法与技巧,强调了代码阅读对于程序员的重要性。作者分享了如何通过反复阅读、借助工具以及动手实践来理解复杂的代码结构。

作为一名勉强称得上码农的码农,工作二载余,阅码也不算多,但也想找时间谈谈阅码的一点点小体会。

阅读,通过特定媒介,或精读或浏览,或深入研究,将承载于媒介之上的信息,或直接获取,或深度挖掘,或通过某种协议进行信息的编解码,最终获取到媒介上所传达出来的信息。

至于信息到达阅读者的完整度、准确度、可扩展度、内中意蕴,一方面传播媒介的干扰,另一方面阅读者的思考理解能力。

文字、代码语言,都是传达信息的方式,经过人类文明,源源不断发展更迭,形成了强大、丰富的体系。

创作者、编写者,通过个人或集体的力量,将这些特定的文明方式咀嚼、糅合成了特定形式的存在,成文、成书,成建筑,成思想,成开源代码,成架构……

我们大部分人都接受过或多或少的教育,作为一名中国公民,自小汉字伴身,日常的阅读自然少不了文字,这是我们大多数人都比较熟识的,阅读文字成了我们获取知识、信息的主要渠道之一。

无障碍阅读,是我们接收教育,日积月累反复锤炼的成效,并紧紧依赖于我们的语言、文化环境。

同样的,阅读代码,和你的职业、工作、环境、需求密不可分。如果不是出于工作原因或个人兴趣使然,很少有人会接触到代码,即使是放到你眼前,你也不见得能够读懂。

先讲讲什么是代码。这与编程紧密相连,编程又有多种语言,C、C++,js,java,php……使用特定语言,根据特定语法编写出来的语句块,即可称为代码。类比文字,有文言文、白话文,都由汉字组成,都有各自的语法特点与格式,你使用起来,编写出来,就有意思了。

简单的文章读起来不费劲,长篇巨著或意味深长的词句就需要慢慢揣度。代码也一样,当代码结构体系庞大时,梳理起来就没那么容易的。

当然,可以先找找是否有已造好的轮子,看看是否有前人分享出来的可供借鉴的资源。站在巨人的肩膀上可以提高效率,方便自己掌握整体脉络,进而逐个击破。

代码的阅读需要借助阅读工具软件,阅读工具能高效提高阅读效率。就像你打开一份文档,使用office还是wps,还是……哪个用起来称手,有目录章节标签吗,可以直接跳转阅读。代码段里有函数、标签,也可以跳转,阅读跳转来,又跳转去,然后再联系上下文,想想这段到底是用来处理什么功能的,有什么作用,有时候要根据具体的软硬件环境,具体的协议规范,跳转着,跳转着,思考着,一点一点拼凑出这指令连接起的轮廓,内层含义,渐渐读懂。

有时候,不是读一次就能读懂一篇文章,或者每次读都能有不一样的体会。复杂点的代码更需要多次反复阅读,不断梳理。有环境的,编译运行起来跑一跑,看一看现象,或许更有助于自己理解。调试、执行、动手,不是单纯看,才能将代码读透,才能更好理解与掌握。

带着问题思考,跳着一步一步找,有些意思明确的就不深究进去,先把整体脉络理清,后续需要再从点深入,顺藤摸瓜式地揪起来,看看瓜的整体长成结构网。

吃瓜,也看看瓜地的收成形态。

SubiU
2020.11.02

————
原创不易,转载请注明出处,谢谢。

六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代实现)内容概要:本文档围绕六自由度机械臂的ANN人工神经网络设计展开,详细介绍了正向与逆向运动学求解、正向动力学控制以及基于拉格朗日-欧拉法推导逆向动力学方程的理论与Matlab代实现过程。文档还涵盖了PINN物理信息神经网络在微分方程求解、主动噪声控制、天线分析、电动汽车调度、储能优化等多个工程与科研领域的应用案例,提供了丰富的Matlab/Simulink仿真资源和技术支持方向,体现了其在多学科交叉仿真与优化中的综合性价值。; 适合人群:具备一定Matlab编程基础,从事机器人控制、自动化、智能制造、电力系统或相关工程领域研究的科研人员、研究生及工程师。; 使用场景及目标:①掌握六自由度机械臂的运动学与动力学建模方法;②学习人工神经网络在复杂非线性系统控制中的应用;③借助Matlab实现动力学方程推导与仿真验证;④拓展至路径规划、优化调度、信号处理等相关课题的研究与复现。; 阅读建议:建议按目顺序系统学习,重点关注机械臂建模与神经网络控制部分的代实现,结合提供的网盘资源进行实践操作,参考文中列举的优化算法与仿真方法拓展自身研究思路。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值