软件开发经验总结——读源代码的艺术

软件开发推荐书籍 软件开发就像一场持久的战役。 模糊、频繁变更的需求, 项目的讨论、争议 ,  进度的紧迫和延迟, 琐碎的事情, 突然出现的变故,各种因素都在尽全力阻挠人们按计划的实现预期目的。如果不够重视,它就会无情地偷取你的时间、精力乃至一切。 所以,在即将进入这个战场之前,或者准备纵深之前, 你准备好自己的武器和技能了么? 如果贸然上阵,恐怕会一上战场就深陷其中。         在《计算机专业推荐 阅读详情

     读取源代码是每一个开发人员成长的必经之路,一份优秀的源代码,是作者多年开发技术的心血结晶,研究一份优秀的源代码,总是能够让你的技术得到一定程度的提升。然后,读别人的源代码并不是拿着代码在那里瞎看,而是要充分了解作者的编程思路,了解代码的优点和缺点,在了解作者思路的基础上,自己尝试写出比该代码更优秀的代码,才能达到“通透”的境界。如果在读取源代码时能够遵守以下准则,那么效果就会更好。

准则1:必须尊重作者的劳动成果。我们读取别人的源代码后,如果需要拿到自己的项目中使用,建议能够在代码处详细注明代码的出处(但我们中国人很多都不重视这一点,外国人比较重视,我看fyiReporting的源代码时,作者如果使用的别人的代码,一定在旁边注明代码的出处,甚至在某个网页上看到的代码,也会在旁边写上网址)。不尊重别人劳动成果的人,人品肯定有问题,人品不行态度就不行,那么技术和能力也不可能会有很大的提高,强烈鄙视不尊重别人劳动成果的人。

准则2:在没有看代码前,先根据软件的功能按照自己的思路进行设计,然后带着问题去看代码。这是看源代码的最重要准则,你先按照自己的思路去设计,然后看代码时在与作者的思路相比较,这样才能找出自己思路的不足或作者代码的缺点,才能够站在更高的角度上去分析和学习(这是很重要的准则,不但看源代码要如此,看书也要如此,我在看代码前先会按自己的思路设计一套系统,然后再与源代码相比较,通常一些代码第一次看的时候觉得是宝,但看多次之后就觉得并不是想象中的那么好了,因为我可以用更少的代码、更简洁的结构做出同样功能的软件,在以后的文章里,我会给出我读fyiReporting源代码的例子)。

准则3:看代码要由易到难,不要想一口气吃成大胖子。这一点也相当重要,一下子去看太难的代码,会很大程度地打击你的积极性。

准则4:对好的代码要多看多想,甚至要有打印出来看的冲动。刚开始看代码时,可能看得不是很明白,对于一些陌生的类名、方法名或多或少有抵触感,可能看了半天你只是懂一点点,但只要你坚持看下去,很可能突然有一天睡觉醒来,就什么都懂了,你突然会发现原来自己那么伟大。

准则5:实践!实践!实践!我们看代码是为了更好的写程序,要敢于把学到的先进知识、先进技术进行实践应用,只有用得多了,才能彻底理解和掌握。

 

 

 

注释:该文章转载自 http://www.cnblogs.com/springcsc/archive/2009/01/20/1378663.html

掌握构建艺术:在Gradle中配置自定义的源代码管理(SCM) 在软件开发过程中,源代码管理(Source Code Management,简称SCM)是不可或缺的一部分。它帮助开发者管理代码的变更历史,支持团队协作和代码审查。Gradle,作为现代的构建工具,提供了灵活的配置选项来集成各种源代码管理系统。本文将详细解释如何在Gradle中配置自定义的源代码管理,并提供实际的代码示例,帮助您更好地理解和应用这一功能。源代码管理是一种软件工程实践,用于管理软件项目的源代码。它允许开发者跟踪代码的变更历史,回滚到旧版本,以及在团队中共享代码。 阅读详情

相关推荐

作为软件开发人员需要具备的技术技能

我是帮助软件开发人员开发除技术技能之外的“软技能”的坚定支持者。但是不可否认:技术技能很重要。 我的意思是,如果您实际上不能编写代码和开发软件,那么您学到的所有软技能都不会真正帮到您。也许您会成为一名优秀的项目经理,而不是一名优秀的软件开发人员。 但是,如果您正在阅读本书的这一部分,那么我假设您有兴趣成为一名软件开发人员,或者成为一名更好的软件开发人员,因此,让我们谈谈您需要了解的技术技能。 一种...

阿志同学 1577

转:程序员的成长----源代码的阅读(博客园文章)

