设计模式系列·无从下手的困惑(一)

2017-05-08
阅读 2 分钟
2.3k
小二的困惑 最近,小二跟着C哥学了不少设计模式,写代码的功夫可谓更上一层楼。 但是当小二单独面对新的项目时,想用学过的设计模式来解决问题,往往无从下手。 这样尴尬的处境令小二很是苦恼。于是,小二决定去请教万能的C哥... C哥最近不怎么忙,此时正坐在他的人体工程学椅上幽闲的喝茶呢。小二找到C哥,坦诚的说出了...

PHP超实用系列·自动捕获Fatal Error

2017-05-06
阅读 6 分钟
6.8k
经过十几天的忙碌,张小五手上的项目终于如期上线,虽然很累,但内心无比的充实与喜悦。喝了杯热咖啡,小五在椅子上慵懒地躺着,享受着这份静谧的时光。

设计模式系列·抽象工厂模式

2017-05-02
阅读 4 分钟
3.4k
午后闲谈 公司最近项目不忙,午间小憩之后,小二找到C哥攀谈了起来。 "C哥,忙啥呢?""也没忙啥,就是随便看看。" "哦哦,我最近也不怎么忙。你上次给我讲的工厂模式,受益匪浅啊!""哈哈,是嘛!其实你不知道,还有抽象工厂模式呢!" "抽象工厂模式?愿闻其详。""好,反正最近也不忙,就给你讲讲吧。" 从奥迪车说起 "小...

设计模式系列·工厂方法模式之Code Review

2017-04-25
阅读 4 分钟
2.4k
小二所在的公司最近出了很多线上bug,痛定思痛,于是老大们纷纷决定落实code review机制...很走运,C哥负责review小二消息中心的代码

设计模式系列·类爆炸之 Bridge 模式

2017-04-14
阅读 5 分钟
6.6k
经过 C 哥的精心指导,消息中心终于上线!代码运行了半个月,稳健无 bug 。王小二托着下腮,看着代码,一抹迷之微笑随之闪现^_^。作为一名有追求的码农,此时的快乐或许只有自己能懂。

设计模式系列·Adapter模式之如何优雅的使用别人的轮子

2017-03-28
阅读 2 分钟
3.9k
小二自忖:嗯...看着还不错嘛,不管是发送短信还是发送邮件,因为两者都继承自抽象类Message,所以可以方便的利用面向对象的多态性,这样就进一步实现了针对接口编程,perfect!

设计模式系列·Facade模式之MVC的烦恼

2017-03-26
阅读 3 分钟
5k
流行的MVC架构模式 如今的Web开发,各种框架风起云涌,势如破竹。 从国民第一的ThinkPhp到称霸全球的Laravel,这些框架有一个共同特征,都采用了MVC的架构模式。 没有任何意外,王小二的公司用Thinkphp来开发公司的主打产品。 Get新需求 一天,小二刚到公司,正打算坐下来喝杯茶。 老大走了过来:“小二啊,现在有个新的...

设计模式系列·初探设计模式之王小二的疑问

2017-03-25
阅读 2 分钟
1.8k
你见过凌晨四点的北京吗? 开发了一个月的项目,终于要上线了!王小二和同事们正在为今晚的上线做最后的准备。 万事俱备,只欠东风。因为项目是与D公司合作开发的,D公司上线过程中出了问题,所以王小二他们也没有办法,只能等着了。 1个小时...2个小时...5个小时过去了,大家都睡过去了。“叮铃铃...叮铃铃...”,一阵刺...

论PHP面向对象之-多态

2017-03-23
阅读 2 分钟
3.2k
面向对象的三大特征 我们知道,面向对象有三大特征,分别是: 封装 继承 多态 封装与继承 封装 因为对象都对自己负责,所以,对象的很多东西都不需要或不可以暴露给其他对象。 比如: 小明不需要将所有的信息告诉别人; 手机不能不封装而把CPU、内存卡等等都暴露给用户,这太危险了(如下图)。 封装解决了数据的安全性,...

