Hire the Top 3% of Freelance Ruby on Rails Consulting Specialists
Toptal是一个面向顶级Ruby on Rails专家和顾问的市场. Top companies and startups choose Toptal’s Ruby on Rails web development services for their mission-critical software projects.
Jano是一名全栈开发人员,也是数据库领域的创始人. Using PostgreSQL, he has worked on database services with government data, recommendation engines, 和性能优化项目,有创业经验, consulting, and leading small teams. Jano has a master's degree (summa cum laude) in software engineering from the Slovak University of Technology in Bratislava.
Building a cross-platform app to be used worldwide
挖掘实时数据将改变行业的游戏规则
Testimonials
Tripcents wouldn't exist without Toptal. Toptal Projects使我们能够与产品经理一起快速发展我们的基金会, lead developer, and senior designer. In just over 60 days we went from concept to Alpha. 其速度、知识、专业知识和灵活性是首屈一指的. Toptal团队是tripcents的一部分,就像tripcents的任何内部团队成员一样. 他们像其他人一样贡献并拥有开发的所有权. We will continue to use Toptal. As a startup, they are our secret weapon.
Brantley Pace
CEO & Co-Founder
I am more than pleased with our experience with Toptal. 和我一起工作的专业人员在几个小时内就和我通了电话. 在和他讨论了我的项目后,我知道他就是我想要的候选人. 我立即雇用了他,他没有浪费时间就完成了我的项目, 甚至通过添加一些很棒的设计元素来增加我们的整体外观.
Paul Fenley
Director
与我合作的开发者都非常出色——聪明、有动力、反应灵敏. 过去很难找到高质量的工程师和顾问. Now it isn't.
Ryan Rockefeller
CEO
Toptal understood our project needs immediately. 我们遇到了一位来自阿根廷的杰出自由职业者, from Day 1, immersed himself in our industry, blended seamlessly with our team, understood our vision, and produced top-notch results. Toptal使与高级开发人员和程序员的联系变得非常容易.
Jason Kulik
Co-Founder
作为一家资源有限的小公司,我们不能犯代价高昂的错误. Toptal provided us with an experienced programmer who was able to hit the ground running and begin contributing immediately. 这是一次很棒的经历,我们会马上再来一次.
Stuart Pocknee
Principal
如何通过Toptal聘请Ruby on Rails咨询专家
1
Talk to One of Our Industry Experts
Toptal的工程总监将与您一起了解您的目标, technical needs, and team dynamics.
2
Work With Hand-Selected Talent
几天之内,我们将为您的项目介绍合适的Ruby on Rails咨询专家. Average time to match is under 24 hours.
3
The Right Fit, Guaranteed
与您的新Ruby on Rails咨询专家一起试用一段时间(只在满意的情况下付费), 在订婚前确保他们是合适的人选.
Find Experts With Related Skills
Access a vast pool of skilled developers in our talent network and hire the top 3% within just 48 hours.
At Toptal, we thoroughly screen our Ruby on Rails consulting specialists to ensure we only match you with talent of the highest caliber. Of the more than 200,000 people who apply to join the Toptal network each year, fewer than 3% make the cut. You’ll work with engineering experts (never generalized recruiters or HR reps) to understand your goals, technical needs, and team dynamics. 最终的结果是:经过专家审查的人才从我们的网络,定制匹配,以满足您的业务需求.
我可以在不到48小时内通过Toptal聘请到Ruby on Rails咨询专家吗?
Depending on availability and how fast you can progress, 您可以在注册后48小时内开始与Ruby on Rails咨询专家合作.
Toptal Ruby on Rails咨询专家的无风险试用期是多长?
We make sure that each engagement between you and your Ruby on Rails consulting specialist begins with a trial period of up to two weeks. 这意味着你有时间确认订婚是否成功. If you’re completely satisfied with the results, 我们会给你开时间单的,你愿意多久我们就多久. If you’re not completely satisfied, you won’t be billed. From there, we can either part ways, or we can provide you with another expert who may be a better fit and with whom we will begin a second, no-risk trial.
Share
你准备好雇用Ruby on Rails开发人员的八个明显迹象
Ruby on Rails development is trending for many reasons, 但最重要的是你开始使用它有多容易.
想建立一个简单的网站或一些平台与管理面板? 除了纯Rails及其默认安装的gems之外,您几乎不需要更多的东西. In a couple of hours, you can end up with something really nice-looking and almost ready to deploy.
But then, requirements start to grow.
Indeed, 这些基本技能不足以持续交付稳定的应用程序, easy to maintain, and has really good performance. There are so many factors when dealing with complex applications that require really good knowledge of Rails and its capabilities.
只有经验丰富的专业人士才能给你最好的解决方案.
As a project owner or manager, sometimes you’ll already know you could use more help as your day-to-day team administration duties grow. 但在某些情况下,正是您的代码揭示了这种需求, 只有一个Ruby on Rails咨询专家就足够了.
您可以使用以下情况来确定应用程序何时达到这一点.
1. Outdated Gems, Rails, or Ruby Versions
这是我们在Rails开发中最常见的情况之一. 应用程序使用的gem甚至是Ruby版本都是非常老的. Sometimes they don’t even have support anymore. It’s really important to try to keep everything, from tools to databases, as updated to the last stable version as possible.
Rails本身是应该更新的最重要的东西之一. Its releases sometimes focus on security. 这是你永远不应该避免的事情之一,原因很明显.
Rails以在每个新版本上提供一些非常有趣的特性而闻名 minor version. Maybe that feature that was not available months ago is now ready and really well tested in some other gem. 您的项目将不再需要它所使用的定制代码.
With this switch, 开源社区可以减轻项目的一些维护负担.
But outdated dependencies can bring so many headaches, 特别是因为一些版本彼此不兼容. 专家已经习惯于处理这些问题,同时使您的项目保持最新状态. Better still, they will know where to use techniques or features available in the new versions to improve all sorts of aspects of your project.
在那之后,你的项目将处于一个更好的位置来保持最新.
2. No Integration Tests
These are different from unit tests, 理论上,哪一种是用来测试一段代码并“模拟”大多数外部行为的. In contrast, 集成测试是尽可能接近用户体验的自动化测试.
Setting up integration tests is one of those time-consuming tasks that most developers simply ignore. Later on in the project, when they feel the need for it, it’s often too much of an obstacle to bother with.
But it’s even more time-consuming, and sometimes even resource-consuming, to rely on manual tests alone.
有时,要到达需要测试的部分有太多的步骤. Other times, there are too many possibilities to check. Especially in these cases, 花费宝贵的时间检查每一条路径是非常低效的.
这就是集成测试在RoR web开发中派上用场的时候. You can test complete flows, from start to end, and ensure that buttons with the expected texts lead to the correct locations and the application is all perfectly tied up.
PhantomJS 是为依赖JavaScript的页面和进程创建测试的工具吗. It provides you a powerful manner in which to run tests that would otherwise have to be done by a QA employee.
如果您不断增长的应用程序还没有这种自动化测试, 一个非常了解集成测试的Rails专家可以为您节省大量时间. There are so many gems and inherited tests that can be implemented that don’t require too much time and will save a lot of headaches in the future.
3. Too Much Logic in the Controllers
这是一个常见的场景,特别是在新的Rails开发人员中. 他们倾向于认为处理数据库条目的任何逻辑, form data, security checks, or anything else should go right in controllers. (And sometimes even worse, in views.)
It’s easy to think that. This is a more neutral place where everything connects and there is some sense that this is a “place where things happen.”
But it’s among the very core concepts of RoR development: Controllers should be very thin and as similar as possible to each other, while models hold the most of the logic.
There are many ways to avoid this problem. A Ruby on Rails specialist will know that the answer isn’t as simple as “move everything to models.”
了解Rails的工作原理,特别是其鲜为人知的内部部分,可以节省大量代码行. 这使您的代码更简单,并更好地关注项目的实际需求, instead of the infrastructure gluing your codebase together.
4. Too Much logic in the Models
Very similar to the last situation, but a little bit less common, 这些模型似乎有几乎无限条线吗. Or, in some other cases, a seemingly infinite number of models, all in the same folder, each one with a name more confusing than the last.
大多数中级程序员最终编写的大型应用程序就像上面描述的那样, and they can hardly figure out how to solve it.
毕竟,我们刚刚说过,模型是用来保存大部分逻辑的. That’s what they’ve conformed to here, isn’t it?
But it’s hardly maintainable.
A Rails consultant will know many ways to solve this and even plenty of coding concepts that can be used to save your app from it in the first place.
You may face a huge change of architecture here by deciding to make your code easier to understand. 但只有那些决定这样做的人才明白它有多有用. They’ve seen the difference it makes in the time it takes to implement a new feature when the code base is readable.
当您的目标是创建一个不仅非常大的应用程序时, 但也很好地模块化和可读性不需要太多的努力, such a refactoring is sometimes the only way. This is one of those life-changing initiatives that separates medium-sized code bases from humongous ones—given the same functionality.
5. Does Not Take Advantage of Using POROs
这是解第3点和第4点的方法之一, 但缺乏经验的开发人员往往不知道如何正确使用它.
也许是因为它可以隐藏在太多不同的名称后面,比如服务或lib. Maybe it’s because it can have different approaches, 就像从特性到gem的方法(将应用程序逻辑的一部分分离到gem中).) Or maybe it’s because these are not interchangeable, yet are all based on the concept of using POROs.
Whatever the case, 没有经验的开发人员可能会错误地使用poro, or worse, not leverage their power at all. Specialists, in contrast, will know how to use POROs appropriately to produce complex and interconnected code that’s still nice to read.
But what are they, anyway?
Plain old Ruby object (PORO) simply means using object-oriented concepts on Ruby classes and objects. Most Ruby developers, especially Rails-focused ones, 我甚至不知道Rails框架背后的语言本身有多强大. 它有很多令人印象深刻的内置功能,可以用来解决日常问题.
If you need a very unique piece of code, sometimes it’s better to build a small structure under the lib path, without relying on other Rails classes. 这样其他开发人员就不会觉得有什么神奇的事情发生了:他们可以阅读, check, and even improve what’s there.
It’s important to know Rails and Ruby very deeply, and then use different solutions for different problems. The framework is built so well that you can take advantage of its features outside of the common MVC structure. 许多模块可以被重用来构建令人惊叹的类,这些类可以作为出色的工具箱, and a specialist will know how to do that.
6. 不采取在MVC类使用继承的优势
It’s a very common situation to find: Every single class inherits from only the default Rails base classes.
This is a really basic approach. 它适用于没有太多内部重复行为的小型应用程序.
But, when things grow, requests should flow from generic to specific, passing through several steps to reach the final result. Rails specialists know that’s desirable: They know that providing a few layers to avoid repetition can save other developers’ time, keeping the code as sharp as possible, and way easier to understand, 因为这些层将是应用程序中非常常见的部分.
When doing this, 真正了解面向对象设计的人可以利用它, saving steps and time to produce a feature. 这是扩展项目最简单的方法之一, and works for almost everything, like models, controllers, and even views. Partials, direct inheritance, and polymorphism not only save development time, 但要确保用户体验的一致性.
不过,要以正确的方式实现这一点,您必须非常好地规划代码.
要在之后解决这个问题,您将需要一位非常熟练的Ruby on Rails咨询专家. 它们不只是分割和分发应用程序的逻辑, eradicating copied and pasted code. 他们还将知道何时使用关注点或服务而不是助手来完成这些工作, keeping your code well-organized.
7. Keeping Everything Under Rails
A common mistake is to think that in web development, once you have decided to use this coding language, with that framework, everything should be under it, or use the same stack.
Any framework will have its limitations. 同样,它也会在某些时候成为这项工作的最佳工具. 大多数框架可以用于项目可能需要的所有内容-但有时, 当涉及到性能时,这会让你非常头疼.
For instance, if you just need some sort of landing page, with some text and links, maybe even some translations, 最好的解决方案是避免使用Rails,而使用类似的东西 Sinatra. Yes, a Ruby on Rails expert will know when not to use Rails for a given task.
保持相同的技术堆栈并不是一家公司应该引以为豪的事情, because it sometimes only shows its limitations regarding expertise in how to solve things with the best tool possible.
并不是说您需要使用几种编程语言和不同的代码标准. Ruby本身就有很多针对不同情况的框架. It has many really easy ways to deliver web-related tools. 但是很多人完全没有意识到框架背后的语言生态系统.
有时,在极少数情况下,也应该讨论使用另一种语言的想法. For instance, Go: It’s similar to Ruby, 并且提供比Ruby更小、更快的消息队列应用程序. However, this will add complexity to your overall project. 如果有正确的理由,这并不一定是一件坏事.
The bottom line: If your application’s needs are growing more complex and more difficult to fulfill, but your tech stack is completely static, 你可能需要一个专家来知道什么时候从Rails甚至从Ruby本身扩展.
8. Too Many Steps to Set Up a Developer Environment
在几个项目中工作的人,或者经常更改项目的人,可能会面临这种情况. Each project has its own tools and processes that require many steps to get a development environment up and running.
同样,有许多简单且不太耗时的解决方案. 但只有有过这种经历的人才能有效地解决这个问题.
如果你的项目需要超过15分钟的时间来设置,它可能需要一些自动化. Rails was developed to be basically cloned and run, and the way it does that allows you to extend its original behavior and execute any project-specific steps before starting its web server.
缺乏经验的开发人员不了解Rails web服务器, like Puma and Webrick, tend to create custom code, layers, 甚至一些gem来确保开发环境正确运行. Only someone who knows RoR web development very well, and stays current with its tool and web server ecosystems, can provide a suitable answer.
Once their answer is implemented, 你雇用的下一个开发人员可以在不到15分钟的时间内开始工作.
When a Ruby-on-Rails Expert is Essential
It’s clear that the difference between a new Rails developer and a RoR specialist may be found just about everywhere in their work.
新手可能会在短时间内给你提供一些有用的东西, just because Rails allows them that. However, as things grow, someone with a better understanding of what’s under the hood can save you from spending valued resources.
即使你的项目已经开始发展,也为时不晚. Rails顾问仍然可以帮助您的项目变得健康, maintainable, and extendible—and stay that way.
Featured Toptal Ruby on Rails Consulting Publications