怎样去阅读一份php源代码

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

(0)

相关推荐

  • 怎样去阅读一份php源代码

    一份好的源代码例如 dz的论坛,wind论坛,帝国cms,dedecms等,都具有自己的一套设计思路和设计模式,所以在看某个产品之前就要做好心理准备,可以把自己的经验和这些产品做对比,但千万别一直用自己的思维去评判.一句话就是"以学习和批评的辩证思想去看待". 好吧!我们就开始吧! 那具体的我们怎样去阅读一份php的源代码呢? 一.先把源代码安装起来,结合它的文档和手册,熟悉其功能和它的应用方式. 二.浏览源代码的目录结构,了解各个目录的功能. 三.经过以上两步后相信你对这个开源的产品

  • Material Design系列之Behavior实现支付密码弹窗和商品属性选择效果

    今天的效果在支付宝.淘宝.京东等电商App中很常见.比如支付宝输入密码弹窗.商城下单时选择商品属性时,从下面浮动上来一个PopupWindow,那么今天就带大家用Behavior来实现这两个效果,结果你会发现简直只需要一行代码. 总结下现在用的APP: 1. 仿支付宝弹出的输入支付密码窗口. 2. 仿淘宝/天猫弹出商品属性选择框. 3. 知乎首页上下滑动隐藏ToolBar和NavigationBar. 4. - 系列博客: 1. Material Design系列,Behavior之Bottom

  • 编程人员阅读代码的一些小技巧分享

    代码阅读的必要性 阅读别人的代码作为研发人员是一件经常要做的事情.一个是学习新的编程语言的时候通过阅读别人的代码是个最佳的学习方法,另外是积累编程经验.如果你有机 会阅读一些操作系统的代码会帮助你理解一些基本的原理.更有就是在你作为一个质量确保人员或一个小领导的时候如果你要做白盒测试的时候没有阅读代码的能力 是不能完成相应的任务.最后一个就是如果你中途接手一个项目的时候或给一个项目做售后服务的时候是要有阅读代码的能力的. 收集所有可能收集的材料 阅读代码要做的第一件事情是收集所有和项目相关的资料

  • zip 的压缩原理与实现

    无损数据压缩是一件奇妙的事情,想一想,一串任意的数据能够根据一定的规则转换成只有原来 1/2 - 1/5 长度的数据,并且能够按照相应的规则还原到原来的样子,听起来真是很酷. 半年前,苦熬过初学 vc 时那段艰难的学习曲线的我,对 MFC.SDK 开始失望和不满,这些虽然不算易学,但和 DHTML 没有实质上的区别,都是调用微软提供的各种各样的函数,不需要你自己去创建一个窗口,多线程编程时,也不需要你自己去分配 CPU 时间.我也做过驱动,同样,有DDK(微软驱动开发包),当然,也有 DDK 的

  • PHP大神的十大优良习惯

    php大神养成记,具体内容如下 1.多阅读手册和源代码 没什么比阅读手册更值得强调的事了–仅仅通过阅读手册你就可以学习到很多东西,特别是很多有关于字符串和数组的函数.就在这些函数里面包括许多有用的功能,如果你仔细阅读手册,你会经常发现在以往的项目开发过程中,很多时候你在"重复发明轮子",而实际上你只需要一个核心函数就可以完成相应的功能.手册是你的朋友.另外,现在有很多使用PHP开发的开源程序.为什么不去学习和借鉴呢?下载一份开源的PHP应用程序的源代码,仔细阅读它吧.也许越大的项目越值

  • Linux 适合你吗?(一)

    第一部分:Linux 之你问我答     我能在我的电脑上安装 Linux 吗?    当然!但是要使它工作正常你需要做一些准备--甚至于替换掉某些硬件.围绕着 Linux 的一个为时已久的问题就是硬件支持问题.你可能无法在每一台电脑上都安装 Linux 并期望它工作正常.例如,你可能会遇到图形显示卡在 Linux 下无法正常工作的问题,因为一些厂商并不提供为 Linux 图形界面(XFree86)设计的驱动程序,而这种情况在目前得到了很大的改观:最新发布的XFree86提供了对 NVida 整

  • 微信公众平台开发教程②微信端分享功能图文详解

    本文实例讲述了微信公众平台微信端分享功能.分享给大家供大家参考,具体如下: 背景 初次尝试微信公众号的开发,对于学习方法的探索都是来源于网上的博客.问答,对于参差不齐的信息,自己也是有苦说不出,抽出一点时间写点文章,既是对自己的学习总结,也希望给予同是菜鸟的小白一点帮助. 今天想添加微信分享的功能,如果不进行自定义设计,那么当我们点击分享朋友圈.好友或者QQ好友.空间时,默认的标题就是<title>标签中的信息,而显示的描述信息就是链接,图片多是默认为页面中显示的第一张图片,显然这样的处理是不

  • AngularJS入门教程之数据绑定原理详解

    本文实例讲述了AngularJS数据绑定原理.分享给大家供大家参考,具体如下: 注 这篇文章主要是写给新手的,是给那些刚刚开始接触Angular,并且想了解数据帮定是如何工作的人.如果你已经对Angular比较了解了,那强烈建议你直接去阅读源代码. Angular用户都想知道数据绑定是怎么实现的.你可能会看到各种各样的词汇:$watch,$apply,$digest,dirty-checking...它们是什么?它们是如何工作的呢?这里我想回答这些问题,其实它们在官方的文档里都已经回答了,但是我

  • Hibernate 的原理与配置

    也许你听说过Hibernate的大名,但可能一直不了解它,也许你一直渴望使用它进行开发,那么本文正是你所需要的!在本文中,我向大家重点介绍Hibernate的核心API调用库,并讲解一下它的基本配置. 看完本文后,我相信你对什么是ORM(对像/关系映射)以及它的优点会有一个深刻的认识,我们先通过一个简单的例子开始来展现它的威力. 正如一些传统的经典计算机文章大都会通过一个"hello,world"的例子开始讲解一样,我们也不例外,我们也将从一个相对简单的例子来阐述Hibernate的开

  • CPQuery 解决拼接SQL的新方法

    我一直都不喜欢在访问数据库时采用拼接SQL的方法,原因有以下几点: 1. 不安全:有被SQL注入的风险. 2. 可能会影响性能:每条SQL语句都需要数据库引擎执行[语句分析]之类的开销. 3. 影响代码的可维护性:SQL语句与C#混在一起,想修改SQL就得重新编译程序,而且二种代码混在一起,可读性也不好. 所以我通常会选择[参数化SQL]的方法去实现数据库的访问过程,而且会将SQL语句与项目代码(C#)分离开. 不过,有些人可能会说:我的业务逻辑很复杂,Where中的过虑条件不可能事先确定,因此

随机推荐