Four Reasons Why Rails Rocks at Wolox!
- We build technological solutions for startups.
- We need to be fast.
- We need to be productive.
- We need to deliver.
We believe in turning over Wolox’ products rapidly. In order to validate an idea, we need to test if there is a potential market for it. We need to be able to build a Minimum Viable Product without reinventing the wheel. Thankfully, Rails gives us that possibility.
With a great set of tools, we only have to learn how to use and combine them to come up with the best solution for our clients. Want to add Angular to your Rails app? Go for it! There are gems that will help you out. Need to add authentication and authorization to your app? Devise and Pundit are great gems, but not the only ones.
Rails’ tools help our developers build our apps as fast as possible without sacrificing code quality. We can easily customize Rails to suit our product’s needs. Whether we want to build a REST API + SPA, a complex web app or a simple administrative system with ActiveAdmin, we always have a way of bringing our client’s idea to life.
Even testing is easy and simple to do. Rspec and Factory Girl come to the rescue when we need to make a solid app! Rspec’s DSL encourages developers to follow Behavior Driven Development which results in well tested applications. When teams grow bigger, well tested applications are key in maintaining productivity and quality levels.
Database management is completely transparent with Rails. We rarely find ourselves writing custom SQL queries. Common queries can easily be executed with ActiveRecord in one line of code. We are free to choose the database that best fits our requirements. It is just a matter of finding the correct adapter gem and that’s it. Migrations are solved out of the box and rolling back database migrations is as simple as rake db:rollback.
A common perception of Rails is that code ends up being messy and out of control. The truth is that this depends on you! There are many patterns that can help you organize your code. At Wolox we chose Data Context Interaction for reasons I will be discussing in our next post, but you can pick the one that best suits your needs. We also use tools such as Rubocop and CodeClimate to help us keep our code clean and as close as possible to the Ruby’s style guide.
Leaving Rails’ technical features aside, there is a huge community of developers out there developing awesome gems and willing to help others. We use Rails For Zombies as a starting point for our junior developers and then move forward by building a small application that uses most of the tools mentioned above. Rails documentation is complete and detailed. It is an excellent resource when we are not sure how something works in Rails.
See also: Introducing Loadjs
We also tried developing with some other frameworks built on top of Node.js. Even though we are aware of their advantages and got good results after using them, they did not fit into our development flow as smoothly as Rails does. Some of the basic things we do to build the app require greater effort and are therefore more time consuming. Fox example, mapping objects into relational databases. 99% of the apps we build solve problems that are best mapped into relational databases rather than non-relational.
We are constantly looking at new frameworks and improvements to the existing ones that might make our development processes smoother and may help us meet our goals quicker, without losing code quality.
We believe that choosing the best tool for developing apps depends on the context of your project. Ruby and Rails have proven to be solid partners for fast development and quick prototype building, while ensuring reliability and quality code. We have been improving and validating our workflow to maximize our productivity for the last two years. The work has paid off.
Posted by Matías De Santi (matias.desanti@wolox.com.ar)