Introduction
Welcome to the guide that will introduce you to the beautiful world of Rails. Ruby on Rails is an extensible rich, and popular web framework that lets a developer to create and maintain complex, functional and fast web applications. It provides programmer with a wide variety of tools to rapidly create prototypes of web systems that can be broaden into the full-sized websites with complex logic and various API’s to communicate with browsers and API-based mobile and desktop applications as well. Also it encourages you to follow basic best practices among modern web software developers such as use of version control systems, code separation and offer security tools to protect your information from cracking.
Why Rails?
There’s a plenty of reasons why Ruby and Rails framework can be the best choice for you to develop and design web applications if you are a novice developer. It can be used for solving problems in much more simple and pretty way than other languages and frameworks, if you have some experience in building basic as well as extended apps for web. Here they are:
- Rails framework already has an answer to pretty all common programming problems that may appear on your way to create software for e-commerce projects, news agencies or a brand new startups. User management, serving assets(CSS, JS, static image, fonts), image storages, JSON and XML API’s, eCommerce integration, Omniauth – all of it and a lot of other useful features can be used either from scratch given by Rails itself or by including in the project one of thousands of gems (ready and packed up libraries) created by broad Ruby community.
- Ruby encourages developers to write clean, maintainable and comprehensible code that is easy to be extended and doesn’t urge you to write tons of comments. Instead by its convention code must be self-documented and Ruby gives you all needed stuff to make it so. On the other hand, Rails also stimulates developer to follow conventions that make it convenient to secure, extend and refactor the application well. So, it provides an experienced developer with tools to enjoy the process of creating and developing applications fast and bugless.
- Rails is a framework that was created by Basecamp company(previously 37signals). They use it for their own needs all the time of development of their products and open source libraries. This means that the framework has being developed all the time by team of professional developers and is always on the cutting edge of modern Web, providing facilities to create up-to-date web applications. Also, it is updated on regular basis, according to the needs of Basecamp. Ruby on Rails is the skeleton of applications they create for their customers, so you shouldn’t fear that one day the maintainers will get tired of this project and leave it in the middle of your development or integration process.
Things you need to know to create Ruby on Rails applications
Ruby on Rails is a large and polyfunctional framework that covers full stack of web development, which means that there’s a lot of stuff that needs to be learned to become a professional Ruby on Rails web developer.
First of all you have to learn Ruby itself. Ruby is a powerful language that has it’s own specific syntax and full object orientation with functional elements. Ruby is constructed to be close to the natural languages by simplicity of reading its code and natural order of keywords and identifiers of it. Its syntax is different in comparison with such languages as C++ and Java but is very comfortable for a developer. Here’s some examples:
<code>
5.times { print ‘Hello world’ } # This will print hello world 5 times
DateTime.current + 1.year # Current date plus one year
1.upto(10).inject(0) { |memo, el| memo+el*el } # sum of squares from one to ten
</code>
Also you have to know CSS3 and HTML5. These are the markup language and styling language which are used to create pages Rails application is serving to a user when he opens a webpage in browser. Along with CSS3 and HTML5 comes Javascript – powerful language to make your pages dynamic flexible and use AJAX – technology of page update without reloading it. You need to know it too to use all the power of Rails.
Third one: Ruby is the best compatible with Linux, so Windows development on it would be hard and dirty. Therefore we recommend you to create your apps on Linux which requires some knowledge of this domain. These skills include Bash and package system of Linux. Along with it you shall know basic structure and control flow of databases to store your information in it. Postgres for SQL and MongoDB or CouchDB for MySQL are preferred choices for Rails.
Next thing is knowledge of REST architecture of web applications, common knowledge of how web server and Internet itself works. With use of this skills you can start learning Rails API which is huge and has already integrated and tested parts and tools for almost every task you may face in your web development process.
Fortunately, skills are not required all at once. Most of them can be on quite modest level and while the process of development and googling stuff you’re interested in.
Stages of Ruby on Rails Website Creation
The process of programming of the web system raises some questions when you come through it as an architect of a programing complex. What is the sequence of steps? What should come first? How to build the process the way it won’t lead to the mess and bugs in the end? There’s some basic assumptions that can help you to set up your development process with consciousness.
- Preparations. Create a basic technical requirement document that will describe how your project should function and determine how your user would interact with it. Get a design for your project to know exactly how your pages will look like. Choose additional technologies such as gems, front-end framework, Javascript library or framework, templating engine, 3rd-party APIs you want your application to be integrated with. Get an understanding of how your development process will flow.
- Database and schema creation. Divide your system onto entities, reveal relations between them, understand how they will interact with each other when customer uses your system.
- Code it up. Using technical requirements and database structure you’ve got on the stages before develop your system prototype.
- Cover your code with tests. Tests are needed for you to know nothing is broken after you extend or refactor the system. Cover your project with tests with tools provided by Ruby on Rails ecosystem such as Gherkin, RSpec, Cucumber and lots of others.
- Refactor and fix bugs. After you have covered your code with tests you may notice that some parts of your system do not work well because are written a bit wrong. This is the time to fix them.
- Create a documentation. Documentation is very important for your system because even if your code is developed only for your use, it would be hard to find out how its parts are interacting when time passes. After your code is cleaned and slimmed up you can write documentation at how it works, which modules it includes and how the interact with each other. With the use of Ruby document automation system you can even sum it up in a handy form of documentation – html pages interconnected with each other.
- Deploy. Your site should be online. Deploy it on server with use of one of the many tools integrated into Ruby on Rails ecosystem such as Chef, Capristano or Heroku.
Tools for Rails Development
To develop with Ruby on Rails you will need a bunch of things. First of all you’ll need a UNIX-based operating system. In may OS X or Linux. Then, you’ll need Ruby and Rails themselves along with RVM – Ruby Version Manager for ability to have multiple projects with different versions of Ruby required for them. Then you have to install the database. Next choose an IDE. Rubymine is a choice for people who are familiar with development and have already developed web systems, others may start from Atom either Sublime Text. After that you are ready to strike down to the world of Rails. GL HF!