我是Ruby noob。这个社区中有没有人写过没有任何框架的Ruby应用程序? (编辑:我的目标是自己写一篇。)告诉我们你的经历。这有多难?您使用的最低抽象是什么?有什么陷阱?感谢。
答案 0 :(得分:9)
这是一个非常非常广泛的问题。您是要编写自己的框架,还是只是一个简单的CGI类应用程序(您可以很容易地使用ERB)。
我可以看到不使用框架(包括你编写的框架)的最大缺陷是,对于其他人来说,弄清楚你的代码在做什么以及为什么会更加困难。此外,您将失去所有自动化测试,数据绑定,打包,文档生成以及框架结合在一起的其他好东西。
当然,如果你自己完成所有的捆绑,那么你刚刚编写了一个框架。 :)
如果没有,你写了一堆可怕的意大利面条代码。
我做的事情,因为你是Rubyist的开头,是读Rails(或Sinatra)的来源,并试着找出它的作用。不是因为它必然是一个很好的例子,而是因为通过潜入一对夫妇,你对网络框架的理解会更加完整。这非常非常有价值。
编辑:
我查看了你的其他一些帖子,看起来你是学生,所以我要提醒你不要写自己的框架,不是因为这本身就是个坏主意,而是因为什么软件框架代表 - 即使用语言X的多年经验总和。
程序员就像海狸 - 我们想要建立。我们希望自己构建所有,始终坚持修复现有工具的缺点。虽然这是一件非常高尚的事情,但它往往会让人们走上很少做的事情,因为他们不愿意使用其他人写过的工具,往往归结为轻微的,美观的原因。年轻的程序员尤其对此感到内疚,我也没有什么不同 - 我浪费了几年的时间来编写Web服务器和数据库抽象层,而不是编写我本可以赚钱的软件。
如果我可以回去做不同的事情,我会开始为已经存在的框架做出贡献,而不是仅仅试图从头开始做“正确”。
现在,“首先使用其他人的工作”这一规则有一个例外,那就是当你获得了使用工具的经验,知道什么时候建立新的东西。在他决定编写Rails之前,DHH(创建Rails的人)是一个非常长时间的Ruby编码器。
作为一个Ruby新手,你可能会更好地阅读其他人已经做过的事情,修补/改进它,而不仅仅是自己开始。您将了解有关该语言的更多信息,为社区做出有价值的贡献,并为自己提供一些好的简历素材。
答案 1 :(得分:3)
你应该问自己为什么要这样做。像Sinatra这样的简单框架确实不会妨碍你。这只是为了学习目的吗?
至少,你应该考虑使用Rack中间件让你的生活更轻松 - 将你的应用程序连接到Rack,并使用Rack通过Passenger,Thin,Mongrel等来托管网站。