标签:框架

浏览模式: 标准 | 列表 | 图文
继续COMET之旅

继续COMET之旅

1日的时候我把IBM开发者网站上关于COMET的文章进行了转摘,然后就又在博客园上又发现了这篇文章 ,看样子好象还没有连载结束,因此我只作一个链接转向。

http://www.cnblogs.com/lzlynn/archive/2009/01/17/1377383.html

看他的文章内容,也是参考了一下IBM的文章哦。他还说要写框架,观望一下。

COMET彗星(一)SERVER PUSH介绍

COMET彗星(二)基于SERVER PUSH的消息传输

COMET彗星(三)构建自己的COMET核心

肯定还有第四篇第五篇哦。。。

框架之随便谈谈

框架之随便谈谈

本文是我发在博客园的文章,原文地址是:http://www.cnblogs.com/neatstudio/archive/2008/11/28/1342894.html,如果对本文有啥意见的话,也可以去那里回复,目前已经有一部分朋友的回复了。

我不知道这篇文章会写成怎么样,但既然算是一个想法,我想也可以放到首页被大家鄙视或者怎么怎么一番吧。(很多新人发随笔的时候是否都选择了发首页?我是想到哪里写到哪里,可能会就显得乱了)

最近一段时间园子里讨论框架算是比较热烈的,我是每天订阅首页更新的,所以也想着来说几句。

开头先表明,我正式的工作中用的并不是.net,看.net的书和一些简单的开发,是我在03、04年的时候吧。再往后几乎就没有用过了。但是我想编程的思想都一样的,说一点框架不算为过吧。

在工作中,很多公司、个人都选择了使用框架进行开发,大多数开发人员都会熟悉一到两个框架,并可能对某一个框架有着很深的了解,在看到别人解决不了的问题的时候,有时候也会冒上一句:你如果用XXX框架,只要用XXX方法就可以解决了,有必要那么烦吗?

是的,框架确实简化了很多开发工作,什么ORM啦,页面自动生成啦,(对于VS那种拖控件生成页面的方式,一向很感慨的),对于用户来说,他需要的 几乎只是一个业务实现和逻辑控制。很多公司也确实是这样工作的,但是我想说的是:在这样的环境下,你除了会使用这些框架,你对程序的一些底层,你还熟悉 吗?

<被神话的框架>http://www.cnblogs.com/birdshover/archive/2008/11/26/1341568.html,说的基本也是这样的问题。

企业应用框架,那是为的快速开发,个人应用框架,除了快速开发外,最重要的应该是学习实现框架所用的一些架构、思想,而不是为了用而用(接单除外)。

很郁闷的就是看到一些人(我们公司的另一部门的项目经理)在项目开发的时候居然用上了最新的框架,对于一些新的框架,虽然有部分技术是先进的,但是 BUG也是很多的,在项目一开始的时候,他自己就说了,我们要用XXX框架,然后手下一帮子人花了一个多月先学习这个框架,最后在开发的时候问题多多,可 是他在向领导介绍的时候说的是:我们采用了业界最领先的框架。结果在做关系映射的时候,数据库里的数据如果默认是0,创建外键的时候就会报错,但他从来没 有找自身的原因,而是把责任推到我们部门,说我们不会设计数据库,int字段默认不应该为0,应该用NULL,被雷倒了。[题外话:拿着那么高的工资,做 的却是一些不切实际的事情,怪不得去哪家公司哪家公司就差不多完蛋了(对不起,不能多说,我还要混饭吃,同时猜测我们公司会在什么时候被他们整跨)]

在开发的时候认识几个程序员,都在自己写着框架,然后开源发布了,不料在自己的论坛里,很多使用框架的人居然在问:这个框架带留言板吗?这个框架带XXX吗?一直被雷着。。。

整理一下思路先。

框架,我们是要用的,但是要看用的范围和用的度。在企业开发的时候,我们可以尝试采用框架,毕竟在使用框架的时候,有很大一部份被忽略掉的就是效率 (估计没有人会说框架的运行效率高的),可是在做WEB应用的时候,数据量并发很大的时候,如果你对框架底层并不熟悉,那么建议还是不要使用框架,而是寻 求一些简单的解决方案(比如在使用SQL的时候直接手写,这样调试起来也会方便一点,不要象我们公司那些人,用Hibernate查询,生成的SQL居然 横跨了31张表,太牛叉了)

对于个人,我们并不建议使用框架,但可以学习框架的设计思想,毕竟这些框架在实现的过程中,大都采用了一些很常用也很实用的设计模式,看完一个框架 (我说的看完是指仔细读完源码),那些设计模式也就几乎都了解了,当然看代码的时候也可以对应那些设计模式的书。几乎所有的框架都会有自己的特色,但同时 也会有自己的缺点,不可能会有完美的解决方法,否则目前就只会流行一种框架而不是框架满天飞了。

(看框架前,请先尝试自己写点代码,不要啥都没学就直接看、用框架,那只是一种白痴行为,不过现在很多培训点就是这样的。怪不得软件业越来越不 值钱了,创造力几乎都没有了,虽说要学印度,但也要教别人基础的吧。。。)

