一个月之前,我决定重新开始写blog,把一些编程经验分享出来,工作当中coding已经很少了,很多知识可能再也用不着,时间久了就会遗忘,写出来可能总可以留下点印记,或许可以帮到其他人

历史上,我先后用过sina,cnblog,csdn,iteye等BSP,当然主要还是自己搭建的独立博客,3次用wordpress,1次用typecho,还有一次用了textpattern

每次自己搭建blog程序,都需要安装一堆的插件,配置url静态化,找合适的皮肤,无比的繁琐,于是决定自己写一个博客程序

前端html/css我之前也不怎么会用,花了1周左右学习,主要是依托bootstrap,写完之后发现不用bootstrap也可,

就剩下后端技术选型,最近2年做小型网站,都是用php,我自己写了一个效率导向的简单框架,加上以前的工作,3年时间,php已经让我很厌倦了,很小的功能都需要写很多的代码,并且需要反复修正各种typo错误

我剩下的选择就是django和rails

  • 06-07年,我主要用django写web应用,大概写了2-3万行代码,时间虽然久,但是稍微熟悉文档,还能想起了很多来

  • rails,我07年买过一本 Agile web development with rails,这次翻出来重新看了一遍

在我看来,ruby&rails有很多优点:

  • %w,%q这样的缩写,说明ruby的作者写过大量的代码,coding经验丰富,对php又很深的恶感

  • 代码block和 函数最后一行作为返回值,这些对于老码农来说,都是特别感兴趣的特点,你如果写过10万行以上的代码,那么你会对一切减少敲键盘的设计都非常喜欢

  • rails的ActiveRecord 比django的orm强不少,可以随意的写get_by_xxx函数,可以对某个字段单独update,包括db:migrate工具也是,用起来很舒服

  • rails把表单验证都加之在ActiveRecord上,这种设计,对于快速开发的项目,开发效率惊人

rails的缺点

  • 臃肿,安装复杂,特别是在windows下,独立逐个安装是不可能成功的,只能用这个N合一安装包,http://railsinstaller.org/

  • 各种生成器慢的惊人,任何一个操作都要等5-6秒,

  • 约定太多,每个model都要按部就班的定义controller,每个controller,model都只能定义在单独的文件当中

  • rails版本维护者,已经进入魔怔,任何一个第三方包,只要他们觉得有点用,就要整合进入rails安装包中,我删除rails的时候发现,里面居然有bootstrap这样的玩意!!![经过核实,这点是我弄错,rails中的bootstrap只是同名而已]
    • 疯狂集成是个非常严重的问题,django诞生之处,当时还有一个python框架,paste和它竞争,paste style就是集成各种包的大杂烩,下场是显然的
    • 第三方包都有各自的开发者,他们没有统一的协调,每个人都按照自己的想法升级版本,rails集成这样的多的包,版本管理必然是噩梦
    • 如此多的依赖包,会让初学者不知所措,极大的影响项目本身的推广

总结:

  • 作为一个有丰富经验的django开发者,我考虑再三还是继续使用django写网站
  • java web开发者,可以尝试学习使用rails
  • 没有任何开发经验的开发者,建议学习php,有一定经验之后根据自己兴趣选择
  • python程序员,完全不需要考虑rails

本文地址: http://lutaf.com/78.htm 鲁塔弗原创文章,欢迎转载,请附带原文链接