将代码写的简洁并且易读易懂是每一位优秀的coder所应该具备的基本功。
前几天在github上看到clean-code-php这个项目,感觉很有收获,于是在这里记录一下。
使用有意义并且可读的变量名称
Bad:
1 | $ymdstr = $moment->format('y-m-d'); |
Good:
1 | $currentDate = $moment->format('y-m-d'); |
将代码写的简洁并且易读易懂是每一位优秀的coder所应该具备的基本功。
前几天在github上看到clean-code-php这个项目,感觉很有收获,于是在这里记录一下。
Bad:
1 | $ymdstr = $moment->format('y-m-d'); |
Good:
1 | $currentDate = $moment->format('y-m-d'); |
RESTful 给我的最大感觉就是规范、易懂和优雅,一个结构清晰、易于理解的 API 完全可以省去许多无意义的沟通和文档。并且 RESTful 现在越来越流行,
在开始介绍 RESTful API 之前,先介绍一下 RESTful 架构。
REST,即Representational State Transfer 的缩写。意为 “ 表现层状态转化 “ 。
要理解RESTful架构,最好的方法就是去理解 Representational State Transfer 这个词组到底是什么意思,它的每一个词代表了什么涵义。如果把这个名称搞懂了,也就不难体会 REST 是一种什么样的设计。
观察者模式用于实现对对象进行观察:一旦主体对象状态发生改变,与之关联的观察者对象会收到通知,并进行相应操作。
举个例子说明:
假设一个这样的情景,当公司有一个新员工入职了,入职的当天,HR需要为他办理入职手续,网管需要给他配好电脑和办公用品,部门主管需要带他熟悉部门。传统的编程方式,就是在员工入职这个事件发生的代码之后直接加入处理逻辑,当后续我们需要增加处理逻辑时(比如员工入职后增加培训),代码会变得难以维护。这种方式是耦合的,侵入式的,增加新的逻辑需要改变事件主题的代码。运用观察者模式,将员工的入职作为事件,其他的处理逻辑都做为观察者的操作,那么,当以后需要再增加更多的逻辑时,新增逻辑代码就会很方便。具体代码实现如下。
在编码的时候,我们为了扩展一个类经常是使用继承方式来实现,随着扩展功能的增多,子类会越来越膨胀,使系统变得不灵活。
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。它能让我们在扩展类的时候让系统较好的保持灵活性。
那么装饰器模式具体是什么样的呢?
我们有一块地,在这块地上,我们要盖一栋有好几间房间的别墅,每间房间的装修费用都不同,现在,我们要对盖别墅的费用进行计算。
先定义一个Land类,表示这块地,Land类定义了在这块地上盖别墅需要花钱这个规则。
1 | abstract class Land |
Land已经定义好了在这块地上盖房需要花钱的这个规则了,但是盖一间房间具体花多少钱呢?
外观模式(Facade Pattern)是一个比较简单的概念,它只是为一个子系统创建一个单一的入口。这样的好处是有助于分离项目中不同的部分,其次,会使得我们在访问代码时变得简洁方便。另外,由于只在一个地方调用子系统,减少了出错的可能性。
外观模式比较简单,这里就不做过多的赘述了,主要是要吸收该模式减少耦合的思想,直接上代码。
Vagrant 是一个自动化构建虚拟机环境的工具,可以自动化虚拟机的安装和配置流程。
在团队开发的情况下,我们常常需要在多台机器间同步开发时,有的同事用的 wamp ,有的同事是用的 xampp ,可能在某些配置上的些许不同会导致些许不同或者bug,通过使用 Vagrant ,我们只需要同步 Vagrantfile ,就可以保证各台机器拥有一致的开发环境。也可以通过打包好一个Vagrant box ,供团队的同事使用,这样就能最大程度的保证开发环境一致,避免出现一些没必要的问题从而浪费精力去解决。
这篇文章记录一下PHP的编程代码规范,做一个规范的PHPer。
PSR:即PHP Standards recommendation(PHP推荐标准)。
CamelCase
这种驼峰式。camelCase
这种驼峰式,首字母是小写的,后续的所有单词的首字母都是大写的。如:phpIsAwesome在今天,PHP组件和框架的数量很多,可以说是多如牛毛。PHP生态系统是个名副其实的大熔炉,有各种各样的代码,帮助开发者构建强大的应用。为了使这些不同的组件代码、框架能互相通信,共享代码,就诞生了PHP-FIG这个组织,PHP-FIG制定了推荐规范,PHP框架可以自愿实现这些规范,改进与其他框架的通信和共享功能。如今的很多受欢迎的大型PHP框架通常都会实现定案的PHP-FIG推荐规范。
PHP-FIG的使命是实现框架的互操作性。框架的互操作性是指,通过接口、自动加载机制和标准的风格,让框架互相操作。
工厂模式分为简单工厂模式,工厂方法模式和抽象工厂模式,它们都属于设计模式中的创建型模式。其主要功能都是帮助我们把对象的实例化部分抽取了出来,目的是降低系统中代码耦合度,并且增强了系统的扩展性。本文对这三种模式进行了介绍并且分析它们之间的区别。