设计模式系列·王小二需求历险记(二)

2017-03-22
阅读 2 分钟
2.8k
0x1 原文再续,书接上回 传送门:王小二需求历险记(一)上回说到,C哥凭借自己多年的编码经验,欲传授王小二绝世武功。让我们书接上回。 0x2 来源于生活中的实例 看着王小二求知若渴的眼神,C哥开始对小二循循善诱。 “小二啊,我们假设一个场景:假设你是一名讲师,对于上完你课程的人,你要确保接下来,每个人都知道他们...

设计模式系列·王小二需求历险记(一)

2017-03-16
阅读 2 分钟
2.4k
0x1 不断变化的需求 “需求总是在变化的”,在无数次与产品经理的”需求大战“中,小二对这句话深有体会。 这不,前些天,小二就经历了一件欲哭无泪的事情... 0x2 产品经理的需求 产品经理走到小二面前:“小二,我们需要给年会员发送短信,你多长时间能搞定?” 小二沉思了一会,拍拍胸脯:“没问题,不就是发送短信嘛。一周内...

PHP+MYSQL 读写分离简单实战

2017-03-12
阅读 2 分钟
6.9k
1、Introduction 之前写过2篇文章,分别是: Mysql主从同步的原理Myql主从同步实战 基于此,我们再实现简单的PHP+Mysql读写分离,从而提高数据库的负载能力。 2、代码实战 {代码...} 更多精彩,请关注公众号“聊聊代码”,让我们一起聊聊“左手代码右手诗”的事儿。

Mysql主从同步实战

2017-03-12
阅读 3 分钟
6.3k
1、Introduction 之前写过一篇文章:Mysql主从同步的原理。相信看过这篇文章的童鞋,都摩拳擦掌,跃跃一试了吧?今天我们就来一次mysql主从同步实战! 2、环境说明 {代码...} 下面的实战演练,都是基于上面的环境。当然,其他环境也大同小异。 3、进入实战 工具 2台机器: {代码...} master机器上的操作 1、更改配置文件...

Mysql主从同步的原理

2017-03-12
阅读 2 分钟
17.9k
关于实战,请参考我的另一篇文章:Mysql主从同步实战 1、什么是mysql主从同步? 当master(主)库的数据发生变化的时候,变化会实时的同步到slave(从)库。 2、主从同步有什么好处? 水平扩展数据库的负载能力。 容错,高可用。Failover(失败切换)/High Availability 数据备份。 3、主从同步的原理是什么? 首先我们来了解m...

mysql新说·记录数据轨迹的binlog

2017-02-08
阅读 2 分钟
3.5k
1、什么是binlog? binlog是mysql的日志工具,binlog日志可以记录insert、update、delete的sql和操作时间。 因为log数据是二进制格式的,所以称为binary log,即binlog。 2、binlog有什么用? 排查数据问题 比如线上出现了莫名其妙的数据,就可以通过binlog来查询是什么sql导致了这个数据问题。 当数据丢失时,可以恢复数...

Redis入门系列(六):Redis的Sorted Set类型

2017-02-04
阅读 1 分钟
2.9k
有序集合在集合的基础上,为每个元素关联了一个数值(可以代表重要程度,或对数值赋予其他的意义)。这使得我们可以根据这个数值,对集合内的元素进行操作。(元素的数值可以相同)。

Redis入门系列(五):Redis的Set类型

2017-02-04
阅读 2 分钟
4.3k
概念 可以想象一下高中学过的集合,一样。 SET与LIST的比较 SET:元素无序,元素不可重复。LIST:元素有序,元素可重复。 SET好用的特性 SET可以进行差集、交集、并集的运算。 命令 添加、删除元素 {代码...} 获取集合中的所有元素 {代码...} 判断一个元素是否属于集合 {代码...} 获取集合中元素的个数 {代码...} 随机获...

Redis入门系列(四):Redis的List类型