最后再放点屁:先学好基础,打实基础,再用框架,再学框架,否则到最后都是一场空。(如果你辛苦用的框架,作者不更新了,你怎么办?就象linux 的某个文件系统一样,业界认为这个文件系统很好,可是作者却因为杀死老婆坐牢去了,再好的东西没有维护,不再更新,你敢用吗?)

ThinkPHP两周年,同时有新的更新

新版介绍:

[ 1.0.2 ] 2008-2-21

  • Model类增加toArray方法
  • 修正因Log类的改动导致Trace错误信息无法正常显示的问题
  • 数据查询返回的数据集由ArrayObject对象改成数组
  • 修正Model类的create方法在定义字段映射的下面的bug
  • 修正虚拟模型下面create方法的bug
  • Model类的facade方法增加数据表字段的检测
  • 优化Image类的showAdvVerify方法
  • 修正标签库的compare标签
  • Trace配置文件由原来的_trace.php更名为trace.php
  • 项目调试配置文件由原来的_debug.php更名为debug.php
  • 项目配置文件由原来的_config.php更名为config.php
  • 路由定义文件由原来的_routes.php 更名为 routes.php
  • 静态定义文件由原来的_htmls.php 更名为 htmls.php
  • Model类的create方法无需type参数,自动判断新增和编辑模型数据
  • 增加第一次运行目录自动生成功能(只需要定义入口文件)
  • 默认项目编译缓存目录为Temp目录
ThinkPHP介绍

ThinkPHP介绍

ThinkPHP 不是你所想象的只是一个提供一组类库的框架,ThinkPHP 是一个具有你开发所需的全功能的开发平台,是一个有机组合体,是一个让你可以立刻开始编写应用逻辑的开发框架,并且具有很好的扩展性。

[ 1.0.1 ] 2008-2-2

  • 修正Db类在Oracle下面的parseLimit方法判断
  • 优化数据库驱动类的查询结果获取
  • Model 类增加字段的表达式插入和更新支持
  • 完善了Db类的条件查询字段中带有空格的处理
  • Model类增加了delConnect方法用于删除动态增加的数据库连接
  • 增强了分布式数据库的支持 可以设置是否需要读写分离
  • Model类增加智能切换功能 switchConnect方法可以自动识别是否是相同的数据库连接类型
  • 增加了组件模块的URL分割定义配置 COMPONENT_DEPR 包括对操作链的设置采用相同的参数定义
  • 修正Model类的count等统计方法会自动缓存的问题 DB类默认关闭查询缓存
  • 修正RBAC组件的权限判断
  • 修正组件模块方式下面的模板文件/CMS/Tpl/default/Public的替换
  • 修正Html标签库的list标签的actionlist属性的支持
  • 修正PDO类在某些数据库下面的getAll方法的BUG
  • 增加核心缓存文件的开关功能 在入口文件里面设置 CACHE_RUNTIME 为 false
  • 修正了使用组件模块的时候模板文件中/index.php/Index的解析问题
  • 修正模板和语言的切换cookie
  • Model类增加addConnect和switchConnect方法 用于支持多数据库的连接
  • 修正了语言包的缓存导致切换语言无效的问题
  • Db类增加多数据库连接的内置支持
  • 修正Model类在某些数据库下面where条件表达式不支持where 1 的情况
  • Db类增加getLastSql方法用于获取最后一次查询的sql语句
  • 完善Log类的操作以及优化错误日志的写入
  • 修正model的数据库连接配置读取
  • 在Ajax返回之前保存日志记录
  • 完善compare标签
  • 改进Vendor函数的baseUrl参数定义
  • 改进项目语言包的定义 不同语言分成不同子目录
  • 简化了query方法的数据库缓存
  • 增加clearCache方法,用于清空项目相关缓存目录
  • 增加firebird数据库驱动支持
  • 修正pgsql驱动
  • 修正~app.php 文件的编译缓存路径的问题
  • 增加编译缓存路径的设置 RUNTIME_PATH

[ 1.0.0 ] 2007-12-25

  • 优化了执行效率和内存开销
  • Import方法增加同名检测和类检测
  • 完善PHP 5.2.0以下版本的支持
  • 去掉了核心对Config、Language、Cookie和Session类库的依赖
  • 去掉了Action类内置的默认操作
  • 改进了MySqli的驱动类库
  • 修正了主键不是自动增长的时候Model的add方法返回错误
  • 修正了mysqli的escape_string方法
  • 修正了PDO的连接params参数问题
  • 修正了Model的findAll的关联查询问题
  • 修正了Model类的getModelName方法问题
  • 修正了RBAC的模块大小写设置
  • 去掉volist resultset标签,均作为iterate标签的别名
  • 增加了项目编译机制和核心类库编译机制
  • 标签库定义增加标签的别名定义
  • XML模版结束标签增加对空格的支持
  • 增加compare标签和eq neq gt egt lt elt heq 和nheq标签别名
  • 增加了多模版和多语言的开关
  • RBAC认证增加了操作的认证设置,之前只支持模块的认证设置