一个.NET程序员为什么学习Ruby on Rails?

  你是一位资深的.NET程序员,而且已经用ASP.NET构建过许多Web应用。

  无数个不眠之夜,为了让ASP.NET控件生命周期中的事件驱动模型按你想要的方式执行,你费尽心血,深入细节。

     你精通于使用诸如Presentation Model、Model View Presenter这类设计模式对你的应用进行分层,以使其更易测试和维护。

  你认为Ruby on Rails只不过是众多被吹嘘的技术中的一员。在它还没有获得可观的市场份额之前,你不会给予它过多的关注。

   欢迎来到我的世界。如果你还在读这篇文章,我向你致敬。对于我下面的说法,你可能会充满了好奇。为什么我——一名资深的.NET程序员,在经历了一个月 的Ruby on Rails学习后会认为:只有在我了解了Ruby on Rails之后,才能以较少的时间和编码完成以前开发过的许多应用?

   老实说,我仍然认为.NET很棒。它为我提供了一个平台,能让我向客户源源不断地提供巨大的商业价值。但我时刻提醒自己:一个简单的问题,有大量不同的 方法和技术可以解决它,并且总有一些比其它更好。衷情于某种技术,必然会产生一些无意识的偏见,这最终会阻碍我为客户提供商业价值的能力。例如,对像 Ruby这样的动态脚本语言的了解,使我以为:与使用编译型的语言相比,我可以花费更少的时间去编写简单的自动处理的Batch/Shell脚本。

  为什么不呢?

  下面这几件事,是我(一个.NET程序员学习Ruby时,发现的一些典型的不同。希望你能喜欢。

  不需要编译Ruby中没有编译的概念。一切都在运行时发生作用。有人认为代码编译可以防止编码时的粗心。那么,你可能应该去看一下测试驱动开发是怎么工作的,连续的代码集成(当然了,不是每天都要构建),单元测试(不涉及数据库和web服务的测试)和依赖注入可以帮助你生成质量良好的代码,使你能够充满自信的灵活的改变你的代码。编译的保障作用一下子变的不那么重要了。

  动态增加类的行为——不使用Decorator模式在静态类型语言中,要想动态增加类的行为,我们可以使用Decorator模式或者模板方法。而在Ruby中,有更多的方法可以在不复杂化对象设计结构的情况下,很简单地做到这一点。

        这只是因为语言本身对它的支持,例如:将模块作为minxin使用,使用class_eval, inst…………………………………………………………………………

详细页面:http://www.verydemo.com/demo_c119_i3975.html

猜你喜欢

转载自zh49237524330777.iteye.com/blog/2072278
今日推荐