阅读他人的源程序
2011年03月01日
阅读他人的程式码(1)─读懂程式码,使心法皆为我所用 程式码是别人写的,只有原作者才真的了解程式码的用途及涵义。许多程式人心里都有一种不自觉的恐惧感,深怕被迫去碰触其他人所写的程式码。但是,与其抗拒接收别人的程式码,不如彻底了解相关的语言和惯例,当成是培养自我实力的基石。
对大多数的程式人来说,撰写程式码或许是令人开心的一件事情,但我相信,有更多人视阅读他人所写成的程式码为畏途。许多人宁可自己重新写过一遍程式码,也不愿意接收别人的程式码,进而修正错误、维护它们、甚至加强功能。
这其中的关键究竟在何处呢?若是一语道破,其实也很简单,程式码是别人写的,只有原作者才真的了解程式码的用途及涵义。许多程式人心里都有一种不自觉的恐惧感,深怕被迫去碰触其他人所写的程式码。这是来自於人类内心深处对於陌生事物的原始恐惧。
读懂别人写的程式码,让你收获满满
不过,基於许多现实的原因,程式人时常受迫要去接收别人的程式码。例如,同事离职了,必须接手他遗留下来的工作;也有可能你是刚进部门的菜鸟,而同事经验值够了、升级了,风水轮流转,一代菜鸟换菜鸟。甚至,你的公司所承接的专案,必须接手或是整合客户前一个厂商所遗留下来的系统,你们手上只有那套系统的原始码(运气好时,还有数量不等的文件)。
诸如此类的故事,其实时常在程式人身边或身上持续上演著。许多程式人都将接手他人的程式码,当做一件悲惨的事情。每个人都不想接手别人所撰写的程式码,因为不想花时间去探索,宁可将生产力花在产生新的程式码,而不是耗费在了解这些程式码上。
很遗憾的是,上述的情况对程式人来说很难避免。我们总是必须碰触到其他人所写成的程式码,甚至必须了解它、加以修改。对於这项需求,在现今开放原始码的风气如此盛行的今日,正如之前的「程式设计2.0」文中所提到的,你可以透过开放原始码学习到新的技术、学习到高手的架构设计,大幅提高学习的效率及效果。你甚至可以直接自开放原始码专案中抽取、提炼出自己所需的程式码,站在巨人的肩膀上,直接由彼端获得所需的生产力。从这个观点来看,读懂别人所写的程式码,就不再只是从负面观点的「被迫接收」,而是极具正面价值的「汲取养份」。
先了解系统架构与行为模式,再细读
倘若撰写程式码是程式人的重要技艺之一,那
发表评论
-
Flex Ant编译模板
2012-01-20 01:16 781Flex Ant编译模板 2010年07月16日 Fl ... -
Flex mobile入门
2012-01-20 01:16 640Flex mobile入门 2010年12月 ... -
Flex编程学习基础
2012-01-20 01:16 646Flex编程学习基础 2010年11月08日 Flex是 ... -
flex RSL模式
2012-01-20 01:16 646flex RSL模式 2010年09月13 ... -
带一张阿拉旅游卡,随时出发
2012-01-19 09:05 1102带一张阿拉旅游卡,随时出发 2011年12月25日 旅游 ... -
内存绘图
2012-01-17 01:35 815内存绘图 2010年10月07日 经常出现图形闪烁的 ... -
使用Win32API实现Windows下异步串口通讯
2012-01-17 01:35 1048使用Win32API实现Windows下异步串口通讯 201 ... -
了解进程中的内存结构
2012-01-17 01:35 639了解进程中的内存结构 ... -
导入/导出 Excel 的基本方法 JAVA EXCEL API简介
2012-01-17 01:35 1112导入/导出 Excel 的基本 ... -
Crypto API 学习笔记
2012-01-17 01:35 854Crypto API 学习笔记 2011 ... -
识别ASP.NET配置文件Web.config
2012-01-15 20:21 515识别ASP.NET配置文件Web.config 2009年1 ... -
webconfig的配置方法
2012-01-15 20:21 809webconfig的配置方法 2010年03月13日 w ... -
用ASP连接各种数据库的方法
2012-01-15 20:21 1230用ASP连接各种数据库的方法 2011年04月22日 一 ... -
Servlet
2012-01-15 20:21 611Servlet 2010年02月21日 第五章 Ser ... -
edtftpj 2.0.1开源包扩展
2012-01-15 20:21 679edtftpj 2.0.1开源包扩展 2010年01月07日 ... -
sqlserver 批量添加和修改语句用select
2012-01-11 12:23 730sqlserver 批量添加和修改语句用select 201 ... -
swfupload #2049 鬼一样的问题终于解决了
2012-01-11 12:23 948swfupload #2049 鬼一样的问题终于解决了 20 ... -
面向对象方法中的数据库设计
2012-01-11 12:23 692面向对象方法中的数据 ... -
相关推荐
2012-01-11 12:23 725相关推荐 2011年03月01日 经常在csdn上看到许 ...
相关推荐
C语言源程序举例。有代码的噢,初学者可以看看别人的代码,对自己帮助很有效噢!!
如果您喜欢 WordPress,请将它介绍给自己的朋友,或者帮助他人安装一个 WordPress,又或者写一篇赞扬我们的文章。 WordPress 是 Michel V. 创建的 b2/cafelog 官方后续版本,WordPress 开发团队将其发展为如今的 ...
分享别人高价买来的STC51系列单片机做的全功能无刷电机控制源程序方案 包括PCB设计原图及清单等。
VC6编写的单文档SDI界面程序,实现界面分割成3块 我也是在别人例程上加以改进的,对想实现界面分割 程序的可以直接拿来修改用!
高级语言源程序经过 编译 变成可执行文件,反编译就是逆过程。 但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。 计算机软件反向工程(Reversepengineering)也称为计算机软件还原工程,是指通过对...
matlab遗传算法源程序 从别人那里拿来的
数控电源 pcb 功率板 程序都有 直接打板就能用作品是别人的 我在某论坛上看到的 ,现在分享给大家玩
整人专家之精灵卫士,既可当作电脑安全卫士(防止他人乱动您的电脑),也可当作一恶作剧程序(用它来整人。当然,前提是对方不知道关闭它的方法)。软件关闭有两种方法:第一种是按下Ctrl键,同时点鼠标右键(Ctrl+鼠标...
都是平时自己在QQ上和人闲聊时给别人做的,有些好的我就记了下来,现在拿出来分享,都是些挺简单但比较经典的。以后有好的会再拿出来的,有问题者可与本人联系liujq007@126.com 程序包括: 万年历打印、阶乘位数、...
开心农场源程序 别人给的 大家都研究研究
这是有关车型识别的matlab程序,完全可以运行~
文件中详细编写了模拟退火算法源程序,并以具体例子加以说明。很有用的代码,个人用着觉得很赞
以前也在CSDN上看到过这样的设计报告,但总是没有源程序,今天找到一个,就传上来,大家也方便下载。当然,所有的东西都是别人的。我没改目录的页码,如果要下的话,自己改下。
禁止进程被windows任务管理器关闭的源程序,下载别人的比较有效,也忘了是谁,暂时放在这里
窗口停靠 VS2003开发的,停靠类CoolDialogBar是别人写好的直接拿来用的
中国移动、联通、电信计费程序源代码 billing 2009 UNIX环境下使用的,是C代码,不一定是现在最新的,但是真实可靠,我试过的,...计费分采集,预处理,剔重,批价这几个重要过程,这是剔重源程序代码!其它的也有!
编写的第一个hibernate源程序,也是在网上学的,希望对别人有所帮助。完全完整。
此为基于贝叶斯滤波框架下的采用卡尔曼滤波的人体跟踪程序,其适合用于运动目标为线性运动且过程和观测噪声为高斯分布的情况。(注:本程序为本人在借鉴他人框架的基础上完成,因要下载新的东东而没积分所为,哈哈)
学习JAVA。用JAVA写的模仿神奇小妖怪游戏。本程序用于学习交流目的。请勿用于商业用途。以免侵犯他人利益。关卡是可以在程序中自己设置的。
由于工作的关系,我常常需要读一些源代码,并在上面做一些... 在阅读大量源代码的时候,能够提高自己对大的软件的把握能力,快速了解脉络,熟悉细节,不仅仅是编程技巧,还能在程序的架构,设计方面提高自己的能力。