- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
修改别人程序的技巧.
谈程序的修改技巧 郑海山 收集整理 修改代码原则 寻找合适的代码 记录每个修改 通读源代码 修改最少 耦合度最低 寻找合适的代码 修改代码不如自己重写代码,除非时间、人力方面不允许。 修改代码之前必须先读懂对方的源代码,这花的时间可能会比自己写花的时间更多。必须在这两者之间取得平衡。 改变自身需求,使需求适应下载的代码,达到直接使用,无需修改。 比如你打算找一个实现某些功能的代码,可是找了很多代码,要不只能实现其中的某些功能,要不就是某些功能不完全符合你的要求,这时就必须改变自己最原始的想法,找一个最接近的代码。因为有时候你原先的需求就是错误的。 寻找合适的代码 代码必须架构合理,编码规范,这样的代码安全系数才比较高。 源代码作者经常更新。 源代码公布后,如果有什么安全漏洞,整个系统就暴露在cracker面前。只有源代码作者根据用户的建议不断修复Bug和增加功能,才是可信赖的系统。 寻找合适的代码 推荐网站 和 。 是网上最大的开放源代码聚合地。有大量的源代码,分类组织,便于查找。 最好的搜索引擎,基本上你可以找到任何东西,如果你使用了正确的关键字。通过搜索技巧,变换关键字。 记录每个修改 使用文本文件记录下修改,以便快速恢复 因为开始我们只是试用一个系统,或者只是试着加入一些功能,如果加入功能失败,你又不知道加入了那些东西,这时你可以全部删除你刚才的修改,把原始文件重新解压,根据文本文件的记录恢复到某个版本。或者使用cvs系统自动控制。 记录下打算增加或者修改的事情,记为todo,完成后放入done区。可以使用文本文件手动维护todolist。 记录每个修改 有了这个记录,就可以在下次推出新版本后继续修改。 每件事都有记录是一个好的习惯。 在源代码里也可加上记录,比如//2003.12.25 modify by Haishion,禁止在下班时间发表,Begin something…………//2003.12.25 modify by Haishion,禁止在下班时间发表,End 通读源代码 通读代码包括通读目录下的所有文件,特别是Readme,Manual,help,guide,doc,faq这种开头的文档。很多简单的安装出错其实在手册里面都已经告诉你了。 修改别人的程序时一定要通读代码,这样才可以保证修改了不加入新的Bug,并且可以充分利用原先的代码。 有时为了增加一个新功能,你可以写了一个下午的代码,过几天后发现源代码里面其实有这个功能函数,只需调用某个函数即可。这就是没有通读源代码的结果。 通读源代码 用文本文件记录下代码的函数功能,一些值得注意的地方。 一定必须确保你知道这个软件在干什么,管理员有几个入口,有几个内置帐号需要关闭等等。 修改最少 定位修改位置,可以使用Editplus的目录全文检索功能。根据用户界面的文字做关键字。Web的用户界面文字可能不准确,可以查看web源代码或者缩小文字单位。 如果一个功能有多个修改方法,使用修改最少的那种。虽然这种可能破坏了代码的架构。 耦合度最低 增加进去的代码应该尽量跟原程序比较分离。总的原则是:源代码就像刺猬,能不碰就不碰。 把增加的代码包装成一个过程或者函数,在正确的地方调用一下即可。这样是为了代码的美观。 耦合度最低 给函数增加功能的方法: 比如一个函数void foo(int i, string s);在多处有调用,你要给foo加入一个新的功能在你自己的代码内调用,你可以。 写一个void foo_new(int i, string s, boolean b);把foo这个函数体拷贝到foo_new。在foo_new里添加代码,这样的坏处是你如果更新foo,你必须同时更新foo_new。有相同的代码散布在系统各处是编程大忌。 写一个void foo_new(int i, string s, boolean b);把foo改为调用foo_new(i, s, DEFAULT VALUE)。 不写foo_new函数,使用全程变量,blnHackIt,初始值为DEFAULT VALUE,在新调用的地方把blnHackIt设置定某个值,在foo里面加入 if blnHackIt = SOME VALUE then do something… end if 选择后面2种之一。 针对下载的Asp代码的修改 修改数据库文件名 例如改为dsfs354sfubzdpIUHndsgs.mdb,使用拷贝粘贴放入数据库连接字符串。 根据zhiwei的建议,在IIS里给*.mdb影射一个字节
您可能关注的文档
- 最新工程热力学(经典优秀课件双语)第11章..ppt
- 罪犯心理咨询矫治方案个案范本..ppt
- 高一英语Unit1 安妮日记-reading..ppt
- 如何制定创业计划X..ppt
- 增值税防伪税控远程抄报税..ppt
- 机 械 小 常 识..ppt
- 用户体验度量读后感..ppt
- 对有效提问的几点思考..ppt
- 《彼得潘》读后感..ppt
- 高三复习的几点建议..ppt
- 第十一章 电流和电路专题特训二 实物图与电路图的互画 教学设计 2024-2025学年鲁科版物理九年级上册.docx
- 人教版七年级上册信息技术6.3加工音频素材 教学设计.docx
- 5.1自然地理环境的整体性 说课教案 (1).docx
- 4.1 夯实法治基础 教学设计-2023-2024学年统编版九年级道德与法治上册.docx
- 3.1 光的色彩 颜色 电子教案 2023-2024学年苏科版为了八年级上学期.docx
- 小学体育与健康 四年级下册健康教育 教案.docx
- 2024-2025学年初中数学九年级下册北京课改版(2024)教学设计合集.docx
- 2024-2025学年初中科学七年级下册浙教版(2024)教学设计合集.docx
- 2024-2025学年小学信息技术(信息科技)六年级下册浙摄影版(2013)教学设计合集.docx
- 2024-2025学年小学美术二年级下册人美版(常锐伦、欧京海)教学设计合集.docx
文档评论(0)