压力与习惯

国庆骑车回家,途中与一大叔同骑了一段路程.因为从骑车以来基本上都是一个人的旅行,好不容易逮到了一个骑友自然是欣喜万分,自是不能放过,于是一路聊得不亦乐乎.但发现了一个奇怪的现象.不知道是自己蹬了150多公里还是车久未优化的缘故,自己要死命的蹬才能勉强追上该大叔. 后来才得知, 原来大叔是大盘带小盘(前3后9),而我则是前2后8, 自然要猛于我了. 问其不累?答曰: 已然习惯.回来的时候突然奇想,先不管网上大盘带小盘伤膝盖的说法,也试一下,看下到底会有多累. 起初那会儿蹬的痛苦不必自说, 然十余分钟习惯了后踩起来和我以前没啥区别,于是一路欢歌没扎胎提前了一个多小时回到了公司.

突然想起了曾经在某本书上看到的话,大约是说人是一种适应性很强的生物. 确实如此, 想我们在初中高中那会儿, 天天叫苦叫累依然过来. 而到了大学, 一下没了"压迫","自由"了,也懈怠了. 稍微有了那么一点苦,喊累了,大呼hold不住了,智商跟不上了...

其实,智商还是原来的智商,人还是原来的人, 不一样的只是我们自己给自己的压力. 压力小了,也就懈怠了,原来能吃的苦便觉得不能忍受了,智商不够用了.

解决办法很简单:给自己多点压力. 压力大了,什么都上来了~~~

PHP命名规范

发现公司项目都一直没有统一过编码规范,于是把自己已经养成的编码规范整理了下,以后如果团队作战时仍然未统一规范自己的部分就按照自己的规范来写.利人利己~~~

类的规范

  1. 类命名: 每个字母的第一个单词都大写,不使用下划线'_'
  2. 类属性命名: 驼峰命名法,protected属性使用下划线'_'开始,private属性使用'_'开始和结尾
  3. 类方法命名: 命名一般应用动词开始,名称就能看出其用途,采用驼峰命名法
  4. 方法的参数: 采用驼峰命名法

变量: 全部采用小写,每个单词用下划线'_'隔开

  1. 引用变量: 以"r_"作为前缀
  2. 全局变量: 以"g_"最为前缀
  3. 常量,全局常量: 全部采用大写,单词之间用下划线'_'隔开
  4. 静态变量: 以"s_"作为前缀

函数: 名称必须有意义,全部使用小写,多个单词使用下划线"_"来分割

记一次找虫的体会

昨天临近下半时收到测试的反馈,有个功能应该对数据库某个字段执行increment操作,但实际上却是decrement操作,怪哉,于是今天一大早就开始各种测试,看API代码,没错.测试,我这边正常.结果测试那边依旧如此.怪哉.再找,欸,还有漏掉了一个逻辑,优化下.测试,正常.结果测试仍然反馈错误.怒了,找了几个iphone测试机一一测试,正常,但就是有一台越狱的iPhone不正常.本以为是越狱后不正常的结果,放手做其他事.结果....

下午测试换了一台没有越狱的iPhone,测试,问题依旧.抓狂>_<再抓包,后台直接请求API,正常.最终一同事说看下我的代码.最终终于发现了异常.有一个bug会在特定情况下发生,于是就有了如上的那一幕.看到源代码,瞬间想拍死自己.自己明明逻辑是那样的结果居然没写!!!!

忙活了一个上午,事情终于完成.深刻教训:找虫是一个一定要仔细的过程,一定要按照程序的流程一步步跟踪.程序没有错,只有人会错!
PS:同事赞了我的代码可读性和风格.继续保持:-)

thinkphp关联模型as_fields无用解决办法

用tp不是很多,最近自己的一个小东西准备用tp开发,于是仔细看了文档,才发现以前的各种left join什么的用thinkphp关联模型方便很多,于是便研究了下,结果发现关联模型中的as_fields设置后无效,文档又写得比较简单,google了下很久,最后终于发现了解决办法.记录下.

假设有以下数据表:

- 全文阅读 -

SESSION的存储与区分每个用户

在写一个有趣的东西,本想就自己用的,突然觉得都用了高达上的阿里云了,一个人用太浪费资源了,那就让大伙儿都用吧.于是准备写成多用户版.

既然写成了多用户,那么登陆验证就很关键了.cookie+session是必须的,当然验证思路和逻辑也很清晰.但是,头脑短路了那么一会儿,我如何区分不同用户呢?假如我都用$_SESSION['uid']来判断,不是不能区分吗?

2货,session会给每个会话分配一个随机生成的基本不可能伪造/重复的session_id的,$_SESSION['uid']是基于该session_id下的,会重复吗孩子????!!!!

php中GET变量键值有'.'的读取问题

在manual上看到的,做下记录.如果我们的GET值中有'.'符,我们直接写会报错,解决办法是把'.'换成'_'符号.比如这个地址"localhost/test.php?a.b=123".'test.php'的代码如下所示:

echo $_GET['a.b'];

得到的会是"Undefined index: a.b"这样一个错误,解决办法是换成"echo $_GET['a_b']即可"

关于php中的注释

计划把manual看一遍,加之提高下英语水平,于是选择了英文版的manual.每天闲暇的时候看,希望3个月以内能够看完第一遍吧:)

不得不说,收获蛮大的,比如说这个注释,虽然很简单.不外乎就是//,/**/以及asp风格的#,但是,如果没有看过手册看到下面的这个问题绝对会疯狂找这个"看起来完全没有bug"的代码:

<?php
    echo 'hello world';
    //echo 'I love u!';?>I am a genius!
?>

- 全文阅读 -