摘要: 这篇文章本来该和同一系列的文章一起写的,因为最近换工作的缘故滞后了.重构是非常细碎的叠加,有很多值得注意的地方.1.消灭过多的临时变量.有时候过多的无意义的临时变量,真心让人抓狂,特别是过了比较长的时间,连写这段代码的人都不知道为何这么写了.比如下面这段代码,我们先分步骤来思考这个问题.一个获得全部... 阅读全文
posted @ 2015-09-23 22:39 freephp 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 工厂模式主要是为了代码执行的时候更灵活地new对象,就像工厂流水线一样,批量生产出产品。目的:简化对象生成过程,更加灵活。例子如下:notify();$soundSer->show();$Ser = Factory::create('Picture');$Ser->notify();$Ser->sh... 阅读全文
posted @ 2015-09-23 17:25 freephp 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 可能很多人知道一个比我还偏执的技术狂人,也就是当年被知乎很多谈论的王垠.他曾经写过好几篇轰动一时的文章,比如《完全用linux工作》.此文也影响了一批人拥抱Linux.不过不久之后他又写了一篇《写给支持和反对的人们》作为补充.这有点像韩寒的韩三篇的感觉,前后其实不矛盾,反而把该讲的话都讲清楚了.想起... 阅读全文
posted @ 2015-09-19 22:10 freephp 阅读(757) 评论(0) 推荐(0) 编辑
摘要: 最近换了环境,开始接触一些新的代码和项目.人总是会迎接一些新的项目,拥抱变化,时间成本往往在成本中成为了最大的成本,于是我也记录一下自己摸索的过程.如标题所说,快速和熟悉是两个重点.快速,自然是在很短的时间内完成更多的事儿.1.工欲善其事必先利其器.我第一步就是挑一些好用的工具作为工作前奏.ide自... 阅读全文
posted @ 2015-09-19 15:44 freephp 阅读(3282) 评论(3) 推荐(3) 编辑
摘要: mysql的多列索引是经常会遇到的问题,怎样才能有效命中索引,是本文要探讨的重点。多列索引使用的Btree,也就是平衡二叉树。简单来说就是排好序的快速索引方式。它的原则就是要遵循左前缀索引。多个索引从左边往右都使用上,才能使用到整个多列索引。下面我先建立一个简单的表做实验:create table ... 阅读全文
posted @ 2015-09-05 14:18 freephp 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 重构代码更多的是对程序的可读性和可扩展性上做一些优化。首先我对可读性进行细化。借鉴大神川山甲的重构系列文http://www.cnblogs.com/baochuan/archive/2012/03/31/2425441.html,我也来抛砖引玉。面对一些有bad smell的代码,我们应该如何处理... 阅读全文
posted @ 2015-07-18 22:42 freephp 阅读(184) 评论(1) 推荐(0) 编辑
摘要: 作爲一個工作時間並不算長的phper,卻參與了兩家公司的代碼重構.下面談談我的一些感受.在mjm公司,當時我負責日常的需求開發和2.0的重構.當初的重構更多的是clean codes和一些代碼規範上的.用了phpcs去規範代碼,封裝了一些重複的代碼.並使用了單元測試,對重構的部分run了一遍.從做事... 阅读全文
posted @ 2015-07-18 17:30 freephp 阅读(195) 评论(1) 推荐(1) 编辑
摘要: 上一篇文章有些細節沒有講明白.比如我說redis做存儲化比較安全,那爲何我不用redis去存用戶登錄名呢,雖然cookie中存當前登錄名被改不會有什麼影響,但是這裏涉及到一些redis的使用.redis是一種key-value映射的高效存儲方式,從內存中讀取數據,速度非常quick.如果我能確定ke... 阅读全文
posted @ 2015-07-18 17:00 freephp 阅读(174) 评论(1) 推荐(1) 编辑
摘要: 跨域是很多phper,jser都会遇到的一个问题.解决数据在不同域名之间传递有很多方法,比如jsonp,比如setcookie,写入redis做持久化存储等.关于用哪种方式去处理跨域问题,仁者见仁智者见智,我根据我实际问题来分析.前段时间我遇到了两个域下面的系统之间保持登录状态和权限的需求.问题描述... 阅读全文
posted @ 2015-07-18 16:39 freephp 阅读(284) 评论(1) 推荐(1) 编辑
摘要: Standard PHP Library(SPL)是官方提供的标准库,从php5.0.0开始已经默认实现在php中,我们可以类比它为ruby中的gem安装的包。spl里面实现了许多迭代器和数据结构对象接口,非常实用和高效。下面是我的学习记录:从php5.0.0之后才默认可用,而在php5.3.0开始... 阅读全文
posted @ 2015-07-08 14:22 freephp 阅读(409) 评论(0) 推荐(1) 编辑