Questions tagged «ruby-on-rails»

Ruby on Rails是一个开放源代码的Web开发框架,为程序员的幸福感和可持续的生产力进行了优化。约定定义了许多事物,使您不必重新发明事物以保持生产力。

16
程序员在选择语言和框架时应有多少自由度?
我开始在一家主要面向C#的公司工作。我们有些人喜欢Java和JRuby,但是这里的大多数程序员都喜欢C#。我之所以被录用,是因为我有很多构建Web应用程序的经验,并且因为我倾向于JRuby on Rails或nodejs等较新的技术。 我最近开始了一个构建Web应用程序的项目,该项目的重点是在短时间内完成很多工作。软件负责人指示我使用mvc4而不是rails。可能还可以,除了我不知道mvc4,我不懂C#,而且我是唯一负责创建Web应用程序服务器和前端UI的人。 使用我已经非常了解的框架(Rails)而不是使用mvc4有意义吗?该决定背后的原因是,技术负责人不了解Jruby / rails,因此无法重用代码。 相反的论点: 他不会为代码做贡献,坦率地说, 这个项目不需要他。因此,他是否知道JRuby / rails并不重要。 实际上,我们可以重用代码,因为我们有很多Java应用程序,JRuby可以从中提取代码,反之亦然。实际上,他已经投入了一些资源将Java库转换为C#,而不仅仅是在JRuby on Rails应用程序上运行Java库。都是因为他不喜欢Java或JRuby 我已经构建了许多Web应用程序,但是使用一些陌生的东西会引起一些混乱,而我却无法像过去那样在短时间内构建出色的应用程序。这样很好 学习新技术在这一领域很重要。问题是,对于这个项目,我们需要快速完成很多工作。 在什么时候应该允许开发人员选择其工具?这取决于公司吗?我的公司吮吸或认为这正常吗?是否存在绿色牧场?我看错了方向吗?

6
在数据库配置方面,应该在UTF-8上使用Latin-1吗?
我们在我工作的公司中使用MySQL,并使用Ruby on Rails构建面向客户端和内部的应用程序。 当我开始在这里工作时,遇到了一个以前从未遇到过的问题。生产服务器上的数据库设置为Latin-1,这意味着只要有用户输入,用户在其中复制和粘贴UTF-8字符,MySQL gem就会引发异常。 我的老板称这些为“坏字符”,因为它们大多数是不可打印的字符,并说我们需要将它们去除。我找到了几种方法来完成此操作,但是最终我们遇到了需要UTF-8字符的情况。另外,这有点麻烦,特别是因为似乎我所读过的唯一解决方案是将数据库设置为UTF-8(对我来说很有意义)。 我听到的坚持使用Latin-1的唯一论点是,允许不可打印的UTF-8字符可能会使MySQL中的文本/全文搜索混乱。这是真的吗? 还有其他原因使人应该在UTF-8上使用Latin-1吗?据我了解,它是卓越的,并且变得越来越普遍。


3
如何为当今(复杂的)Web环境培训初级程序员?
目前,我们公司主要在Ruby on Rails Web服务器和大量不同的REST客户端中开发应用程序,从Java的信息亭系统到C / C ++的嵌入式设备(标准Web浏览器的接口除外)。我们需要扩展我们的团队,但由于未能找到优秀的高级程序员,我们决定付出一些努力来培训与公司一起成长的初级程序员。 我们已经给了他们一些Ruby和Rails书籍,并要求他们构建一些玩具程序,但是我现在意识到对于Web编程当前状态的学习曲线有多陡峭。 15年前,当我开始编程时,我仅使用Delphi和Source Safe,并且能够从一开始就生产可用的软件。它们都是简单的工具,很容易探究环境的内部运作。慢慢地,我开始使用第三方框架,切换到CVS,SVN,最后是Git,学习了构成当今Web的内容,例如HTTP,JavaScript,CSS,REST等。今天,即使经过多年的经验,我也不知道关于Ruby on Rails的内部工作原理与过去有关Delphi的工作一样重要,对我而言,这很重要,因此我可以将基本的学习模块与所使用的工具连接起来。 在我看来,我正在招聘的程序员将需要很长时间才能与团队整合并产生有用的东西,因为要使用单一框架(Rails)需要学习很多东西:Ruby,HTML,CSS,JavaScript, REST,测试用例,数据库访问(在框架内神奇地构建了SQL!),MVC,三种不同的程序包管理器(适用于Ubuntu,gem和bundler用于Ruby),ssh,git,Apache和Phusion Passenger进行部署等。 因为这是我第一次直接与初级程序员打交道,所以我感到迷茫。如果选择太多,什么是培训初级程序员采用当今Web开发最佳实践的最佳方法?

10
RoR的缺点是什么?[关闭]
我目前正在尝试确定要在Web开发中学习和使用的服务器端语言,虽然相对容易获得有关为什么x,y或z是一件好事的信息,但要弄清每种缺点都很难其中。 特别是,我很好奇与其他给定语言/框架相比,学习和/或使用Ruby on Rails有哪些缺点。


12
测试驱动开发(TDD)是否实际上使一个现实项目受益?
我对编码并不陌生。我已经(认真)编码了15年以上。我一直对我的代码进行一些测试。但是,在过去的几个月中,我一直在使用Ruby on Rails学习测试驱动的设计/开发(TDD)。到目前为止,我还没有看到好处。 我看到为某些事情编写测试有一些好处,但很少。尽管我喜欢首先编写测试的想法,但与调试实际代码相比,我发现我花费大量时间尝试调试我的测试,以使他们说出我的意思。这可能是因为测试代码通常比其测试的代码复杂得多。我希望这只是可用工具(在这种情况下为RSpec)的经验。 但是,我必须说,在这一点上,令人沮丧的程度加上令人失望的性能不足令人无法接受。到目前为止,我从TDD看到的唯一价值是不断增长的RSpec文件库,该库可用作其他项目/文件的模板。与实际的项目代码文件相比,这没有什么用处,也许没有用。 在阅读现有文献时,我注意到TDD似乎需要大量时间,但最终会获得回报。我只是想知道,有没有现实世界的例子?这种巨大的挫败感是否能在现实世界中得到回报? 我真的希望我不要在这里的其他地方错过这个问题。我进行了搜索,但是所有问题/答案都已经过了几年了。这是我难得的一次机会,当时我发现一个开发人员会对TDD不好说,这就是为什么我花了很多时间在此上的原因。但是,我注意到似乎没有人指出具体的实际示例。我确实读过一个答案,说在2011年调试代码的人会感谢您拥有完整的单元测试套件(我认为评论是在2008年提出的)。 所以,我只是想知道,在所有这些年之后,我们是否最终有任何例子表明收益是真实的?是否有人真的继承或返回了使用TDD设计/开发的代码,并具有完整的单元测试集,并且确实感到收获了?还是您发现您花了太多时间试图弄清楚测试正在测试什么(以及为什么它很重要),以至于您只是把整个混乱扔进了代码中?

9
在生产服务器上开发
今天,我因在生产服务器上开发应用程序而大喊大叫。报价,“ 在生产服务器上发展是不能接受的-永远! ” 这是情况。 我建立了一个开发实例: http://example.com:3000 生产实例为: http://example.com 我完成了所有开发工作http://example.com:3000,当客户对更改感到满意时,我将其移至http://example.com。 我正在使用的应用程序是一个旧的Ruby on Rails应用程序,我不得不说一开始,我确实尝试在本地设置开发环境,但是我永远无法使其运行。经过一段时间的尝试,我放弃了并决定在生产服务器上进行开发。 再说一次,我是白痴吗?大概是这样,但是我从事Web开发已有两年了,而且从未遇到过这种情况。谁是正确的,为什么?

8
我的简历上没有Ruby,但没有Rails [关闭]
我将Ruby列为一项技能,因为我在博士学位期间从事Ruby编程已有5年了。论文。我主要使用它来实现自然语言处理算法。 我开始寻找工作,并且将自己的履历表发布到了一些网站上(作为申请某些目标工作的一项额外奖励)。现在,我收到招聘人员的电话,向我提供Ruby on Rails的工作。问题是我从未学过Rails。这与我为博士学位所做的工作从来没有关系。 您如何建议处理这种情况以避免浪费我的时间和他们的时间?(在完成论文之前,学习Rails可能不是一种选择。)是否可以调整我的履历以使其更清楚?是否应该调整?我应该在电话上客气地告诉他们我不认识Rails吗? 顺便说一句,我简历的相关部分只是说: 技能专长: 编程语言: C,C ++,Java,Scala,Ruby,LaTeX 数据库: MySQL,XML,XPath 并列出了其他一些可能无法与Rails开发人员混淆的技能领域。