读取源代码是每一个开发人员成长的必经之路,一份优秀的源代码,是作者多年开发技术的心血结晶,研究一份优秀的源代码,总是能够让你的技术得到一定程度的提升。然后,读别人的源代码并不是拿着代码在那里瞎看,而是要充分了解作者的编程思路,了解代码的优点和缺点,在了解作者思路的基础上,自己尝试写出比该代码更优秀的代码,才能达到“通透”的境界。如果在读取源代码时能够遵守以下准则,那么效果就会更好。 准则1:...

weixin_30399871的博客 145

掌握GNU Autotools与源代码控制的艺术

本文深入探讨了GNU Autotools的使用,包括autoconf、automake工具的配置和应用,以及源代码控制的基本概念和模型。通过理解这些工具和概念,开发者可以更加高效地管理软件项目和代码变更。

weixin_28487725的博客 441

[转载linuxaid文章]如何阅读源代码

http://www.linuxaid.com.cn/articles/8/6/861776524.shtml感谢linuxaid上这么精彩的文章!!!分析一个源代码,一个有效的方法是:1、阅读源代码的说明文档,比如本例中的README, 作者写的非常的详细,仔细读过之后,在阅读程序的时候往往能够从README文件中找到相应的说明,从而简化了源程序的阅读工作。2、如果源代码有文档目录,一般

胡搅蛮缠专栏 2485

软件开发项目

软件开发项目

SPD5 集线器协议内容解析

​ 若不同SPD5 Hub后面的本地侧设备同时发送请求,则是22和23、24的混合过程,先通过LID裁决,再通过HID裁决,这里的LID是本地设备的,若LID一致,则看HID,由于SPD5 Hub的本地侧设备HID均为111,因此实际上是比较SPD5 Hub的HID,这个过程在前文提到,SPD5 Hub会转换HID。​ 若MR27[4]=1且MR27[3:0]=1,如果MR51[3:0]=1时,发送IBI,并且MR48[7]置1,将GETSTATUS CCC的待处理中断位[3:0]更新为0001。

weixin_50591344的博客 3860

如何阅读他人的程序代码(上)——技巧学习篇

一、读懂程序代码,使心法皆为我所用  程序代码是别人写的,只有原作者才真的了解程序代码的用途及涵义。许多程序人心里都有一种不自觉的恐惧感,深怕被迫去碰触其他人所写的程序代码。但是,与其抗拒接收别人的程序代码,不如彻底了解相关的语言和惯例,当成是培养自我实力的基石。 对大多数的程序人来说,撰写程序代码或许是令人开心的一件事情,但我相信,有更多人视阅读他人所写成的程序代码为畏途。许多人宁可自己重新写过...

qq_41214527的博客 2万+

别再只跑memtester了!嵌入式Linux内存压力测试,这5个参数和场景你试过吗?

本文深入探讨了嵌入式Linux内存压力测试的高级技巧,重点解析了memtester工具的5个关键参数和实战场景。通过物理地址测试、迭代控制、内存分配策略等调优方法,帮助开发者有效检测内存稳定性问题,适用于长期运行设备、特定故障重现等复杂场景,提升嵌入式系统可靠性。

weixin_30838873的博客 425

Java源码阅读的真实体会

