Px像素

雇用最好的
红宝石开发人员和程序员
上班是怎么回事。

已验证

上班拥有大量经过验证的远程Ruby开发人员&程序员。不相信我们吗?看看我们一些顶级的Ruby开发人员& Programmers below.

开始使用
客户评论 客户评价Ruby开发人员& Programmers 4.8 / 5

基于3,353位客户评论

亚历山大·M。
$30/hr
  • 红宝石
  • Vue.js
  • 角度的JS
  • 的JavaScript
  • 红宝石 on 滑轨
  • 亚马逊网络服务

你好!我的名字叫亚历克斯。我很高兴编码,学习新的语言以扩大我的专业知识,因此,我的主要编程语言Ruby变得更加强大。我不想说我总是在寻找挑战并尝试迎接新技术。我的主要目标不是成为技术主流,而是成为基础知识强人。原因是,我确定如果您是 具有很强的基础知识,那么很难找到一些对您来说很难理解的新技术。 TLTR; My goals are: -影响世界,无论如何(以一种好的方式,当然)-我对世界的帮助越多,越...

Michal Z.
$45/hr
  • 红宝石
  • 的CSS
  • 的SQL
  • 的HTML
  • VB.NET
  • 的JavaScript
  • 红宝石 on 滑轨
  • 甲骨文数据库

作为物理学专业的学士学位(即将成为硕士学位),解决复杂的问题和分析性思维对我绝对不陌生。我的计算机编程生涯始于我的热情,决心和对不断自我发展的不懈需求。我随时准备提供一些建议,并为给定问题找到一些现成的解决方案。我在中学时就开始编写代码-我正在开发一些简单的HTML / 的CSS草图,并将它们实现为现成的PHP解决方案。作为一名学生,我曾经使用各种编程语言来交付计算项目。我也有...

罗纳德·J。
$50/hr
  • 红宝石
  • 的PHP
  • 反应
  • Redux
  • 拉拉韦尔
  • Node.js
  • 打字稿
  • AWS Lambda
  • 红宝石 on 滑轨
  • Unix系统管理

I strongly believe in convention over configuration, and following best practices. That's why I love developing 网站s with 滑轨 and 反应. I also have a lot of experience with 拉拉韦尔. 虽然您可以使用任何内容制作网站,但使用正确的工具可以帮助您更快更好地完成工作。 除了我的开发经验,我还是Linux的书呆子,并且熟悉AWS和DigitalOcean生态系统。 对于您(我的未来客户),我的主要目标是与您合作以创建所需的解决方案。我坚信最好的软件设计过程是迭代的,有效的沟通是...的秘密。

伊万·N。
$73/hr
  • 红宝石
  • NoSQL
  • 规范
  • 开发运维
  • 的JavaScript
  • PostgreSQL的
  • 红宝石 on 滑轨
  • 代码重构
  • 项目管理

🧔One of first-wave rubyists (started using 滑轨 in 2006), completed dozens of projects. -我可以为新的Web应用程序打基础,帮助您重构旧的凌乱的整体,或者基本上帮助您解决任何其他工程问题。 -如果我的费用太高,请务必对我进行ping操作,我们可以解决一些问题。另外,单击我的非代理机构Skillgrid的徽章-您可能还会在其中找到一些不错的选择。 * * * 我曾与以下技术合作: • Backend: 红宝石 on 滑轨 stack, 西纳特拉, middlewares •体系结构:对模式,OOP,附加的抽象层有信心...

柳霉素F.
$45/hr
  • 红宝石
  • 的CSS3
  • 规范
  • 的HTML5
  • jQuery的
  • 角度的JS
  • 的JavaScript
  • 红宝石 on 滑轨
  • 离子框架
  • PostgreSQL的程式设计

你好我叫Lyubomyr。我来自利沃夫,它是美丽的欧洲城市和乌克兰的大型IT中心。我是具有十多年经验的全职开发人员。作为后端/前端开发人员或团队负责人,在许多大型和小型项目中工作。构建了许多复杂的saas解决方案,其中一些成功获得了数百万用户的成功。 Main tech stack: -Ruby / Rails,Elixir / Phoenix -AngularJS(IonicFramework),ReactJS,VueJS

伊戈尔·P。
$40/hr
  • 红宝石
  • 吉特
  • 萨斯
  • 的CSS3
  • 的HTML5
  • jQuery的
  • Ansible
  • 的JavaScript
  • 红宝石 on 滑轨
  • Twitter的引导

I have been working as a web-developer for more than 3 years. I have a lot of experience in 红宝石 on 滑轨 网站 developing and I have built many successful 网站s. I can make your 网站 responsive from PC to mobile devices. 我有以下经验: - PostgreSQL的 - 的MySQL - 吉特 - jQuery的 - Ansible - 码头工人 - Twitter的引导 - ZURB Foundation - Recurly API - Gulp 我有机会与大小公司合作。 无论您的预算是小还是大,您的项目对我来说都很重要,我希望您的客户喜欢他们所看到的。

弗兰克五世
$65/hr
  • 红宝石
  • 的CSS3
  • 的MySQL
  • 反应
  • 蟒蛇
  • Vue.js
  • 的JavaScript
  • 红宝石 on 滑轨
  • Twitter的引导
  • 商业情报

I am a remote freelancer looking for full-time or small projects building web applications or desktop software. I am most-skilled in building 红宝石 on 滑轨 5 apps/APIs. Well-versed in all things web, I've also worked in business intelligence and forecasting for several years now. I'm very eager to take on projects that push my boundaries.

耶稣甲
$65/hr
  • 红宝石
  • 反应
  • Django的
  • 表现
  • 角度2
  • 的JavaScript
  • 反应本机
  • 蟒蛇 Numpy
  • 红宝石 on 滑轨
  • PostgreSQL的程式设计

我是一位对软件开发充满热情的电子工程师。我独自或作为团队的一员从事项目。自我激励,学习能力强,能够运用我的知识和最佳实践来参加任何软件项目。 I've been working as a software developer for more than 8 years implementing the following technologies: Django的, 反应, 滑轨, 角度的, 蟒蛇, 红宝石, 的JavaScript, 引导程序, 的CSS, 的HTML5, Artificial Intelligence, Machine Learning, PostgreSQL的, 的MySQL, MongoDB, jQuery的, Rest APIs, Heroku, 表现.js, 吉特, 码头工人, Kubernetes, Microservices, RabbitMQ, 雷迪斯, Social Networks, etc.

乌默尔F.
$35/hr
  • 红宝石
  • 的CSS3
  • 的HTML5
  • jQuery的
  • Heroku
  • 引导程序
  • PostgreSQL的
  • 的JavaScript
  • 红宝石 on 滑轨
  • 前端开发

I am a senior 红宝石 on 滑轨 developer with vast experience in building high-quality 网站s. My experience isn't just in application development but building responsive sites which are cross-browser compatible as well. I like working in bigger teams that like to work hard and cares about creating beautiful interfaces, and designs. 我期待与客户建立良好的关系,因为与客户建立长期关系对我来说很重要。 Technical Overview: I am a full stack Front End / Back End expert developer. I have been working in 红宝石 on 滑轨 for more than 4 years using TDD. I have been working as...

ASHISH P.
$35/hr
  • 红宝石
  • 的CSS
  • 的PHP
  • 的HTML
  • Django的
  • 蟒蛇
  • jQuery的
  • 英语
  • 角度的JS
  • 红宝石 on 滑轨

我是一位自由软件开发人员,具有6年以上的经验,专门从事全栈Web开发。 Specialties: 红宝石 - 红宝石 On 滑轨 - 蟒蛇 - Django的 - 爪哇script -jQuery的 - 角度的JS - 反应JS - Relay - BackboneJS - 的PHP - 的SQL - NoSQL - 的HTML - 的CSS - SEO 其他专业:SSO登录(IDP,SP)-Odoo ERP-Fedena SMS-Canvas LMS 我开发的Ruby Gems /插件:gem activestorage-dropbox-gem link_url-gem selection-sharer-gem TimerJS-gem country_code 开源贡献: •黑子Solr搜索 •Selection-sharer js插件(在社交上共享的弹出菜单)

Ruslan S.
$60/hr
  • 红宝石
  • 的MySQL
  • 雷迪斯
  • 码头工人
  • 条纹
  • MongoDB
  • 的JavaScript
  • PostgreSQL的
  • 红宝石 on 滑轨
  • 弹性搜索

使用基于Ruby的框架在Web开发方面有7年以上的总经验。 使用正确的工具解决业务问题,在软件开发中经过良好测试和尖端的技术方面都具有经验和专业知识。 Expert in 红宝石 and its ecosystem. Apply the right architecture for projects and find better solutions for 红宝石 and 滑轨 applications. Love SOLID, DD and OO-patterns. Skills: * 红宝石, 滑轨, 西纳特拉, Hanami, Grape, background processing, caching * PostgreSQL的,MySQL,MongoDB,RethinkDB,Elasticsearch,Redis *前端:HTML / 的CSS,Javascript / Coffescript,React * TDD,rspec,minitest,水豚,watir,黄瓜,...

弗拉基米尔M.
$65/hr
  • 红宝石
  • 吉特
  • NoSQL
  • MongoDB
  • Clojure
  • 角度的JS
  • PostgreSQL的
  • 红宝石 on 滑轨

关键技能: * Backend: 红宝石, 滑轨 3/4/5+ *前端:React + Redux,VueJS + Vuex,Javascript(最高ES6),jQuery * DB:PostgreSQL,MySQL(MariaDb),NoSQL(Redis,Memcached) *消息代理:RabbitMQ,Sidekiq, *技术:TDD,BDD,持续集成,持续交付 * 开发运维:Docker,Amazon AWS *电子商务平台:Shopify(API,主题,公共应用程序,私有应用程序),WooCommerce(API,插件开发) *集成:OAuth2,Shopify,Ecwid,计费&付款(条纹,Chargebee,Paypal,Bluesnap,Checkout.com等) 我有12年以上的软件工程师经验,并且从事过许多不同的工作。

Kartikey T.
$70/hr
  • 红宝石
  • 的CSS3
  • 的HTML5
  • 规范
  • 反应
  • 条纹
  • Node.js
  • 的JavaScript
  • 红宝石 on 滑轨

你好! 我目前正在与高素质的专业团队一起寻找挑战并建立长期合作伙伴关系。 以下关键字对我很重要:代码质量,可伸缩性,自动化测试,及时交付 I am a web developer with 5+ years of experience. I work primarily with 红宝石 on 滑轨. 我的大部分经验是与初创公司合作,因此我喜欢戴很多帽子,参与前端和后端开发。 我喜欢在进行项目时考虑全局。 以下是我熟悉的技术/工具的列表: - 红宝石, 红宝石 on 滑轨, Rspec, REST/JSON/XML, 走ogle Apps Script...

德克斯特H.
$80/hr
  • 红宝石
  • t
  • 的iOS
  • 的CSS3
  • 反应
  • 的HTML5
  • Vue.js
  • 角度的
  • 安卓
  • 的JavaScript
  • 反应本机

我是一位经验丰富的开发人员,具有多年的架构和创建高度可扩展的,可靠的应用程序的经验。 多年来,我从事过许多项目,从创建CMS项目到用于iOS和Android的移动应用程序。最近,我一直在使用React和ReactNative开发Web和移动应用程序。 我想接受具有挑战性的项目,这些项目将帮助我获得新技能并开阔视野。 Thanks

杰西·F。
$85/hr
  • 红宝石
  • 的PHP
  • 萨斯
  • jQuery的
  • WebRTC
  • WordPress的
  • 角度的JS
  • 的JavaScript
  • Backbone.js
  • 红宝石 on 滑轨
  • 套接字编程

I am a freelance web developer with about 12 years of experience. For the last 8, I have been working with 红宝石 on 滑轨 and some front-end library/framework every day. I also do a lot of work with 的PHP, and 的PHP in WordPress的. I have experience with 角度的, 反应, Stimulus, and Backbone. 我会尽可能进行测试驱动的开发,并且我熟悉许多现代测试工具。

鲁斯兰·R。
$35/hr
  • 红宝石
  • 的SQL
  • API
  • Heroku
  • 红宝石 on 滑轨
  • API开发
  • 后端Rest API
  • 的MySQL编程
  • PostgreSQL的程式设计

你好! My name is Ruslan, i`m Back-End developer with passion to 红宝石 with 3 years 红宝石 on 滑轨 experience and 10 years experience in web development. 可以做不同级别的项目。 最重要的是:可以并且想工作! - 红宝石, 红宝石 on 滑轨; - 红宝石 宝石; - PostgreSQL的, 的MySQL; - 吉特; - Heroku, AWS; - Etc.

德米特里(Dmitriy S.)
$24/hr
  • 红宝石
  • AJAX
  • HAML
  • 的HTML
  • 的MySQL
  • jQuery的
  • MongoDB
  • PostgreSQL的
  • CoffeeScript
  • 红宝石 on 滑轨

我在RoR编程方面有7年以上的经验。 寻找我可以从事的有趣且具有挑战性的项目,以运用我的技能并获得丰富的经验。 我是一个全栈开发人员,这意味着我在后端和前端都很强大。 而且我可以帮助您将您的出色创意带给世界!

克劳迪娅·B。
$40/hr
  • 红宝石
  • 吉特
  • 的HTML
  • 的CSS3
  • 规范
  • jQuery的
  • Vue.js
  • 引导程序
  • 的JavaScript
  • 红宝石 on 滑轨

我从事商业Ruby on 滑轨项目已有近4年的时间了。现在,我决定在Upwork上试试运气。我的职业生涯开始于出版业,在那里我从事开发工作,并着眼于设计和清洁解决方案。这种经验极大地帮助了我进行Web开发,因为我确切地知道我的客户在寻找什么。在我的工作中,我遵循非常简单但有效的行为准则。在制定决策之前,我总是倾听客户的意见,并通过提前了解自己的技能和能力来珍惜他们的时间。我的英语也流利,可以进行书面和口头交流。在编写代码时,我坚持两个非常……

吉安
$20/hr
  • 红宝石
  • WordPress的
  • 的JavaScript
  • WordPress的主题
  • WordPress的插件
  • PSD到Wordpress
  • WordPress的网站
  • WordPress的多站点
  • 网站开发
  • WordPress的电子商务
  • WordPress的的繁荣主题

WordPress的开发人员,专门从事自定义PHP,WooCommerce&全栈WordPress开发,具有丰富的PHP经验&WordPress网站,WooCommerce-电子商务门户&Web应用程序开发。 我非常精通WordPress网站主题设计,自定义,插件开发,扩展开发,软件集成以及构建创新的,高度定制的,健壮的,功能丰富的模块化WordPress网站开发解决方案。 我负责设计和实施新的创新功能,建立PHP-WordPress网站的体系结构,确保高性能和...

伊万一世
$45/hr
  • 红宝石
  • 爪哇
  • 的MySQL
  • jQuery的
  • 的JavaScript
  • PostgreSQL的
  • 红宝石 on 滑轨
  • 春季框架
  • Twitter的引导

Skilled Back-End developer with background in different programming languages and platforms. Have been working on a number of corporate web apps for U.S. market. 红宝石 on 滑轨, NodeJS, 爪哇. Prefer to work with 滑轨 these days. 我通常也可以处理前端任务,但是没有像Angular或React这样的超级花哨的东西。

Volodymyr K.
$12/hr
  • 红宝石
  • 的CSS3
  • 瓦蒂尔
  • 的HTML5
  • 草图
  • 西纳特拉
  • 网络刮板
  • 数据搜集
  • 数据结构
  • Adobe Photoshop

你好。 我正在解析网站上的数据。我正在学习Ruby编程语言,并且了解如何将重要数据放置在Internet上。因此,我开始处理此事。我可以从您提供的站点中提取数据,并以对您方便的格式进行显示。 我使用Nokogiri,Watir,Xpath,RageEx工具工作。

希特什k。
$22/hr
  • 红宝石
  • 吉特
  • 的PHP
  • Joomla
  • jQuery的
  • Heroku
  • 红宝石 on 滑轨
  • Zend框架
  • Apache Subversion(SVN)
  • 安卓 App开发

-排名最高的开发人员 -记录了超过3K小时 -收到了50多个反馈 -50+成功完成工作 我是React js的专家,React Native,Node js的开发已有8年的工作经验,我一直在寻找提高矿山技能,使矿山客户对这件事感到满意并尝试与他们建立长期关系的好机会。

维杰C.
$25/hr
  • 红宝石
  • OAuth
  • 规范
  • jQuery的
  • Heroku
  • 黄瓜
  • 的JavaScript
  • 红宝石 on 滑轨
  • Twitter的引导

I am full stack 红宝石 on 滑轨, 反应 and 反应-Native developer having 6 years of experience. I have developed couples of web application using 红宝石, 红宝石 on 滑轨, 的JavaScript, and TDD/BDD, 引导程序. 我在API开发,API集成,Ruby Gem开发以及Ruby Gems,GIT / SVN和项目管理工具的定制方面也有经验 我在Heroku,EC-2,Digital Ocean上部署Web应用程序方面具有丰富的经验。 I love to work with 红宝石 on 滑轨, 的JavaScript, TDD/BDD. I prefer to use Agile software development. 我获得了计算机硕士学位 我每周可以工作40个以上。 我最好的关键技能是: My Skiils are: Core -...

Yoandro G.
$75/hr
  • 红宝石
  • 的PHP
  • 的MySQL
  • 拉拉韦尔
  • 的JavaScript
  • 数据科学
  • API开发
  • 网页程式设计
  • 剧本& Utilities
  • 支付网关集成

我从事软件行业超过20年。我的一些技能是PHP,Ruby,C#,C ++,Javascript,JQuery,AngularJS,VueJS,HTML5,CSS,UNIX Shell脚本,UNIX / Linux环境,服务器/基础架构设置和管理,MVC框架(如Laravel,Zend,Symphony和代码点火器,数据库设计和管理,响应式设计和渐进式应用程序。我的一些客户包括麦当劳,沃尔玛,Lyft,现代汽车。我曾担任高级开发人员,首席开发人员,解决方案架构师,CTO和顾问。位于美国佛罗里达州奥兰多市。 CONSULTANT AND CTO: 我曾与多家初创公司合作,组织他们的工作流程,...

尼古拉·B。
$50/hr
  • 红宝石
  • 吉特
  • 的HTML
  • AJAX
  • 萨斯
  • 规范
  • 反应
  • 蟒蛇
  • 角度的JS
  • 红宝石 on 滑轨

在过去的几年中,我为小型和大型公司开发了许多项目。 Main stack: Ruby on 滑轨, 蟒蛇, Django的, 反应.js, 角度的, Vue.js, Twitter的引导, 的HTML, 的CSS, My 的SQL, PostgreSQL的, AWS, Linux. 寻找可以通过高质量和可维护代码来应用高质量标准的团队和长期机会。

路易斯F.
$65/hr
  • 红宝石
  • 条纹
  • 应用程式开发
  • 项目管理
  • 网站开发
  • 网站原型

☑️最高评分网站开发人员|适用于个人,初创公司和企业的复杂网站/应用程序。 有一个新网站/应用程序的主意吗?您的企业是否需要特定的工具,并且没有在线服务可以提供您想要的东西?让我们一起构建它! 我是可以将您的想法变为现实的网站开发人员。即使您仅有一个模糊的描述,或者只是一个业务难点,您也不知道如何解决。 我可以开发可以执行以下操作的网站: *创建帐户并登录。 *使用地理位置功能(Google地图等)。 *创建报告(PDF,Excel等)。 *创建内容,博客文章,托管视频,图像,...

Artur K.
$40/hr
  • 红宝石
  • 的SQL
  • 规范
  • Ansible
  • 单元测试
  • 红宝石 on 滑轨
  • 自动化测试
  • 整合测试
  • 持续集成
  • Unix系统管理

超过20年的IT经验:在UNIX环境中使用Ruby和Python开发,实现和维护服务器和客户端Web应用程序。 今天的主要编程语言是Ruby。但是除此之外,我还使用Python。有时会做一些小型项目或使用其他语言(如Swift,C ++,Java等)进行修复。当然,我经常使用javascript,因为我必须处理前端。 自2005年以来(兼职或全职)开始从事自由职业者的工作,大部分时间我致力于Web项目的支持(错误修复,更新,各种改进和新功能实现),因此要处理遗留代码和由...编写的代码。

想要浏览更多
自由职业者?
注册
$ /小时

这个怎么运作

1. 发布工作(免费)

告诉我们您的项目。 上班将您与世界各地或您附近的顶尖人才联系在一起。

告诉我们你需要什么。 上班将您与世界各地或您附近的顶尖人才联系在一起。

2. 自由职业者来找你

在24小时内获得合格的建议。比较出价,评论和先前的工作。面试最爱并雇用最合适的人。

在24小时内获得合格的建议。比较出价,评论和先前的工作。面试和录用。

3. 轻松协作

使用Upwork可以通过台式机或移动设备进行聊天或视频通话,共享文件并跟踪项目里程碑。

使用Upwork可以通过台式机或移动设备进行聊天或视频通话,共享文件并跟踪项目里程碑。

4. 付款简化

按小时或固定价格付款,并通过Upwork接收发票。支付您授权的工作。

按小时或固定价格付款,并通过Upwork接收发票。支付您授权的工作。

受到5M +企业的信任

如何雇用顶级Ruby开发人员

如何雇用Ruby开发人员

从网站和特定领域的语言(DSL)到桌面应用程序和IoT设备,Ruby开发人员都拥有后端编程专业知识,可以使您的软件项目栩栩如生。

So how do you hire 红宝石 developers? 什么 follows are some tips for finding top 红宝石 development consultants on 上班.

如何入围Ruby开发专业人员

当你’重新浏览可用的Ruby开发顾问,对您可能要面试的专业人员进行筛选可能会有所帮助。您可以根据以下条件筛选配置文件:

  • 技术适合。 无论’s mruby for IoT or 红宝石 on 滑轨 for web development, you want a 红宝石 developer who is familiar with the type of software you’re trying to build.
  • 测试驱动开发(TDD)。 避免在发布之日陷入陷阱的最佳方法是在开发过程中进行频繁测试,并获得最终用户的反馈。
  • 反馈。 查看过往客户的评论中是否有发光的推荐或危险信号,可以告诉您什么’喜欢与特定的Ruby开发人员合作。

如何撰写有效的Ruby开发职位

考虑到您理想的Ruby开发人员的清晰情况,’是时候写那份工作了。虽然你不’不需要像雇用员工时那样完整的工作描述,力求为承包商提供足够的详细信息,以了解他们是否’重新适合该项目。

职位名称

创建一个简单的标题来准确描述您的内容’重新寻找。这个想法是针对您理想的候选人可能会在工作搜索栏中键入的关键词以找到您的项目。以下是一些示例Ruby职位职位:

  • Back-end developer needed with 红宝石 on 滑轨 experience
  • Full-stack 红宝石 on 滑轨 developer needed.
  • 红宝石程序员需要构建特定于域的语言(DSL)

红宝石项目描述

有效的Ruby职位应包括:

  • 工作范围: 从MVP(最少可行的产品)到功能齐全的SPA(单页应用程序),列出您的所有可交付成果’ll need.
  • 项目时长: 您的工作岗位应指出这是一个较小的项目还是较大的项目。
  • 背景: 如果您更喜欢某些行业,软件或开发人员工具的经验,请在此处提及。
  • 预算: 设置预算并记下您对小时费率与固定价格合同的偏好。

红宝石开发人员的工作职责

以下是Ruby开发人员工作职责的一些示例:

  • 将技术要求和UI / UX设计转换为代码
  • Integrate UI to a 红宝石 on 滑轨 back end
  • 处理应用程序的数据库设计和业务逻辑层
  • 构建,测试,部署和维护由Ruby驱动的应用程序

红宝石开发人员要求和资格

确保包括您的任何要求和资格’重新寻找Ruby开发人员。这里有些例子:

  • 红宝石编程语言
  • 适用于IoT设备等嵌入式系统的mruby
  • 红宝石 on 滑轨 for back-end web development
  • RESTful服务,API和第三方库集成
  • 进行单元测试的经验
  • 版本控制系统,例如GitHub

红宝石开发人员FAQ

什么 is 红宝石?

红宝石及其框架Ruby on 滑轨(“Rails”),是一种极其高效的高级后端编程语言—a big draw for start-ups and small development teams that need to get complex, heavy-traffic applications up and running in a short time. 滑轨 lightens the workload for developers with a library of “gems”—预包装的代码可以极大地简化开发。

但是真正使Ruby与众不同的是—特别是与最大的竞争对手Python竞争时–is “程序员的幸福。”Ruby吸引了许多喜欢它优雅的开发人员 “do more with less” philosophy—这些开发人员需求旺盛。

雇用Ruby开发人员需要多少费用?

确定雇用Ruby开发人员的成本的第一步将是定义您的需求。价格可能会受多种因素影响,包括专业知识和经验,地理位置和市场条件。了解有关 聘用Ruby开发人员的成本.

红宝石开发人员常见错误

过度使用method_missing: 没有人喜欢重复的代码,使用method_missing进行元编程是我们想要投入到我们的代码中的那些有罪的愉悦包罗万象之一,以避免在运行时出错并使其正常工作。

是否需要允许一个类快速使用另一类中可用的方法?

使用method_missing。

有很多方法,但是不要’不想给它们都明确命名?

使用method_missing。

是否需要建立许多几乎相同的方法,除了一些细微的差异?

使用method_missing。

那里’method_missing只是一个问题:它’慢。每次调用method_missing时,Ruby运行时都必须爬上您的类链层次结构,以找到实际上可以完成繁重工作的方法,从而使您的代码能够正常工作。大多数基准测试表明,与使用普通的旧Ruby方法相比,method_missing在运行时要慢得多。用于上面的示例情况的更快的元编程工具是define_method,它使您能够动态定义在加载类时加载的方法。

那么什么时候应该使用method_missing呢?当你’重新处理基于模式的动态命名方法,您可以’•合理期望能够预测所有可能的方法名称组合。红宝石’自己的Active Record动态查找器可能是最好的例子。例如,如果您想从大量用户数据中通过电子邮件查找用户,并且您的用户具有电子邮件属性,则可以使用User.find_by_email(‘john.doe@example.com’),即使您从未在User或ActiveRecord :: Base类下明确定义该方法。

Relying too heavily on 宝石: 每个新的Rails开发人员都在职业生涯中达到了某个特定点,成为RubyGems存储库中警笛声的牺牲品。你怎么能抗拒?红宝石’充满活力的开源社区支持广泛的宝石目录。在身份验证方面需要帮助吗?尝试设计。授权呢?可以可以’s让你受够了。如果有’这是您需要帮助的任务,很有可能在那里’s a gem for that.

不幸的是,就像生活中所有其他事情一样,’s possible to have too much of a good thing. As powerful as 宝石 are, there comes a point where you’ll begin to notice a trade-off between programmer productivity and performance with every new gem. Too many 宝石 can slow down performance, drain resources, and make tests take longer.

膨胀的Gemfile可能会成为将来破坏应用程序的bug的嵌套地。较高质量的宝石会尽量减少依赖性,但是如果您不是’小心,您可能会发现自己管理着数百个宝石。到那时,通过减少代码编写量而获得的任何生产力都被管理依赖关系,追踪隐藏的错误以及使应用程序保持最新状态所吞噬。

什么’s the solution? Moderation. Before you download a gem, ask yourself whether you can justify its use of resources and whether you need all the functionality that it has to offer. Being selective about your 宝石 can help keep your application lean.

应用程序逻辑渗透到视图中: 红宝石 on 滑轨遵循MVC(模型-视图-控制器)模式,其中模型负责数据,视图是数据的可视化表示,控制器构成了两者之间的桥梁。此模式的目标是使应用程序的主要角色脱钩,从而促进有效的代码重用并允许并行开发。当您开始偏离这些角色时,实现该目标变得困难。

视图应仅与视觉表示有关。但是,将应用程序逻辑潜入ERB模板中可能很诱人,如下所示:

<h2>
恭喜啦
<%,如果winning_player%>
<%= winning_player.name%>
<% else %>
选手
<% end %>
</h2>

将应用程序逻辑放入单个视图中的效率低下不仅会导致重复代码,而且随着应用程序的扩展,管理大量的Ruby和HTML代码会使维护变得更加困难。最好将该逻辑封装到可重用的辅助函数,演示者或装饰器中。

服用“胖模型瘦控制器” too far: 控制器可以执行很多事情,从会话处理到呈现和重定向—但是基本上可以归结为模型和视图之间的中间人,接收请求并提供适当的输出。默认情况下,控制器上已经放了很多东西。为了防止在控制器中填充模型或视图逻辑的诱惑,“胖模型瘦控制器”原理诞生了。问题解决了吧?

并不是的。现在,膨胀的问题已被转移到模型上。每个模型都应对应于数据库中的数据表。该模型’相应的数据表应由其负责。为了使视图和控制器保持精简,可能会尝试抛弃所有不’非常适合模型中的MVC范例。事实证明,困扰视图和控制器的许多维护问题也扩展到了模型。解决方案是使用PORO(普通的旧Ruby对象)来封装不’非常适合任何MVC类别。

使您的代码容易受到SQL注入的攻击: It’这是黑客手册中最古老的技巧之一—SQL injection, which involves taking advantage of user input fields to gain direct access to a 的SQL database. In 滑轨, this vulnerability is found where user input is required (for instance, typing in a search field) to query data from a database. The traditional approach to handling a query for a username would look something like this:

user.find_by(name: params [:name])

This approach is vulnerable to 的SQL injection. Fortunately, in 滑轨 we have Active Record dynamic attribute-based finders, which work as parameterized queries that can properly handle the passed argument, avoiding 的SQL injection.

user.find_by_name(name)

除了使用动态查找器之外,它还有助于仅接受和构造来自外部输入(例如搜索查询和表单)的值。切勿构造INSERT和DELETE之类的SQL命令,而不要’将不受信任的输入发送到Active Record库中接受原始SQL查询,表名或列的方法。

提示和最佳做法

充分利用Ruby开发者社区

红宝石可能不是最流行的后端脚本语言,但是使用它的人都喜欢它。 红宝石的创建是出于程序员的幸福感,当您查看Ruby时,这一点显而易见’庞大的宝石库—针对常见软件开发问题的即用型解决方案。如果您需要快速地对项目进行原型设计,则可以立即从gems和样板代码中组装出一个应用程序。

使用符号代替哈希中的字符串

红宝石有一种称为符号的特殊数据类型,用于存储不必更改的变量的名称。符号以冒号作为前缀,例如:symbol。与可变的字符串不同,符号是不可变的,并且仅占用内存中的一个位置。

不变性是哈希的完美选择,因为您不会’希望您的哈希键更改。散列与数组相似,除了它们可以使用任何对象作为索引。

shopping_list = { :cinnamon => 1, :butter=> 2, :soda => 6}

符号也比字符串更节省空间,因为将多个变量设置为等于同一符号将访问内存中的相同位置。

经常测试您的代码

测试驱动开发著名地采用了测试优先和代码后期方法进行软件开发,如下所示:

  • 红: 为失败的软件功能编写测试
  • 绿色: 编写通过测试所需的最少代码
  • 重构: 将您传递的代码重写为最佳做法

除非您已经练习过TDD,否则似乎很难将常规的软件测试视为除生产前必须捕获尽可能多的bug之外的必要弊端。

值得庆幸的是,Ruby尝试通过在标准库(minitest / unit和test / unit)中为您提供实施它所需的一切,来简化TDD。在这两个测试框架之间,您应该能够通过定期创建单元测试来养成编写更安全的代码的习惯。一旦您编写单元测试很舒服,就完全不需要练习TDD。’t so daunting.

少看
了解雇用一名Ruby开发人员需要多少费用& Programmer
图标锚链接
桌面资源平铺背景
平板电脑的资源平铺背景
手机资源图块背景
申请演示