`
jack
  • 浏览: 393131 次
  • 来自: 温州
社区版块
存档分类
最新评论

rails虽好,但依然难用

阅读更多
    大约从06年9月正式接触rails。买ror书,按书上画瓢。开始进行实验项目开发,再到正式项目开发,已经过去了大半年了。这个大半年的应用中,最大的感触还是,rails虽然很不错,但是依然有很多地方让你痛苦不堪。

   不过这个也是大部分技术开始应用的时候经常遇到的,有些小细节上处理不好,整个项目就会被卡死。

   我所遇到的rails的最大难题,第一是。中文处理,第二:数据库,第三:部署。 这些问题在前期开发中和试验项目中实在是难以遇到,但是正式项目中却能让项目失败的几个点。对于准备热心应用rails项目的各位同学,千万要当心这点。

   做rails项目,要么就是严格按照rails最擅长的方式去处理,linux/unix运行环境,mysql数据库。在这种情况下,部署,和数据库部分问题就会很少,最多的也就是中文处理问题。中文处理的解决方法很多,基本不成为问题。

   不过由于工作环境的问题,rails的应用环境和推荐完全不同。
   中文处理问题,尝试完全用gb2312编码,问题超级多,费尽心思,虽然找到一个办法,不过并不好用。最终还是不得不采用了utf8。

   数据库:rails有说明能够支持ms sql server。 能够支持和实际应用,距离相差又是甚远。虽然都是采用utf8编码,但是非常容易出问题。
   部署: 用的是windows 2003,robbin的文章帮助很大,问题依然存在。 某些情况下,发送post指令,页面调用就会出错,这种错误开发环境下根本就从来不出现。

   上面的三个问题,从开始到最终解决,最长的有几个月那么久。(解决办法,我都在这里发帖)。而这三个问题,从开始看各位同学对rails,ruby的推崇的文字,到实验性代码中以及ror的书上,是从未提起过。三个问题,随便哪个问题解决不了,项目就完全流产了。使用新技术的整个过程中,风险依然很大。回头想想,还真是汗颜。

   论坛上有不少的同学经常想在公司里面推广新技术,新方法。我这里奉劝一句, 除非你已经用这个新技术,新方法做过好几个项目,方方面面问题都遇到过了,否则不要去推广。很多细节,只有做过,遇到过,才能够明白,理解和解决的。一些看上去不注意的细节角落,往往就是一个项目杀手隐藏在那里。当心啊当心。
   
 

 
分享到:
评论
9 楼 caryl 2007-06-16  
gigix 写道
steve_gu 写道
gigix 写道

因为你把它宝贵的东西都扔掉了

jack是被逼的

我知道
但他的困境,仍然是很可讨论的。如果真的为这些问题,像他说的,卡了几个月,那是多大的成本浪费?出于什么样的考虑,可以浪费如此大的成本,而一定要坚持用Windows Server、用SQLServer、用GB2312编码?这个决策本身就是很可商榷的。


相当深刻。
8 楼 gigix 2007-06-16  
steve_gu 写道
gigix 写道

因为你把它宝贵的东西都扔掉了

jack是被逼的

我知道
但他的困境,仍然是很可讨论的。如果真的为这些问题,像他说的,卡了几个月,那是多大的成本浪费?出于什么样的考虑,可以浪费如此大的成本,而一定要坚持用Windows Server、用SQLServer、用GB2312编码?这个决策本身就是很可商榷的。
7 楼 steve_gu 2007-06-16  
gigix 写道

因为你把它宝贵的东西都扔掉了

jack是被逼的
6 楼 gigix 2007-06-16  
jack 写道
环境不同,也只能用不同的环境。本意并非抱怨什么,只是用我的经验告诫使用者,别把rails当宝,这个宝不是什么情况下都好用的.

我还是这句话
Rails之所以是个宝,是因为它告诉你正确的做事方式
你不听从这些建议,你要用错误的方式来做事
然后你说Rails其实不是个宝
我觉得你的逻辑特别正确:在这种情况下Rails确实不是个宝
因为你把它宝贵的东西都扔掉了
5 楼 jack 2007-06-16  
环境不同,也只能用不同的环境。本意并非抱怨什么,只是用我的经验告诫使用者,别把rails当宝,这个宝不是什么情况下都好用的.
4 楼 gigix 2007-06-16  
如果你在一个CentOS上部署,用MySQL做数据库,用UTF-8编码,你可以更快、以更低的成本得到一个更可靠、浏览器兼容性更强的web应用。
人们总是这样:明明已经有做事的正确方式,却偏要用错误的方式去做事,然后抱怨说事情真难做。
3 楼 wtb 2007-06-16  
yehs220 写道
有点危言耸听吧,只不过是你在这三方面都恰巧选择了最不好的解决方案。发送post指令页面调用就会出错?这更是没听过,估计是你程序有问题吧。我使用ruby/rails一年多来,碰到到最烦心的就是ruby的第三方库太少太不成熟了,但是相对与它的好处来说,这也算不得什么,而且情况会越来越好。

支持
我记得当初学hibernate和struts的时候,整整学了一个月才做了点小东西。其实大部分时间用于它的各种配置以及一不小心配错了的错误查找上。
现在学rails,一个星期也能做些和当时用java做的差不多大量的东西。而且产生的错误少多了,或者说排除错误的时间花的少多了。上面的同学所说的一些问题我认为随着rails的越来越流行,都会得到很好的解决的。
2 楼 fkpwolf 2007-06-16  
用新技术当然是有代价有风险的.....
java世界早就用UTF-8了.google页是...
1 楼 yehs220 2007-06-16  
有点危言耸听吧,只不过是你在这三方面都恰巧选择了最不好的解决方案。发送post指令页面调用就会出错?这更是没听过,估计是你程序有问题吧。我使用ruby/rails一年多来,碰到到最烦心的就是ruby的第三方库太少太不成熟了,但是相对与它的好处来说,这也算不得什么,而且情况会越来越好。

相关推荐

    重构你的Rails程式码

    ### 重构你的Rails程式码 在进行Rails版本升级时,重构代码是一个绝佳的机会。本文将深入探讨为何这是个好时机来进行重构,并提供一系列实用的方法帮助您优化代码。 #### 为什么这是一个好时机重构代码? 1. **...

    mini-rails:仅有600行代码的精简版Rails,可作为学习Rails原始码的向导-代

    但二进制文件太多,核心代码都没没在大量细节实现中,全部看完不现实,走马观花又很难领会精髓;纸上得来终觉浅,眼过千遍,不如手过一遍,干脆重新造个轮子;于是就有了mini-rails,参照Rails原始码,省略细节,...

    rails_exception_handler:Ruby on Rails的异常处理

    如果您不熟悉Rails,请不要感到害怕,设置起来并不难。 异常处理程序使您可以通过ActiveRecord或HTTP POST将错误消息中的关键信息保存在某个地方的数据库中,并在应用程序布局文件中向用户显示自定义的错误消息。 ...

    jungle-rails:使用Ruby on Rails构建的电子商务应用程序

    丛林很难找到可以向朋友炫耀的独特产品吗? 欢迎来到丛林。 奇怪的是新常态。 Jungle使用Rails 4.2构建,为您带来无与伦比的电子商务体验,改变了您对在线购物的思考方式。最终产品技术一个使用Rails 4.2构建的电子...

    yay:Ruby和Rails的SmartHR新手训练营

    但是,很难深入了解Rails。因为要了解Rails,您首先需要了解Ruby。与任何语言和任何WAF一样,了解语言的特征并理解WAF在您脑海中的移动对于掌握WAF至关重要。 在上半部分,有一门Ruby课程首先要了解Rails。在下半年...

    concurrent_rails::joystick:小型图书馆,可让并发Ruby和Rails一起玩

    问题在于Rails不能很好地使用它。 Rails有一种复杂的线程管理方式,称为Executor,并发-ruby(最具体地说是 )无法与之无缝配合。 这个gem的目标是提供一个简单的库,使开发人员无需担心Rails的Executor和随之而来...

    rails登陆画面(原)

    解压后是一个exe文件,至于怎么将系统的替换为这个,相信难不到大家的哈 博文链接:https://msdn.iteye.com/blog/164888

    rex:Rails 中的 React 示例

    在 Rails 中使用 Jest 和 React 应该是很棒的立方体……但它似乎很难。 介绍 最近,作者处于一个遗留项目想要在保留 Rails 后端的同时重新设计前端的情况。 该项目决定随着时间的推移逐步进行基于 React 的重新设计...

    dynosaur-rails:[不推荐使用] https的Web界面

    我们(Harry's)已决定弃用Dynosaur-rails,并将Dynosaur变成配置有YAML文件的无头控制台应用程序。 我们只是发现很难维护Web应用程序,让首页报告/状态功能在一年左右的时间内未开发,并且总体上感觉它没有什么...

    成长:Ruby on Rails的可持续架构

    成长 Ruby on Rails是Shopify上Web应用程序的首选框架。 它是经过认可的堆栈,可用于快速,轻松地开发需要使用关系数据库,HTTP服务器和HTML视图... 我们将推荐一组简单但实用的抽象和实践,这些抽象和实践可在Rails

    sample-reactjs-app:从头开始创建具有react.js支持的Rails应用的简短教程

    好的,让我们开始制作一个简单的Rails应用程序。 rails new SampleReactApp cd SampleReactApp 让我们添加一些宝石开始。 在您的gemfile中,添加这些基于React的宝石。 # Just for making the views nicer gem '...

    upgrow:[镜像] Ruby on Rails的可持续架构

    成长 Ruby on Rails是Shopify上Web应用程序的首选框架。 它是经过认可的堆栈,可用于快速轻松地开发需要使用关系数据库,HTTP服务器和HTML... 我们将推荐一组简单但实用的抽象和实践,这些抽象和实践可在Rails应用程

    binterest:Rails 中的 Pinterest 克隆

    RoR 概念(环境设置可以说是 rails 中最难的部分,但使用更容易) MVC 导轨上的 完全响应(在桌面上更改浏览器大小以查看响应能力) 用户身份验证,通知与 jQuery 集成 集成(用于照片动画) 用于图像托管的集成...

    rails-iframe-resizer

    Rails 的 iframe 调整器用于Rails 包装用法在 application.js 中,添加: // for host//= require iframeResizer.min// for iframe client//= require iframeResizer.contentWindow.min 去掉js ...很难嵌入到rails中。

    关于Ruby on Rails路由配置的一些建议

    本文将详细介绍Ruby on Rails中的一些路由配置建议,包括如何有效地使用RESTful路由、成员(member)和集合(collection)路由、嵌套路由以及命名空间路由等。 #### RESTful路由 在设计API时,通常推荐使用RESTful风格...

    foundation_form_builder:用于 ZURB Foundation 的 Rails FormBuilder

    基础表格生成器 这个宝石有什么用?... 到目前为止,它仅在 Rails 4.2 和 Ruby 2.2 上进行了测试,但如果不太难的话,我很乐意同时支持 Rails 和 Ruby 的旧版本。 听起来很棒! 我如何使用它? 以通

    muchtodo:rails 练习应用程序——一个简单的待办事项列表(Rails)

    这是我的第一个非教程引导 Rails 应用程序! 这是一个简单的待办事项列表,仅用于学习目的,但它仍然非常具有挑战性。 你可以玩它。 我没有包含用户登录/身份验证的内容,因为我希望这是一个为期一周的项目,而且...

    actions_as_textcaptcha:Rails的基于文本的逻辑问题验证码

    它们很容易被人类解决,但机器人很难破解。 您还可以根据自己的问题配置gem。 作为替代方案,也可以作为处理任何API问题的备用。 由于基于逻辑的验证码为什么是个好主意的原因,请访问 。 要求 > = 2.5 > = 4 ...

    rails4patterns-codeschool

    rails4patterns-codeschool级别 1:模型胖控制器不好很难明白业务逻辑未封装更多代码冲突新功能难以实现避免从回调中调用其他域对象回调是在对象生命周期的特定时刻被调用的方法。 在回调中引用其他模型: 引入紧...

    a_rails_start_up_omakase:用于启动的预配置Rails应用程序,主要用于oauth,部署和维护

    Rails启动Omakase这些代码整理完善自我八月到九月开发的喜感网第一版的基础部分的代码,同时也是第二版的基础,希望这里面的代码能对他人快速PS:部署和运维比开发难多了...这个repo另一个目的是记录我对rails app...

Global site tag (gtag.js) - Google Analytics