怎样去阅读一份php源代码


Posted in PHP onAugust 21, 2009

一份好的源代码例如 dz的论坛,wind论坛,帝国cms,dedecms等,都具有自己的一套设计思路和设计模式,所以在看某个产品之前就要做好心理准备,可以把自己的经验和这些产品做对比,但千万别一直用自己的思维去评判。一句话就是“以学习和批评的辩证思想去看待”。
好吧!我们就开始吧!
那具体的我们怎样去阅读一份php的源代码呢?
一。先把源代码安装起来,结合它的文档和手册,熟悉其功能和它的应用方式。
二。浏览源代码的目录结构,了解各个目录的功能。
三。经过以上两步后相信你对这个开源的产品有了一个初步的了解了,那现在就开始分析它的源码吧。这一步我们开始分析源代码框架。例如入口方式是单入口还是多入口,页面之间的调用规则,能根据规则找出某个功能用到的页面。
四。熟悉源代码的代码写作风格,例如缩进方式,排版格式等。
五。熟悉一下源代码用到的数据库和表,可以参考它的技术支持文档。
六。经过以上几步相信大家已经对这份源代码有了更深刻的了解,不过这种了解还只是表面的,下来我们从6个方面具体的去分析它吧:
1.入口构造以及页面调用方式的具体实现,如果阅读时看到工具类和工具函数,尽量去熟悉一下。这一步的分析可以学习到源代码的系统架构方式。
2.分析源代码用到的工具类和工具函数,这样可以学到很多程序编写技巧。可以提升自己编程功力。
3.结合一些安全规则,研究这个源代码是怎样实现安全方面的设计的。这样可以提高自己在安全方面的意识和功力。
4.如果有模板引擎的话,研究一下源代码的模板引擎。大致从实现方式,效率,易用性等几个方面去考虑。
5.研究系统的各个功能模块,这样既能学习编程技巧还能打开自己的编程思路,下次遇到类似的东东就心里有谱了。
6.研究系统所用到设计模式,一样的功能实现,用到的设计模式可能相差很多,对比我们之前所作的东东分析设计模式,是提升我们驾驭代码的不二法门。
7.研究源代码对访问压力,执行效率,系统效率,数据库查询的优化。
方法只是途径和工具,具体实践还需要大家的努力。自己的感想是不要着急,认真分析,把分析心得用到自己的具体项目上,呵呵!

PHP 相关文章推荐
如何使用脚本模仿登陆过程
Nov 22 PHP
PHP的中问验证码
Nov 25 PHP
Dedecms V3.1 生成HTML速度的优化办法
Mar 18 PHP
php 5.3.5安装memcache注意事项小结
Apr 12 PHP
PHP判断图片格式的七种方法小结
Jun 03 PHP
php中\r \r\n \t的区别示例介绍
Feb 08 PHP
php给图片添加文字水印方法汇总
Aug 27 PHP
Json_encode防止汉字转义成unicode的方法
Feb 25 PHP
php 修改上传文件大小限制实例详解
Oct 23 PHP
php封装一个异常的处理类
Jun 08 PHP
PHP获取MySQL执行sql语句的查询时间方法
Aug 21 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
Jun 05 PHP
php win下Socket方式发邮件类
Aug 21 #PHP
Discuz 模板语句分析及知识技巧
Aug 21 #PHP
php 分页原理详解
Aug 21 #PHP
PHP nl2br函数 将换行字符转成 <br>
Aug 21 #PHP
PHP 各种排序算法实现代码
Aug 20 #PHP
谈PHP生成静态页面分析 模板+缓存+写文件
Aug 17 #PHP
数据库查询记录php 多行多列显示
Aug 15 #PHP
You might like
在线竞拍系统的PHP实现框架(二)
2006/10/09 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
深入讲解AngularJS中的自定义指令的使用
2015/06/18 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
2016/10/04 Javascript
JavaScript实现Java中Map容器的方法
2016/10/09 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
2017/01/10 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
详解从react转职到vue开发的项目准备
2019/01/14 Javascript
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
微信小程序时间戳转日期的详解
2019/04/30 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
Python中的并发编程实例
2014/07/07 Python
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
python对DICOM图像的读取方法详解
2017/07/17 Python
python生成圆形图片的方法
2020/03/25 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
python支付宝支付示例详解
2019/08/22 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
澳大利亚领先的在线礼品网站:Gifts Australia
2020/08/15 全球购物
工程项目经理岗位职责
2013/12/15 职场文书
购房委托书范本
2014/09/18 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
2014年财务个人工作总结
2014/12/08 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
校本研修个人总结
2015/02/28 职场文书
走进科学观后感
2015/06/18 职场文书