怎样去阅读一份php源代码


Posted in PHP onAugust 21, 2009

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

PHP 相关文章推荐
PHP+DBM的同学录程序(4)
Oct 09 PHP
php4与php5的区别小结(配置异同)
Dec 20 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
Dec 16 PHP
基于php验证码函数的使用示例
May 03 PHP
php三维数组去重(示例代码)
Nov 26 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
Aug 15 PHP
PHP编译安装中遇到的两个错误和解决方法
Aug 20 PHP
php不使用copy()函数复制文件的方法
Mar 13 PHP
php简单socket服务器客户端代码实例
May 18 PHP
基于CakePHP实现的简单博客系统实例
Jun 28 PHP
值得分享的php+ajax实时聊天室
Jul 20 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
linux下为php添加iconv模块的方法
2016/02/28 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
Windows系统下Node.js的简单入门教程
2015/06/23 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
2018/02/06 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
Vue项目总结之webpack常规打包优化方案
2019/06/06 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
2020/12/30 Vue.js
[00:35]TI7不朽珍藏III——寒冰飞龙不朽展示
2017/07/15 DOTA
Python写的英文字符大小写转换代码示例
2015/03/06 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
Python实现AI换脸功能
2020/04/10 Python
QML实现钟表效果
2020/06/02 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
迷你唐卡软皮鞋:Minnetonka Moccasin
2018/05/01 全球购物
Otticanet意大利:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
优秀实习生感言
2014/03/01 职场文书
初三新学期计划书
2014/05/03 职场文书
担保贷款承诺书
2015/04/30 职场文书
离婚起诉书范本
2015/05/18 职场文书
政工师工作总结2015
2015/05/26 职场文书
幽默导游词开场白
2015/05/29 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
大学生,三分钟即兴演讲稿
2019/07/22 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang