Becomin' Charles

算法 | LNMP | Flutter | Mac

Becomin' Charles

使用 Yii 框架编程的时候,我们会很自然的使用 Model 来查询我们的 DB,并进行相应的操作,有些时候,我们因为性能隐患,而不会使用复杂的数据库关系如多对多关系,遇到此类情况,我们一般会在内存中分批查询数据,用程序遍历,主键关联组装数组,操作。

阅读全文 »

应用Yii框架已经有一段时间了,之前也分享了一些Yii框架的入门视频,撰写了一些源代码分析文章。随着使用的深入,越发被Yii框架折服,感叹原作者Qiang Xue对于面向对象编程,Web开发,以及PHP的深厚功力和应用能力。众所周知,像一切Web开发框架那样,Yii框架提供ORM功能,中文叫对象关系映射,能将关系型数据库的数据,映射成对象,从而提供了便捷的数据操作能力。

阅读全文 »

我现在研发的系统中,有很多报表是需要按月统计的,比如月底销售奖励,比如环比增长,都要用到本月、上月,指定月,指定月的上个月这种概念,为了便于存储、查询、计算、比较的方便,我们采用了整型201203这种格式来保存月份,然后就衍生了一系列时间计算的需求。

阅读全文 »

因为工作的关系,最近参与的一个项目中,我目睹了 ExtJS 在项目中发挥出来的强大的生产力,以及在 Web 界面方面强大的表现力,另一方面又很喜欢 js 这个语言,所以,下决心学习以下 Ext JS,正好新版 4.1 发布了,可以学新技术了。本文章为系列文章,内容或来自翻译,或来自自己的学习感悟,属于理解、记忆、融会贯通的一个辅助,也希望对诸君有利。

阅读全文 »

这是一个非常老生常谈的问题了,毕业找工作的时候,我就研究过很多的模板,然后自己找工作时候,非常认真的准备,最近工作了一两年,看老大、组长面试前打印出来的各种简历,帮各种同学、朋友走内部推荐,着实看到了一些简历,所以,我还是谈谈我对简历的一般看法,写这篇文章,主要是给以后找我推荐岗位的童鞋看的,大部分找我推荐岗位的人,都是拖了几层关系拖到我这里,然后把简历发过来,我既然要帮你推荐,那你的简历至少得过我这关,我得对公司负责,得对自己的信誉负责。所以,准备这么篇东西,如果我推荐你来看这篇文章,意味着你的简历不合格,需要改进,但是不代表我对你个人能力有任何看法,只是从形式上看,你的简历不合格。

阅读全文 »

什么是OAuth?

简单来说,OAuth就是一种协议。这种协议的作用是,授权第三方使用你在某服务商处储存的私人数据,但是并不需要告诉第三方你的密码。OAuth并不是一个新发明的协议,而是已有的各种解决方案的一个去芜存菁,融合了当时所有解决方案(Google AuthSub, AOL OpenAuth, Yahoo BBAuth, Upcoming API, Flickr API, Amazon Web Services API, 等等)的优点。OAuth协议的研发始于2006年11月,2007年10月3日,OAuth Core 1.0最终草案发布,其1.0版本发布于2007年12月,并迅速成为业界标准,2008年6月修复了一个安全漏洞,发布了OAuth 1.0 Revision A(OAuth 1.0a),2010年4月,OAuth 1.0作为RFC5849发布。

OAuth与互联网开放

OAuth协议虽说不是一个通过认证的国际标准协议,但是它是事实上的互联网公认的标准。现今,开放已经成为了互联网的主流,而OAuth在其中扮演了不可或缺的角色,可以说OAuth是互联网开放的基石。各种平台服务商,都通过OAuth协议,部分开放了自己的用户数据,使得新兴的互联网服务,可以更加方便地访问到用户在各种网络服务中存储地私人数据,从而更加便利而且快捷地提供更为优质、有针对性地服务。这种用户数据的开放,是建立在安全和授权的基础上的,也即,只有用户亲自授权,其存储于某互联网服务的数据才可以被第三方调用,这种授权可以精确指定,比如用户只希望授权访问自己地照片,但是不可以查看自己照片底下的评论,此外,用户在授权第三方访问自己的私有数据时,不需要告知其自己的密码是什么,这也就保护了用户的密码不备泄漏和篡改。

在以上机制的保障下,任何网络服务,都可以使用OAuth协议,开放用户数据的访问,也可以请求用户访问其位于其他网络服务,如大型平台服务,社区服务提供的数据。在安全保障下的开放与共享,促进了互联网的进一步繁荣。

各种知名网络平台、服务提供商采用的OAuth协议

服务商

OAuth版本

文档

Google

OAuth 2.0

文档

Facebook

OAuth 2.0

文档

Twitter

OAuth 1.0a

文档

新浪微博

OAuth 2.0

文档

腾讯微博

OAuth 1.0a

文档

豆瓣

OAuth 1.0a

文档

回到家已经超过23点了,想想也做不了什么事情了,那就把路上跟同事讨论的问题,拿出来写一写。又是一个老生常谈的问题,就是到底是面向对象还是面向过程?其实关于这个问题,本不该有什么疑惑的,但是随着最近一个项目的经验,我又产生了一些新的看法。

阅读全文 »

虽然Mac OS 提供了令人目眩神驰的界面效果,但是,我觉得我的最爱始终是终端,这到不是因为我有什么geek的癖好,而是因为到了*NIX系统上后,使用终端得心应手,就好像使用Windows,你喜欢点开开始菜单,或者习惯性打开资源管理器,是一个道理。

Mac的终端是连接的使系统底层的Unix系统,名字叫Darwin,这个终端也支持许多的快捷键,记录下来,希望对大家有点帮助。

快捷键

功能

Ctrl + a

移动到开头

Ctrl + e

移动到结尾

Ctrl + b

向左移动一个字符(助记back)

Ctrl + f

向右移动一个字符(助记forward)

Option + Left

向左移动一个单词

Option + Right

向右移动一个单词

Ctrl + h

向左删除一个字符

Ctrl + w

向左删除一个单词

Ctrl + k

向右删除到行尾

Ctrl + t

交换行尾两个字符顺序

Esc + t

交换行尾两个单词顺序

Ctrl + l

清屏

Ctrl + d

相当于退出、logout、exit等命令

Shift + Cmd + 鼠标双击

快速选中路径

还有些别的东西,大家可以看看这个: http://qingbo.net/blog/post438.html

个人觉得set -o vi 是神器

周日闲来无事,打开Yii的源代码学习一下,今天主要看的代码都是base包里面的,也就是框架根目录下的base目录里的代码。这个目录里的代码不多,但是类很多,而且这些类对整个框架来说至关重要,都是非常基本的组件。老实说,这里面的代码,我已经看了无数次了,但是总觉得常看常新,转念一想,这也实属正常,毕竟这是原作者数年框架开发经验的结晶,岂是我这等工作一两年的菜鸟能随便吃透的?

最近又玩了两次Visual Paradigm这个软件,觉得自己操作水平又有进步,甚感欣喜,所以今天既然分析源代码,就正好再练练手,于是乎,我开始用VP UML开始画base包里的类,得图如下。(说明:这个图是基于Yii的1.1.8版本,另外这里面少了两个类,因为这两个类的功能比较特殊,我没有细看,所以也就没有画在图里,看后面是不是有兴致再来专门画一张,缺失的两个类是CSecurityManager和CStatePersister。)

阅读全文 »