4
创建api时,我应该坚持使用小函数和多次调用,还是几次调用和大函数?
我有一个需要维护的Rails平台。它基于其构建了许多不同的Web应用程序。但是,现在客户正在请求一个API,以便他们可以将用户保留在其站点上,但可以利用我们拥有的一些自动化任务。 该平台用于构建保险应用程序,并允许其在线购买,以及提供下载与您的保单相关的文档的方式。 所以我在构建API时的问题是: 当我必须做很多事情,比如validate,创建user,user profile和policy,几乎在同一时间。我应该进行4个单独的API调用,并让客户端在其端进行4个调用。还是我应该打一个电话,该电话除了很多参数之外,可以验证客户端并同时创建所有这三个对象,从而简化客户端的操作? 在这种情况下,客户端可以同时获取所有必需的信息,因此它不像在其应用程序中有自然的流程那样暂停,它们可以对我的平台进行API调用。 在客户端上使用过许多API之前,我的直觉是尽可能简化客户端,让他们只进行一次调用。但是,这会导致functionsAPI 变得相当庞大,我也不喜欢这两者。 您如何建议我解决这个问题? 需要注意的是,我对客户端能否实现复杂的API并不十分有信心。

8
Ruby on Rails的缺点和警告[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 这不是RoR打击的开端-老实! 我正在学习Ruby和Rails框架。从表面上看,它看上去很酷,与PHP相比,它是一种很棒的体验。(实际上,这让我想起了使用C#和.NET的美好时光。) 但是,进入这个过程,我对这种框架或语言没有任何经验,而且我很好奇-开始时希望知道哪些当前的缺点或事情? (也许这应该做成社区Wiki?)

2
我们有一个大型的Ruby on Rails应用程序(每月有2500万用户),我们的管理层决定在Node.js中重写,我疯了吗?
请告诉我是否: Node.js将使我们的网站更快! Node.js将消耗更少的服务器资源,我们可以节省金钱! Node.js将使我们的生产力更高! Node.js意味着我们可以共享客户端和服务器端JavaScript代码。 为了澄清起见,我们正在重写前端服务器,该前端服务器将作为API与我们现有的Ruby on Rails应用程序通信。同时,我们将Ruby on Rails应用程序重构为服务。 现有架构的更多详细信息: Memcached用于HTML部分缓存 Redis用于会话和一些结构化数据缓存 MySQL单主机,多从机 有一张大桌子可以接受大量写操作(想象一个民意测验) 否则大多读。 MongoDB中的一些元数据 Ruby on Rails 3.0 Nginx和独角兽

7
经验丰富的Ruby on Rails开发人员是否使用脚手架?
在Ruby on Rails教程中,我读到一些文章,建议有经验的开发人员不要使用脚手架,因为他们倾向于只编写代码自行连接MVC。 在另一个地方,我读到使用脚手架是个好主意,因为它可以帮助您遵守约定,以便其他查看您的代码并与您的代码进行交互的人都可以理解您在做什么。 我是Ruby on Rails的新手,但不是MVC或Web应用程序的新手-我通常应该努力遵循脚手架约定并让它指导我吗?

5
何时使用继承,何时使用“仅布尔字段”?
在我们的Rails应用程序中,我们正在添加通知。其中一些是blocking:它们会停止添加任何资源的进度,因为缺少该资源的某些信息。 其他通知是简单通知,仅提供信息。 今天,我与团队中的另一个程序员进行了讨论。我创建了这样的继承结构: 但是,他希望我只是blocking在每个Notification上添加为布尔返回方法,并指定在Notification父类内阻塞的子类列表。 这些方法之间的差异不是很大。在我的方法中,不必指定此列表,以使根类保持整洁。另一方面,Notification::Blocking现在发生的特殊逻辑也不是很大。 哪种抽象更适合此问题?

10
Ruby on Rails应该具有陡峭的学习曲线还是仅我一个人?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 6年前关闭。 我是一个自学成才的程序员。自10月以来,我一直在学习RoR,而且强度有所不同(有时一天一整天,有时几周都没空)。在此之前,我只了解Java,但是非常了解。我听到过很多关于RoR的炒作,以及它如何使您快乐,多产等。到目前为止,这只是让我感到沮丧。我是从敏捷书中学到的,并且我怀疑部分困难可能与我不了解JavaScript和CSS以及对数据库和HTML的掌握不佳有关。但是显然,我完成敏捷书中的项目所花的时间比其他人花了很多时间,我仍然不记得很多。关于Rails的某些事情我似乎无法理解,例如何时使用符号,何时不使用符号或如何调用动态方法。 最近,我收到了一个小的Rails任务,要求我对界面进行一些小的更改。我花了大约25个小时,尽管我在理解代码方面取得了一些进步,但我仍然不知道如何进行。我什至不能问Stack Overflow,因为要提供上下文,我必须提供太多代码。 所以我的问题在标题中:RoR应该花很长时间学习还是我只是很慢?可能是我从错误的书中学到了什么吗?我的学习风格使我要么什么都不懂,要么什么都不懂(如果有的话)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.