php和js的代码组织_第1页
php和js的代码组织_第2页
php和js的代码组织_第3页
php和js的代码组织_第4页
php和js的代码组织_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 PHP和和JS的代码组织的代码组织2015-11-06目录PHP和JS在公司已有项目中的作用面向过程和面向对象PHP面向对象PHP良好的代码组织实践JS函数式编程,闭包和面向对象总结PHP和JS在公司已有项目中的作用官网AOAB易宝C易火D?对象狂热过程狂热面向过程和面向对象面向对象与面向过程在许多编程语言中只能使用二者之一来进行编程,但是PHP语言与其他编程语言有不同之处,那就是我们可以自由的选择或者将PHP面向对象和PHP面向过程二者混用。 PHP的一些基础开发,PECLPECL和PEARPEAR都收到了很多赞扬和批评。这两个项目为阐明PHP面向过程和面向对象编程的区别提供了很好的例子。

2、The PHP Extension Community LibraryPHP 扩展模块过程狂热,最喜爱的编程语言是C和汇编,写驱动程序,文件系统或其它的偏向底层的编程,他们的注意力集中于速度和代码的精炼。PECl提供了PHP的扩展库,用C和面向过程的方式开发,注重速度和简洁精炼。通常,这些都是从已经存在的LGPL软件中移植而来,其中许多有趣的特性已经加入PHP。毕竟,PHP是用C写的。(PhpMyAdmin)面向过程The PHP Extension and Application RepositoryPHP扩展与应用库对象狂热,在任何时候使用PHP面向对象的风格来书写代码。他们没有真正考虑过

3、用这种方式是否会影响程序的执行效率。PEAR则贡献了很多有趣的类如建立Excel表或改变DNS记录等。使用PEAR类库可以为你节约大量时间。 (Smarty,ThinkPHP)面向对象PHP面向对象三大特征1231.封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部 分只有通过被授权的操作(成员方法),才能对数据进行操作.2.继承可以解决代码复用,让我们的 编 程 更 加 靠 近 人 类 思 维 .3.重载”是类的多态的一种实现。覆写,子类可以把父类中继承过来的方法进行重写,便于扩展。, ,当系统各部分代码紧密绑在一起时,就会产生密耦合,这时在一个组件中的变化会迫使

4、其他部分随之改变。低耦合03内聚是一个模块内部各成分之间相关联程度的度量。低内聚的代码间关联范围广,维护很困难。高内聚02过程式代码忙于处理细节,而面向对象代码只需一个接口即可工作,并且不用考虑实现的细节。职责分明01正交指将职责相关的组件紧紧组合在一起,而与外部系统环境隔开保持独立。正交04面向对象设计 MVC 企业模式数据映射.数据库模式单例模式工厂方法模式抽象工厂模式生成对象的模式组合模式装饰模式外观模式组织对象和类的模式解释器模式策略模式观察者模式访问者模式命令模式面向任务的模式设计模式 一、Duplicate Code(重复代码)1、同一个类,两个方法含有相同表达式。解决方法:你可以

5、Extract Method提炼重复代码,然后让这两个方法都调用这个Extract Method。2、两个类,有相似的方法。 解决方法:(1)把两个类的方法提出来,共同构造一个父类。 (2)把其中一个类的方法删除,调用另一个类的方法。”“PHP良好的代码组织实践 二、Long Method(过长的函数方法)1、短函数:代码阅读费点力气,因为我们必须经常转换上下文去看看子程序做了什么。但是让small method容易理解的真正关键在于一个好的名字。读者可以通过名字了解函数的作用,根本不必去看其中写了些什么。早期的编程语言中,调用方法需要额外开销,这使得coder不愿意使用small metho

6、d。但是现代的OO语言几乎已经完全免除了process内的额外开销(函数调用)。 2、注释地方提炼信号:每当感觉需要以注释来说明点什么的时候,我们就把需要说明的东西写进一个独立函数中,并以其用途命名。可以对一组或甚至短短一行代码做这件事。只要函数名称能够解释其用户,我们也该毫不犹豫地那么做。”“PHP良好的代码组织实践 动机 三、Large Class(万能的类)1、Class内数个属性变量有相同前缀或者字尾,可使用Extract Class。 2、Class内并非大多数变量使用属性变量,可使用Extract Class。3、有太多代码,可Extract Class。”“PHP良好的代码组织实

7、践四、Replace Temp with Query(查询替换临时变量)如果一个Temp变量,保存一个表达式,将这个表达式Extract Method。这就是所谓的查询式,query”“PHP良好的代码组织实践 动机函数式编程让JS更优美 函数式编程只描述在程序输入上执行的操作,不必使用临时变量保存中间结果。重点是捕捉 “是什么以及为什么”,而不是 “如何做”。与将重点放在执行连续命令上的过程性编程相比,函数式编程的重点是函数的定义而不是状态机(state machine)的实现。 函数式编程概念,包括匿名函数、调用函数的不同方法,以及将函数作为参数传递给其他函数的方式。在许多情况下,Java

8、Script 的重复代码导致了一些拙劣的编码。如果使用函数式编程,就可以避免这些问题。此外,可以利用函数式编程风格编写更加优美的回调。下一代编程闭包就是能够读取其他函数内部变量的函数闭包是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。另一方面,在函数外部自然无法读取函数内的局部变量。理解并用好闭包(closure)1 12 2闭包的用途使用闭包的注意点1)由于闭包会使得函数中的变量都

9、被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。2)闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便改变父函数内部变量的值。“”JS的面向对象面向对象的语言有一个标志,即拥有类的概念,抽象实例对象的公共属性与方法,基于类可以创建任意多个实例对象,一般具有封装、继承、多态的特性!但JS中对象与纯面向对象语言中的对象是不同的,ECMA标准定义JS中对象:无序属性的集合,其属性可以包含基本值、对象或者函数。可以简单理解为JS的对象是一组无序的值,其中的属性或方法都有一个名字,根据这个名字可以访问相映射的值(值可以是基本值/对象/方法)。Lorem ipsum dolor consectetur adipisicing do eiusmod tempor incididunt labore olore magna aliqua dolor adipisicing dodo eiusmod tempor incicic didunt labore ipsum dolor .创建对象对象继

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论