迟到的2014年终总结

昨天刚开完年会,运气还不错,得了个普照奖(已哭...),晚上回家路上突然心里一阵惆怅,想了很多,看来还是有必要记录一下。

2014年是我职业生涯的第一年,第一次给公司写代码,第一次写的代码有被成千上万的人访问到,虽然不是什么核心的项目,但心里还是挺兴奋的!记得刚开始每次commit代码的时候都手抖,害怕出了什么差错。不过到目前为止,情况还不错。也遇到很多困难,身边的同事都帮助我挺多,P总也给了我很多的时间去适应,只是不擅言辞没说什么,但我还是发自内心的很感激他们的关照和支持!

也没少填坑,首先就是工具,公司使用SVN做版本控制,我用的是Linux开发环境,没有合适的SVN图形界面软件,每次都要SSH到开发环境去提交代码,很容易出错,直到发现了Rabbitvcs!之前习惯用Sublime编辑器,但貌似对于超大的项目,Sublime就有些力不从心了。换用了PHPStorm之后,代码追踪,本地VCS,动态模版,版本高亮。。。各种酸爽,谁用谁知道。公司的开发环境是统一的,不用自己去搭建。但要做自己的东西,还得自己去搭建开发环境。虽然只用安装一次,但心里还是在默默的祈祷,别报错啊!可那些奇葩error总会出现,各种依赖关系也是挺折腾人的。直到使用了Vagrant这个工具,搭配上虚拟机,简直就是神器,首先找到合适的box,比如Laravel官方的Homestead,所有的配置都集中在一个配置文件里,安装也很简单。合适的工具总能让效率提高不少。

一说到工作相关,总能巴拉巴拉说很多。但说实在的,心里总感觉不踏实。心里总有什么东西压抑着。在很多人眼里,程序员就是一个死板、宅、聚会中的冷场先生,虽然不认可也不承认,但仔细想想,自己多多少少会有一些,在一些社交场合,总觉得很累,甚至感到烦躁。我不知道感觉不踏实和压抑是不是因为这个,应该会有一些关联。

每到年底的时候,我们总要感谢很多人,要感谢家人,领导,同事,朋友。但是,却忘了感谢自己,不管这一年过得怎么样,收获多与少,也许我们都应该感谢下自己过去一年所做的努力和贡献,为自己、为家人、也为公司,正是因为这一点点的贡献,才让我们的生活变得有意义和充满期待。

2015,继续加油!

常用的设计模式总结

策略模式

作用

  • 将一组特定行为的算法封装成类,以适应不同的上下文环境,避免了if-else这样的的硬编码

使用场景

  • 电商网站,不同的用户显示不同的广告,传统方式使用if-else

代理(proxy)模式

作用

  • 可以实现业务和代码的分离。

适用场景

  • 典型的使用场景是数据库的主从库的读取和写入操作
  • 可以讲这些操作封装到一个proxy类中,避免选择主从的代码业务代码中出现

- 阅读剩余部分 -

分享我的 sublime text3 的配置

{
"font_face": "MONACO",
"font_size": 13,
// 增加行高
"line_padding_bottom": 1.4,
"line_padding_top": 1,
// 光标呼吸效果  可选项:"smooth", "phase", "blink", "wide" "solid"
"caret_style": "phase",
// 高亮当前行
"highlight_line": true,
// 高亮修改文件
"highlight_modified_tabs": true,
// 一直显示折叠代码的箭头
//"fade_fold_buttons": false,
// 加粗显示文件夹名称
"bold_folder_labels": true,
// 设置tab的大小为4
"tab_size": 4,
// 使用空格代替tab
"translate_tabs_to_spaces": true,
// 添加行宽标尺
"rulers": [80, 100],
// 显示空白字符
//"draw_white_space": "all",
// 保存时自动去除行末空白
//"trim_trailing_white_space_on_save": true,
// 保存时自动增加文件末尾换行
"ensure_newline_at_eof_on_save": true,
}

恩,效果感觉妥妥的。

理解 oAuth 协议

很多网站都提供第三方登陆(比如weibo)的功能,这样就免去了用户的注册步骤,同时还能带来用户的社交关系。

为了确保用户的账户安全,肯定不能在第三方网站记录用户名和密码。这时就要使用到oAuth协议了。

具体的流程是这样:(这里假设在XX网使用weibo登录)

  1. XX将用户引向weibo的授权页面。需要带上client_idredirect_uri,比如:
https://api.weibo.com/oauth2/authorize?client_id=1354552709&redirect_uri={url}&response_type=code
  1. 用户同意授权
  2. 页面返回之前的redirect_uri,这是weibo的授权服务器会给加上code(授权码)refer参数,比如:
http://www.lecai.com/user/sinaweibo/callback/?referer={url}&code=4c07a1c09d168ffa2f9664af54ea0162
  1. 然后XX再用这个code值和client_id以及redirect_uri向认证服务器发起申请access_token
  2. weibo认证服务器核对参数确认无误后,返回一个包含access_tokenrefresh_token和json数据

然后有了这个access_toke后,就可以访问用户weibo的信息了。

这个流程就相当于在客户端(XX)和服务提供商(weibo)中间加设了一层“授权模型”,由此将用户和客户端剥离来开,达到安全登陆的目的。