心得体会

最常见的SVN客户端其实是TortoiseSVN,我一直叫它作乌龟SVN。上班以后,我在办公室使用SVN连接非办公网络的服务器,发现无法连接,原来,是因为大多数办公网络都设置了防火墙,要连接外网的服务器,必须配置代理。如果使用的是TortoiseSVN,那么“右键”-》“Settings”-》“Networking”,就可以找到设置代理的地方:

我自己经常使用的是另一款SVN客户端,不知道国内有多少用户,总之我也提一下吧,下载的网站是这里:http://www.collab.net/,这家公司是SVN的幕后支持公司,他们开发基于命令行的各种操作系统的客户端,基于命令行,所以就非常的轻巧,最关键是装好以后,可以和NetBeans无缝集成,也不会弄一堆花花绿绿的图标在资源管理器里面,让你看了红色惊叹号凭空焦虑。

Keep Reading — 536 words totally

Yii框架的Log系统的分析

昨天阅读了Yii框架中log部分的源代码,框架提供了灵活、强大的log功能,如果不是非常特殊的需求,框架中自带的类就已经能够满足一般的应用的需求了。实现log功能的源代码被存放在 framework/logging 目录下,这个目录下的代码都包含在包system.logging中。本文简要介绍一下我昨天阅读代码的所得。

首先,来看一下这个图,这是Charles昨夜工作的结晶,研究了logging目录下一共九个文件中的类的关系。YiiBase,Yii,CWebApplication不属于logging目录,但是为了说明这些类如何发生作用,也放在了这种图里。我的初衷,是要画一张标准的UML图的,无奈于本科的知识都还给老师了,所以这个图只能算是个四不像,大家凑合看一下,后面我会给自己补补课,后续的文章画得图会趋于规范的。

Keep Reading — 1768 words totally

由于采用了Web开发框架来开发项目,所以我首次在真正的项目中采用MVC的开发模式。随着项目的不断深入,我也在不断反思,MVC设计模式到底给项目带来了什么?成倍的开发时间?复杂无比的目录结构?铺天盖地的文件数量?听起来都很难听对吗,但是确实如此。那么MVC所许诺的那些好处呢?清晰的代码结构,易于维护,易于扩展?真有吗?

当然,我不是在批判MVC,只是觉得,在使用MVC过程中,还是需要投入更深入的思考,到底怎样才能用好这个设计模式。MVC给我的感觉是,要求使用其的开发者有更高的觉悟,来正确选择存放一段代码的地方。从而实现解耦合,代码复用,和易于维护。为什么说使用MVC会有成倍的开发时间,主要就是因为在开发中,我们需要更多的时间去思考,这些代码放在哪里更合理一些。在MVC框架下代码被切割成一个又一个的小文件,分散在复杂的目录树中,那么到底怎样选择把代码写在哪里呢?这道选择题,并非有看起来那么容易。就我个人感受而言,更多的时候,无论将代码放在哪里都可以正确实现你的逻辑,MVC不是什么神兵利器,并不能通过其模式本身的约束,将开发者导入到一个正确的轨道上,反而会因为开发者本身错误的选择而让MVC自己变得一团糟。所以说,当一个团队确定要在一个项目中引入MVC时候,应该思考一下,每个团队成员是不是真的都有能力驾驭,如果没有对应的能力话,是不是要考虑前期对项目成员进行一定的培训。

Keep Reading — 1444 words totally