最近看到一篇文章,大意是讲,阅读优秀代码,是提高开发人员修为的一种捷径。我想加上一句,阅读不优秀的代码也是提高开发人员修为的一种捷径。因为:
1)三人行必有我师,择其善者而从之,择其不善者而改之。
从别人的代码中,即便是质量很一般的代码,也能学到一些东西;更加可贵的是,看到别人写的蹩脚的代码,你要警醒自己有没有犯同样或相似的错误。
2)分辨出是否是优秀的代码比较困难。
之所以这么说,是因为代码是否优秀,没有什么特别明确的标准。
Apache算是一个优秀的开源web服务器吧,但是内部的代码,我不敢妄谈,但一个struct包含上百个成员,难道是一种好的做法吗?
所以要说的就是,不管是什么层次的代码,多阅读一些,可以从一些维度上来分析,包括:
代码的可读性是不是好?组织的是不是好?
代码是否包含了一些值得学习的技巧?
如何我来写的话怎么写?
代码的规范性是不是好?
这段代码我将来是否能够重用?
当然,还有很多维度。好的地方值得学习,我们分析出哪里值得学习,怎么将收获在工作中使用上;不好的地方,分析出哪里是代码的破绽或臭味,自己是否犯过类似错误,怎样在工作中避免这些问题,这也是价值不菲的。
这里之所以这么补充,是因为,即便是Linux的源码、Java的源码、Apache的源码等等,其实从编码上来讲,也是问题多多。不管什么时候,你要有自己的一种判断,判断哪些代码时好的,哪些是差的。因为好的项目,其中也可能包含了一些很差的代码(开源项目更是如此);很一般的项目,也许包含了很多不错的代码。
学习的时候不要被权威给框住,也要勇于寻找问题,不是要嘲讽别人的代码,只是为了锻炼自己的认识、分析能力。而且从某种角度上,找到代码的问题,思考如何避免问题,对自己的锻炼效果更强。
当然,还有就是一边阅读,一边自己也设计和编码。或者,对一段代码,每次阅读,写下来自己的看法,过一段时间再来看,把当初的看法拿出来对照,以印证自己的长进。
相关推荐
实用代码 06 变分自编码器实用代码 06 变分自编码器实用代码 06 变分自编码器实用代码 06 变分自编码器实用代码 06 变分自编码器实用代码 06 变分自编码器实用代码 06 变分自编码器实用代码 06 变分自编码器实用代码...
作者Jon Bentley 以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及...
实用代码 05 自编码器图像去噪实用代码 05 自编码器图像去噪实用代码 05 自编码器图像去噪实用代码 05 自编码器图像去噪实用代码 05 自编码器图像去噪实用代码 05 自编码器图像去噪实用代码 05 自编码器图像去噪实用...
对xvid编码器源码分析如何优化,相信你会很满意
编写代码编码规范编写代码编码规范编写代码编码规范编写代码编码规范编写代码编码规范
自编码器的源代码 非常有效 在matlab上运行状态良好,
旋转编码器测试代码,51单片机驱动.......
脱离了具体编程语言,是每一位程序员都应看的书。
雷达原理与系统 matlab仿真代码 常见信号时频分析与模糊函数图(单载频,LFM,相位编码)
编码规范提高了软件源代码的可读性,使得软件开发人员能够更加快速和彻底地理解程序源代码。好的代码风格不仅会提高可读性,而且会使代码更健壮,更为重要的是在修改时不容易出错。作为一个软件产品,制定严格的编码...
信息论课程设计,费诺编码的编码译码和求编码率的C语言源代码
JPEG解码源代码及注释,JPEG编码器源代码分析
QR编码和解码的源代码,用于对二维码的编码生成和解码
法人和其他组织统一社会信用代码编码规则
java算法分析与设计之哈夫曼编码源代码 算法作为计算机专业学生的必修课,同时也是软件开发过程中必备的编程思想,对学习研究计算机专业意义重大;正因为这门课程难,所以除了相关方面的书籍,网络资源少的可怜,尤其...
语音编码的详细C代码,可在Visual c++上运行
香农编码源代码,基于二叉树实现,可供大家参考
代码实现ZF迫零预编码功能。在移动通信系统中,由于多用户干扰,造成接收端信号受到干扰,可以通过在站端进行预编码消除。
Huffman编码C++源代码 Huffman编码C++源代码