2017-02-04
阅读 2 分钟
2.8k
概念 列表类型内部是使用双向链表实现的。所以存在LPUSH、RPUSH、LPOP、RPOP 队列与栈 如果要把List数据类型当做栈(先进后出):LPUSH与LPOP、RPUSH与RPOP 如果要把List数据类型当做队列(先进先出):LPUSH 与 RPOP、RPUSH与LPOP 基本命令 PUSH与POP {代码...} 获取元素个数 {代码...} 获取指定范围内的元素 {代码...}...

Redis入门系列(三):Redis的Hash类型

2017-02-04
阅读 1 分钟
2.9k
概念 hash类型存储了对象属性与属性值之间的映射关系。换句话说,hash类型是针对对象来说的,是描述的一个对象。 基本命令 赋值与取值 赋值 1、HSET {代码...} 2、HMSET {代码...} 取值 1、HGET {代码...} 2、HMGET {代码...} 3、HGETALL {代码...} 判断字段是否存在 {代码...} 字段不存在创建字段,存在不做操作 {代码....

Redis入门系列(二):Redis的String类型

2017-02-04
阅读 1 分钟
2.1k
如何获取数据库中,value最大的key。应用场景:redis存了很多键值对,8g的大小,有天发现已经快7g了,按理说正常存花不了这么多,要知道存了什么导致的。

Redis入门系列(一):Redis初识

2017-02-04
阅读 2 分钟
2.8k
2008年,意大利一家创业公司推出了基于Mysql的网站实时统计系统。但是Mysql实在不适合干这事,特别是对这种实时性要求很高的东西,性能太差了。不在沉默中灭亡,就在沉默中爆发。当然,牛人一般都会爆发,于是这家公司的创始人就做了一个高性能的数据库-Redis。

PHP中output buffering的原理及应用

2016-11-30
阅读 2 分钟
2.7k
php缓存过程 在请求一个PHP的过程中,实际上经过三个缓存: 程序缓存 ob缓存 浏览器缓存. 开启ob的两个方法 {代码...} 通过php.ini 打开的,则作用于所有的php页面 。使用ob_start()打开则只作用于该页面 ob缓存的知识点 在服务中,如果我们开启了ob缓存,则echo数据首先放入到ob中 当PHP页面执行到最后,则会把ob缓存的...

websocket历史及使用详解

2016-11-27
阅读 3 分钟
8k
keep-alive是通知服务器,在这个HTTP Request/Responset结束后,不要立即断开TCP连接(注意是TCP连接,和HTTP没有关系),后面的HTTP Request仍然可以通过这个TCP连接继续传送。

nginx、swoole高并发原理初探

2016-11-27
阅读 4 分钟
25k
一、阅前热身 为了更加形象的说明同步异步、阻塞非阻塞,我们以小明去买奶茶为例。 1、同步与异步 ①同步与异步的理解 同步与异步的重点在消息通知的方式上,也就是调用结果通知的方式。 同步当一个同步调用发出去后,调用者要一直等待调用结果的通知后,才能进行后续的执行 异步:当一个异步调用发出去后,调用者不能立...

PHP中的日期时间处理利器-Carbon

2016-11-03
阅读 2 分钟
13.8k
Carbon介绍 Carbon是PHP中很人性化的时间日期处理插件,github拥有接近5000个 star。github地址为:[链接] Carbon基本用法 {代码...} 上面介绍的是一些基本的Carbon使用。Carbon最大的特点就是灵活、人性化。更多使用方法,参阅:[链接] 更多精彩,请关注公众号“聊聊代码”,让我们一起聊聊“左手代码右手诗”的事儿。

PHP错误、异常汇总

2016-10-16
阅读 6 分钟
4.1k
以下级别的错误不能由用户定义的函数来处理: E_ERROR、 E_PARSE、 E_CORE_ERROR、 E_CORE_WARNING、 E_COMPILE_ERROR、 E_COMPILE_WARNING,和在 调用 set_error_handler() 函数所在文件中产生的大多数 E_STRICT。