php和js的代码组织.ppt

上传人:牧羊曲112 文档编号:5443654 上传时间:2023-07-07 格式:PPT 页数:27 大小:968.50KB
返回 下载 相关 举报
php和js的代码组织.ppt_第1页
第1页 / 共27页
php和js的代码组织.ppt_第2页
第2页 / 共27页
php和js的代码组织.ppt_第3页
第3页 / 共27页
php和js的代码组织.ppt_第4页
第4页 / 共27页
php和js的代码组织.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《php和js的代码组织.ppt》由会员分享,可在线阅读,更多相关《php和js的代码组织.ppt(27页珍藏版)》请在三一办公上搜索。

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

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

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

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

5、任务的模式,设计模式,一、Duplicate Code(重复代码),1、同一个类,两个方法含有相同表达式。解决方法:你可以Extract Method提炼重复代码,然后让这两个方法都调用这个Extract Method。2、两个类,有相似的方法。解决方法:(1)把两个类的方法提出来,共同构造一个父类。(2)把其中一个类的方法删除,调用另一个类的方法。,”,“,PHP良好的代码组织实践,二、Long Method(过长的函数方法),1、短函数:代码阅读费点力气,因为我们必须经常转换上下文去看看子程序做了什么。但是让small method容易理解的真正关键在于一个好的名字。读者可以通过名字了解函

6、数的作用,根本不必去看其中写了些什么。早期的编程语言中,调用方法需要额外开销,这使得coder不愿意使用small method。但是现代的OO语言几乎已经完全免除了process内的额外开销(函数调用)。2、注释地方提炼信号:每当感觉需要以注释来说明点什么的时候,我们就把需要说明的东西写进一个独立函数中,并以其用途命名。可以对一组或甚至短短一行代码做这件事。只要函数名称能够解释其用户,我们也该毫不犹豫地那么做。,”,“,PHP良好的代码组织实践,动机,简短而有良好命名的函数:finely grained(细粒度)1、复用机会大。2、函数读起来像读一系列comments。3、函数覆写容易。,三

7、、Large Class(万能的类),1、Class内数个属性变量有相同前缀或者字尾,可使用Extract Class。2、Class内并非大多数变量使用属性变量,可使用Extract Class。3、有太多代码,可Extract Class。,”,“,PHP良好的代码组织实践,四、Replace Temp with Query(查询替换临时变量),如果一个Temp变量,保存一个表达式,将这个表达式Extract Method。这就是所谓的查询式,query,”,“,PHP良好的代码组织实践,动机,1、局部变量会使代码难以提炼。2、临时变量会驱使你写出更长的代码。如果改成query metho

8、d,那么class下的method,都可以获得这份信息。将编写出更清晰的代码。3、Replace Temp with Query往往是你运用Extract Method之前必不可少的步骤。,函数式编程让JS更优美,函数式编程只描述在程序输入上执行的操作,不必使用临时变量保存中间结果。重点是捕捉“是什么以及为什么”,而不是“如何做”。与将重点放在执行连续命令上的过程性编程相比,函数式编程的重点是函数的定义而不是状态机(state machine)的实现。函数式编程概念,包括匿名函数、调用函数的不同方法,以及将函数作为参数传递给其他函数的方式。在许多情况下,JavaScript 的重复代码导致了一

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

10、1)由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。2)闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便改变父函数内部变量的值。,“,”,JS的面向对象,面向对象的语言有一个标志,即拥有类的概念,抽象实例对象的公共属性与方法,基于类可以创建任意多个实例对象,一般具有封装、继承、多态

11、的特性!但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.可理解性 2.直观性 3.可适应性4.可扩展性 5.可调试性二.建议每个人可能都有自己的编码习惯,我个人倾向于“优雅”,希望大家在项目合作中都能恪守代码规范(代码约定),避免他人即地狱(Hell is other people)。,总结,THANK YOU FOR YOUR ATTENTION!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号