在PHP技术圈摸爬滚打四五载,经历了高并发、大数据项目的各种坑,不断的在坑中打磨成长。热衷技术领域:Yii2 、 Mysql 、Redis 、ElasticSearch 、Nginx、设计模式、分布式存储、分布式编程,对面向对象编程有比较独到的见解,重视团队协作。
Autoloader 关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、 “将会”("SHALL")、“不会”("SHALL NOT")、“应该”("SHOULD")、“不该”("SHOULD NOT")、 “推荐”("RECOMMENDED")、“可以”("MAY")和”可选“("OPTIONAL")的详细描述可参见 [RFC 2119][http://tools.ietf.org/html/rfc2119] 。
HTTP消息接口 本文档描述了在RFC 7230和RFC 7231中被描述来代表HTTP消息通用接口,以及在RFC 3986中规定的URIs语法。 HTTP消息是Web开发的基础。
日志接口规范 本文制定了日志类库的通用接口规范。 本规范的主要目的,是为了让日志类库以简单通用的方式,通过接收一个 Psr\Log\LoggerInterface 对象,来记录日志信息。
代码风格规范 本篇规范是 PSR-1 基本代码规范的继承与扩展。 本规范希望通过制定一系列规范化PHP代码的规则,以减少在浏览不同作者的代码时,因代码风格的不同而造成不便。
基本代码规范 本篇规范制定了代码基本元素的相关标准, 以确保共享的PHP代码间具有较高程度的技术互通性。 关键词 “必须”("MUST")、“一定不可/一定不能”("MUST NOT")、“需要”("REQUIRED")、 “将会”("SHALL")、“不会”("SHALL NOT")、“应该”("SHOULD")、“不该”("SHOULD NOT")、 “推荐”("RECOMMENDED")、“可以”("MAY")和”可选“("OPTIONAL")的详细描述可参见 RFC 2119 。
自动加载规范 此规范已被弃用 - 本规范已于2014年10月21日被标记为弃用,目前最新的替代规范为 [PSR-4] 。 本文是为自动加载器(autoloader)实现通用自动加载,所需要遵循的编码规范。
Hadoop生态系统主要组件导图: 看大图
声明:本系列博客参考资料《大话设计模式》,作者程杰。 职责链模式(又叫责任链模式)包含了一些命令对象和一些处理对象,每个处理对象决定它能处理那些命令对象,它也知道应该把自己不能处理的命令对象交下一个处理对象,该模式还描述了往该链添加新的处理对象的方法。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 访问者模式表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 模板模式准备一个抽象类,将部分逻辑以具体方法以及具体构造形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 状态模式当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 备忘录模式又叫做快照模式或Token模式,在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 中介者模式用一个中介者对象来封装一系列的对象交互。中介者使得各对象不需要显式地相互引用,从而使其松散耦合,而且可以独立地改变它们之间的交互。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 迭代器模式:迭代器模式是遍历集合的成熟模式,迭代器模式的关键是将遍历集合的任务交给一个叫做迭代器的对象,它的工作时遍历并选择序列中的对象,而客户端程序员不必知道或关心该集合序列底层的结构。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 命令模式:在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 观察者模式(有时又被称为发布-订阅模式)。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 解释器模式:Given a language, define arepresentation for its grammar along with an interpreter that uses therepresentation to interpret sentences in the language。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化,即封装变化的算法。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 代理模式为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 享元模式使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于只是因重复而导致使用无法令人接受的大量内存的大量物件。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 门面模式(有时候也称外观模式)是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 装饰器模式又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 组合模式(有时候又叫做部分-整体模式),将对象组合成树形结构以表示“部分整体”的层次结构。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 桥接模式:在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?这就要使用桥接模式——将抽象部分与它的实现部分分离,使他们可以独立地变化。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的(适配器模式要解决的核心问题)。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 建造者模式也称生成器模式,核心思想是将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 单例模式也称单态,是23种设计模式中最简单的一种,从他的名字就可以知道他的核心思想,单例模式就是系统中只有一个这样的对象,对象只有一个,在Java或者C#中,单例模式一般有两种,分别是懒汉式、饿汉式,但是在PHP中常用的就是懒汉式,由于PHP是单线程的,懒汉式也不存在双重验证。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 前面我们介绍了简单工厂和工厂方法设计模式,今天我们学习最后一个工厂——抽象工厂。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 前面我们介绍了简单工厂,今天我们继续学习另外一个工厂——工厂方法。 具体案例:请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的事情,我们一般采用FactoryMethod模式,带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让MM直接跟服务员说就行了。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 前面两节内容介绍了什么是设计模式以及六大原则,相信看完前两节内容大家对设计模式已经有了初步的认识,接下来说一下设计模式的分类。
声明:本系列博客参考资料《大话设计模式》,作者程杰。 常见的面向对象设计模式大约有23种,但是自从接触PHP后,渐渐发现常见的设计模式好像少了很多,网络上的资料也比较少,身边的PHP同事们有的甚至没有听说过设计模式,这也有可能是PHP的发展所带来的,因为PHP对面向对象支持的比较晚,好多PHP程序员还按照面向过程的思想写代码。
关于Mysql分区表的介绍可以参考: http://blog.csdn.net/jhq0113/article/details/44592865 关于Mysql分区表的创建可以参考: http://blog.
Mysql的安装方法可以参考: http://blog.csdn.net/jhq0113/article/details/43812895 Mysql分区表的介绍可以参考: http://blog.
定义: 表的分区指根据可以设置为任意大小的规则,跨文件系统分配单个表的多个部分。实际上,表的不同部分在不同的位置被存储为单独的表。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。
在配置Mysql数据库主从复制集群的时候要保证: 1.主从服务器操作系统版本和位数一致。 2.Mysql版本一致。
Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。
声明:本系列教程参考资料《Mysql性能调优与架构设计》 Why Mysql? 大家可能怀疑,数据库有好多种,为什么选择Mysql作为数据切分的案例,为什么不选择Oracle、MS SqlServer或者DB2等等。
上学的时候在学校机房见过FTP做的文件分享系统,服务器是Windows的,当时感觉功能真的很强大,不管是哪台机器都可以共享一个文件夹,后来自己在家里通过查阅各种资料,用自己的win7做FTP服务器,做了一个文件服务器,但是真的很鸡肋,操作体验真的不尽人意。
Redis在百度百科里的解释:Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,包括C#、Java、PHP等等,甚至连Javascript都做了很好的封装。
声明:本文阅读对象最好是对Yii和分布式缓存有一定了解的人群,否则理解和掌握上有一些困难,建议阅读之前做好以上两点基础准备。 YiiFramework简称Yii,读作易,代表简单(easy)、高效(efficient)、可扩展(extensible),Yii将面向对象思想以及代码的重用性发挥到了极致,尤其是在缓存的支持上,Yii是最有效率的PHP框架之一。
关于具体的基本功就先说这么多,后面遇到再补充说明,前面说的都是一些代码和原理方面的东西,接下来说的会有界面和代码结合,会有成就感,因为能真正的做出东西来了。 Windows移动开发包括Windows Store和Windows Phone,Wind...
上一次,我们了解了委托,委托和Lambda表达式结合是一件灰常灰常爽的事情,这也是只有.Net才有,自己偷着笑去吧。几天这次,我要介绍一下继承和多态,这是进行面向对象编程必须熟练掌握的技术和思想。
进行到现在,已经是第六章了。本章主要讲解检查代码——静态白盒子测试——被证实是早期发现软件缺陷最有效的方法。虽然这是一项需要大量准备工作才能有成效的任务,但是许多研究表明花费的时间与得到的好处相比是值得的。
闭着眼睛测试软件其实就是指动态黑盒子测试。它是动态的,因为程序正在运行——软件测试员充当客户使用它;它是黑盒子,因为测试时不知道程序如何工作——闭上眼睛。
从本章开始,将介绍软件测试的基础知识。说道软件大多都有软件产品说明书,那么怎么测试说明书以便在产品出厂之前发现缺陷呢?下面我将介绍一下测试软件产品说明书的方法。
这一章我们要了解一些软件测试的基本常识,下面请看内容提要。 测试需要遵循一定的原则,原则如下图: 作为软件测试员必须要知道一定的常识,测试的常识也如下图: 测试界的术语和定义。
学好软件测试,必须对软件的开发有足够的了解。软件的开发过程这章主要讲解一下内容: 软件产品的组成部分: 软件项目成员部分: 软件的开发模式部分: 图片上写的够详细的了,我就不再罗嗦了。
我们眼前这个世界如此美好,但这一切绝不是某一个人的妙手偶得,当然也离不开每个人一点一滴的奉献。 一只蚂蚁永远也通过不了一堆火,倘若成千上万只蚂蚁抱成团,可以牺牲一少部分蚂蚁而大部分都会通过火堆;拔河比赛中,每个人都向一个方向用力才有希望战胜对方,假使所有人都各自向自己想要的方向用力,结局会很残忍;虎落平阳被犬欺,这是为什么呢? 这一切都说明个体的能力是有限的,只有团结一切可以团结的力量到一个位点,才能把所有的未知都变成已知,把所有的问题都变成各种新发现,把困惑变成内心的释放。