刚才在论坛不经意间,看到有关源码阅读的[url=http://www.iteye.com/topic/854647]帖子[/url]。回想自己前几年,阅读源码那种兴奋和成就感([url=http://www.iteye.com/topic/80532]1[/url]),不禁又有一种激动。 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。 说到技术基础,我打个比方吧,如果你从来没...

zwchen的专栏 3033

Cortex-M异常处理深度解析:从HardFault到调试实战

在嵌入式开发中,Cortex-M系列处理器的异常处理机制是保障系统可靠性的核心。然而,面对HardFault、MemManage、BusFault等异常时,开发者往往陷入迷茫。本文结合SEGGER AN00016和Keil AN209两篇权威文档,深入剖析异常根源、寄存器解析及调试技巧,并通过代码实例演示如何快速定位问题。

汽车电子软件领域知识分享 2533

保姆级教程:在Android车机上从零配置USB Gadget,搞定CarPlay有线连接

本文详细介绍了在Android车机上从零配置USB Gadget以实现CarPlay有线连接的完整实践指南。涵盖内核驱动开发、Android系统配置及用户空间通信架构,帮助开发者深入理解USB子系统和iAP2协议栈,实现稳定可靠的CarPlay有线连接功能。

weixin_30621711的博客 472

软件开发经验总结 读源代码的艺术

读取源代码是每一个开发人员成长的必经之路,一份优秀的源代码,是作者多年开发技术的心血结晶,研究一份优秀的源代码,总是能够让你的技术得到一定程度的提升。然后,读别人的源代码并不是拿着代码在那里瞎看,而是要充分了解作者的编程思路,了解代码的优点和缺点,在了解作者思路的基础上,自己尝试写出比该代码更优秀的代码,才能达到“通透”的境界。如果在读取源代码时能够遵守以下准则,那么效果就会更好。...

老罗传奇 148

MounRiver Studio(MRS)使用技巧:添加头文件目录;增加代码分组

MounRiver Studio(MRS)使用技巧:添加头文件目录

cheng___yi的博客 1810

软件开发经验总结(五)读源代码的艺术

读取源代码是每一个开发人员成长的必经之路,一份优秀的源代码,是作者多年开发技术的心血结晶,研究一份优秀的源代码,总是能够让你的技术得到一定程度的提升。然后,读别人的源代码并不是拿着代码在那里瞎看,而是要充分了解作者的编程思路,了解代码的优点和缺点,在了解作者思路的基础上,自己尝试写出比该代码更优秀的代码,才能达到“通透”的境界。如果在读取源代码时能够遵守以下准则,那么效果就会更好。准则1:必...

u014712365的博客 87

uniapp - 最新微信小程序手机号一键登录功能效果,uniapp小程序实现手机号码一键登录,uniapp微信小程序端通过手机号授权完成立即登录操作(详细示例源码,新手小白一键复制开箱即用)

uniapp,微信小程序,uniapp小程序平台,uniApp手机号一键登录,uniapp小程序端手机号一键登录功能,实现微信小程序手机号一键登录,在uniapp中实现获取手机一键登录功能,uniapp手机号快捷登录,uniapp微信小程序授权登录并获取手机号,微信小程序手机号快速验证组件调用方式,uniapp小程序怎么用手机号一键登录,uniapp一键登录流程及代码,如何获取手机号一键登录到小程序,微信小程序获取本机手机号一键登录功能,新手详细教程,详细手机一键登录完整示例代码,uni-app微信unia

✅ 精选推荐文章 1万+

EDEM-fluent耦合时出现的问题及摸索出的解决办法及DPM颗粒信息导出

EDEM-fluent耦合时出现的问题及摸索出的解决办法及DPM颗粒信息导出

zheaa的博客 5750

设计模式的艺术——软件开发人员内功修炼之道 重磅来袭

设计模式的艺术——软件开发人员内功修炼之道 重磅来袭

ggjrtg的博客 723

借助Gemini 3 Pro高效解决课题申报中的五大核心痛点,亲测有效经验分享

之前给大家分享过关于AI辅助课题申报的相关的内容,涵盖了申报书部分撰写技巧,但没针对性拆解各位同仁在实际申报时遇到的卡壳的地方。比如选题范围拿捏不准,定的太大,根本没法落地完成;定的太小,研究价值则体现不了;写综述时,容易单纯罗列文献,缺乏批判性视角,没办法自然融入自己的判断,找不到研究缺口;研究方法部分,可能担心方法设计不够严谨,别人难以复现.....针对这些申报中的高频痛点,接下来七哥会从五个核心要点出发,借助Gemini 3 Pro高效解决这些痛点。

智能AI让学术科研更容易 701

设计模式的艺术——软件开发人员内功修炼之道 交流贴

设计模式的艺术——软件开发人员内功修炼之道 交流贴

ggjrtg的博客 221

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

软件开发的本质

多年来,我一直在思考一个问题:软件是科学还是艺术?直到有一天,一个新鲜的词汇进入了我的视野,它就是软件工艺。那一刻,我才意识到,其实我一直思索的问题应该是软件是工程还是艺术,而软件工艺给了我答案:软件是工艺,是工程和艺术的结合。我知道我将工艺解释为工程和艺术有所牵强,且容我暂时这么称呼它。这是我第一次看到这种提法时的第一感受。 多年来,我一直困惑于一个问题:如果工程化的方法能够生产出标准化的...

山居匠人 431

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

编程是一门艺术

编程是一门艺术吗?Stanley B. Lippman仅仅使用软件的人们 通常意识不到编写软件有多么困难。噢,设计部分和最初开发部分都很有趣。最困难的部分是使其正确运行(且运行速度足够快)。对于程序员而言,这就好比一餐开始时是美味的双层牛奶巧克力咖啡干酪饼,而结束时却是菠菜奶油沙司。之所以说编程仍是一门艺术而不是一门科学或工程学科,是因为我们还不能将其分解成多个组成步骤,而后机械地

~缘份天空~ 693

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: 软件开发经验总结——解读高速读书之秘
下一篇: 65个源代码网站
ljfth
博客等级 码龄19年 17粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值