• 2008-10-27

    框架的引导性

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/dreamhead-logs/30692646.html

    最近,我开始用Grails了。你没有看错,是Grails,不是Rails。

    Grails,我们可以把它看成Groovy版本的Ruby on Rails。如果Groovy对你来说是一个新鲜词汇的话,Groovy是JVM平台上的一种动态语言。结合前面两句话,得到的结论是,Grails可以让我们用Rails的开发方式编写JVM平台上的程序。从Java入门的我有了Rails开发的经验,Grails对我来说是一种非常好的结合。

    在那个曾经蛮荒的年代,人们挥舞着手中的键盘,在JSP中放肆的编写着SQL。在经历从静态页面到动态页面的最初那短暂的喜悦之后,混乱的世界让程序员们疲惫不堪。于是,当有一种称之为框架的东西降临时,人们欣喜若狂,世界混沌初开,大踏步迈进了有序的年代。当Structs、EJB那些有着不同名字的框架已经不再是新鲜货色,人们也发现有序的世界也并不如最初预料的那么精采,为了一处修改,而不得不重新部署,让美好的生命在漫长的等待中无谓的消耗。Rod Johnson带领着Spring横空出世,让人们突然意识到,原来生活可以美的,于是,人们纷纷皈依到“清凉”的门下。当DHH用Rails告诉人们,用多快好省的方式编写程序会让人生更加光彩,世界彻底疯狂了。对于Java世界的人们来说,摆脱为了所谓的灵活而使用的那一堆XML文件,才是真正的解脱。看上去,Web开发的世界已经发展到了无以复加的境地,Rails已经成了终极的解决方案。

    在整个世界疯狂的时侯,还有一些冷静的人。虽然Rails为人们带来了便利,但软件开发终究还是软件开发。真正的项目最终还是要回到“高内聚、低耦合”的道路上。曾经属于Java世界的那些东西并非完全的糟粕。良好的设计,模块的划分,所有这些都会为软件带来长期的价值。站在Rails的肩膀上,Grails出现了。

    上一个Rails项目,我留下了很多的困惑。起初,我以为Grails是完全是在模仿Rails,直到我看见了那个叫做service的目录。这是一个提示,告诉我们要在设计上多下一些功夫。当我看到了那个没有继承的Controler和Model,这种感觉更加强烈了。可以说,Grails要结合Rails中的便利和Java中的设计,Grails出Rails,欲胜于Rails。

    当然,这不是一篇Grails推荐的文章。因为Grails太年轻,所以,它有很多的bug,某些细节上也不如Rails那么贴心;因为Grails有很多负担,Java的平台厚重,即是资本,也是包袱,一涉及集成,问题也随之而来。

    因为写文章扣题是一种好习惯,前面列举的种种,无疑最终回到这篇blog的标题,框架的引导性。使用一个框架,就容易被这种框架带成一种风格,比如用Java,可能会思前想后,把程序大卸八块;用Rails,可能会匹马杀入,完成功能再说,等等。

    当我和WPC提及框架具有引导性的观点时,他并不同意,在他看来,好的程序最终会走上同样的道路。我不否认,当有能力对程序认识到一定程度,框架就变成了思想的载体。不过,诚如WPC自己所说,他用了一年的时间,才感觉自己写的程序是Ruby了,之前还是像Java。

    大多数情况下,人们在起步阶段,很难一下子认清很多问题,所以,人们在接触一个框架的初期,必然会有意无意地受到框架的影响,写出“那种”风格的代码。在一个协同工作的环境下,框架很大程度上决定了整体的风格,尤其在不是每个人都对软件开发认识得那么清楚的情况下。

    分享到:

    历史上的今天:

    Hello Velocity 2004-10-27
    引用地址:

    评论

  • Grails还真是第一次了解,学习了。
  • 正常的应用程序总是在不停地修改中,传统的Java太烦心……全面的改用ROR之类的东西也不显示……
    之前看到有人提出 DSL > Ruby(JavaScript)>Java的架构,不知道是不是能更好的适应现实的应用。
  • 我一直觉得 grails比较鸡肋。甚至觉得只有放不开java,不敢彻底投身到rails,又想学点相关rails的人才可能投入。或者为了和jvm兼容?
    挺好奇 做这个技术选型的原因~?
  • 太巧啦, 这两天也刚开始看grails, 和楼上一样,也是通过infoq上的小书入门的,由于工作关系,不大可能用到grails,但我密切关注grails,希望博主有了用grails作项目的心得了多发表些 :-)
  • 看了infoq上的小书,真是耳目一新,Grails真不错。