Ruby on Rails (or Rails), is an open source framework aimed at fast tracking web development projects. Like Ruby, Rails was made to maximise developer happiness and productivity, which is highlighted through their core principle of “Convention over configuration”. To put it simply, Rails allows you to quickly start the development of your application and design your web pages, without the laborious process of setting up and connecting all the files together.
Le Wagon teaches Ruby as a programming language and at the end of the program the students build their own web application using the Ruby on Rails framework. Thanks to Rails they manage to build complex applications in just 10 days.
History
Rails was created in 2003 by
DHH, while working at Basecamp. At the time, Basecamp was a web agency in the US called 37 signals. They realised that a lot of their projects had similar needs. That’s when DHH thought of putting all the common behaviour into a framework so developers wouldn’t need to repeat the same process every time. Essentially a web application boilerplate.
It was initially used internally to deliver faster projects. It was then extracted and officially released as open source code in 2004.
The release to open source contributors is one of the reasons why the framework is so popular today. With more than
5000 contributors to date, Rails keeps getting better.
Here’s a brief history of the major releases of Rails
1.0 December 13, 2005 1.2 January 19, 2007 2.0 December 7, 2007 2.1 June 1, 2008 2.2 November 21, 2008 2.3 March 16, 2009 3.0 August 29, 2010 3.1 August 31, 2011 3.2 January 20, 2012 4.0 June 25, 2013 4.1 April 8, 2014 4.2 December 19, 2014 5.0 June 30, 2016 5.1 April 27, 2017 5.2 April 9, 2018 6.0 August 16, 2019
Doctrine
The
Rails Doctrine is a must read for all developers using the framework. It summarises the principles behind the framework.
The first three are especially important for our students to know:
- Optimised for developer happiness
This is why DHH chose Ruby as a programming language and not PHP, even though it was more popular for web development than Ruby back then. Ruby is also built to make developers happy and enjoy the coding process. It’s for the same reason that we chose Ruby as a first programming language to learn for our students.
- Convention over Configuration
Instead of having to spend hours setting up the projects and all the files together, if you follow the Rails convention, your files will be connected without you having to do anything. This allows the developer to work on the “interesting” aspect of the web application without worrying about the boring configuration process.
In a restaurant you often lose a lot of time looking at the menu and studying everything on there. Most of the time, you’re better off asking the chef what he recommends. Rails follows the same principle. When developing apps you could spend hours researching and debating which tools to use. Rails have done all the legwork for you, and if they chose this technology, you should trust that it is indeed the best one. This is especially important for junior developers, as the large number of tools available can be extremely daunting. However with Rails you can stick to, and trust, what you’re given.
How Does the Rails Doctrine Evolve Over Time?
The Rails Doctrine, a set of guiding principles for Ruby on Rails development, evolves over time to balance innovation with stability. Here’s a breakdown of the key aspects:
- Progress over Stability: While stability is important, Rails strives to embrace new technologies and improve the framework. However, major changes are carefully considered to avoid breaking existing applications.
- Focus on Developer Happiness: Rails aims to make development enjoyable and productive. This involves features that simplify common tasks and reduce boilerplate code.
- Convention over Configuration: Rails encourages the use of established conventions for code structure and organization. This reduces the need for excessive configuration and makes code easier to understand.
- Pragmatism over Purity: Rails prioritizes practical solutions that get the job done over strictly following theoretical ideals.
As technology advances, the Rails Doctrine adapts:
- New Technologies: Integration with modern tools and libraries happens while maintaining core principles.
- Addressing Complexity: As Rails matures, the focus might shift towards managing complexity within large applications.
- Community Feedback: The Rails community plays a role in shaping the evolution of the doctrine through discussions and contributions.
Overall, the Rails Doctrine remains a valuable guide for building web applications with Ruby on Rails. It adapts to ensure developers have a productive and enjoyable experience while keeping pace with advancements in the web development landscape.
Advantages and Challenges of the Rails Doctrine
The Rails Doctrine provides a structured approach to building web applications with Ruby on Rails, emphasizing convention over configuration and simplicity. Here, we explore the key benefits of following the Rails Doctrine and some challenges that developers might encounter.
Advantages of the Rails Doctrine
- Productivity: The Rails Doctrine promotes productivity by establishing clear conventions for structuring code and building applications. Developers don’t need to spend time deciding on naming conventions, directory structures, or basic configuration. This standardized approach reduces decision fatigue and allows teams to focus on developing features, ultimately speeding up the development process.
- Consistency: Adhering to the Rails Doctrine ensures that Rails applications have a consistent structure, making it easier for developers to understand and work on existing projects. This consistency is especially valuable in collaborative environments, where multiple developers contribute to a project. It also enhances code readability, simplifying maintenance and reducing the risk of introducing bugs.
- Community and Ecosystem: By following the Rails Doctrine, developers can take advantage of the vast Rails ecosystem, including libraries, gems, and plugins that align with Rails conventions. This ecosystem accelerates development by providing pre-built solutions for common tasks, reducing the need to reinvent the wheel. The strong Rails community offers support and guidance, fostering knowledge sharing and problem-solving.
Challenges of the Rails Doctrine
- Reduced Flexibility: The Rails Doctrine’s emphasis on conventions can limit flexibility. Developers accustomed to a more flexible approach might find the constraints of Rails restrictive. This rigidity can make it challenging to implement custom solutions or adapt the framework to unique requirements.
- Complexity in Large Applications: Although the Rails Doctrine promotes simplicity, large-scale applications can become complex over time. As applications grow, maintaining the conventions and structure outlined by the Rails Doctrine can become challenging. Developers might need to create workarounds or deviate from conventions to manage complexity, leading to potential technical debt.
- Learning Curve: While Rails is beginner-friendly, the Rails Doctrine’s conventions can present a learning curve for those new to web development. Developers need to understand the prescribed structure and best practices to navigate the Rails framework effectively. This learning curve might require additional time and effort for newcomers to become proficient in Rails development.
Overall, the Rails Doctrine provides a solid foundation for building robust and scalable web applications, with a focus on productivity and consistency. However, developers should be aware of the challenges and find a balance between following conventions and maintaining flexibility as their projects evolve.
Gems
Although Rails has managed to build a really strong community, Ruby has an even stronger one! Lots of gems are available to fast track or help with development even further. All the gems can be found on
RubyGems.
Another useful website is
Ruby Libhunt, which is a collection of popular gems that are continuously maintained and improved.
Choosing a good gem for a project can be a complicated task. So here’s what you should ask yourself when selecting a gem:
- How many people ⭐️it?
- Is the documentation clear and well written?
- Is the gem still maintained? (i.e. when is the last time an update was released)
Finally if you’re still not sure which gems to use, feel free to ask one of your teachers at the bootcamp.
Web developer bootcamp