代码改变世界

随笔档案-2013年11月

yar粗略使用记录

2013-11-28 21:16 by 轩脉刃, 11376 阅读, 收藏, 编辑
摘要: yar是鸟哥(laruence)开发的一个并行的RPC框架。据说sina weibo已经在大规模使用这个框架了。今天初步使用了下,觉得还是挺爽的一个工具。什么情况适用这个工具呢?比如一般你有个微博这样的一个项目,这个项目的特点是有多个子项目组成,即有web版,手机客户端版,wap版等。一般有这么多个子项目,且项目的页面逻辑是分开的,我们自然会建立多个项目,然后分拆给不同的人负责。但是呢,这么多版本,它的功能实际都是相似的,比如必须都有个获取好友的功能,必须有个获取好友动态的接口,那么虽然这个接口的表现形式可能是不一样的,但是它的数据逻辑是一样的,如果使用MVC的分层模型来说,Controlle 阅读全文

那些有坏味道的代码

2013-11-27 19:33 by 轩脉刃, 2297 阅读, 收藏, 编辑
摘要: 最近每天早上上班的第一件事情就是把昨天写的代码重构优化一下,以前没弄过,现在发现这个过程真是非常爽的。看着代码一点点变好,还是很不错的感觉。最经常遇到的一些坏味道这里列一下:嵌套太多if (!empty($data) { if (is_array($data)) { foreach($data as $item) { // Do something } return $data; }} else { return null;}这里的问题就是代码嵌套太多层了,如果foreach里面有很多东西的话更难看改成:if (empty($data) || !is_array($data)) { ... 阅读全文

2013/11/22工作随笔-缓存是放在Model层还是放在Controller层

2013-11-22 20:25 by 轩脉刃, 2724 阅读, 收藏, 编辑
摘要: web网站的典型代码框架就是MVC架构,Model层负责数据获取,Controller层负责逻辑控制,View层则负责展示。 一般数据获取是去mysql中获取数据 但是这里有个问题,我们不会每次请求都去mysql中获取,当并发量大的时候,我们希望mysql前面有层缓存做着。 这层缓存可能是redis,memcache,File等,但是这个逻辑代码是放在Controller中好还是Model中... 阅读全文

2013/11/21工作随笔-PHP开启多进程

2013-11-21 18:30 by 轩脉刃, 3687 阅读, 收藏, 编辑
摘要: 今天被问到一个问题,php如何开启多进程才比较稳定。 php开启多进程执行一个操作有哪些方法: 首先想到的是使用pcntl的fork 具体可以参考之前的文章:PHP的pcntl多进程 其次想到的方法是使用linux的crontab 有个php程序,内部实现大概是 600) { break; } // ... Do SomeThing}意思是这个程序会持续10分钟,10分钟循环做这同... 阅读全文

php中mysql操作的buffer知识

2013-11-19 14:54 by 轩脉刃, 6250 阅读, 收藏, 编辑
摘要: php与mysql的连接有三种方式,mysql,mysqli,pdo。不管使用哪种方式进行连接,都有使用buffer和不使用buffer的区别。 什么叫使用buffer和不使用buffer呢? 客户端与mysql服务端进行查询操作,查询操作的时候如果获取的数据量比较大,那个这个查询结果放在哪里呢? 有两个地方可以放:客户端的缓冲区和服务端的缓冲区。 我们这里说的buffer指的是客户端的缓... 阅读全文