In this course, we do not teach Ruby or Rails from scratch, but focus on those who are already programming in Ruby in commercial projects. In the daily routine, there is often not enough time to fully and properly understand the problem, understand the cause of the error, or learn the right methodologies. It happens that there are not enough experienced colleagues from whom you can learn such experience.
In the course, we deepen our understanding of how Rails works, share the experience that we have gained in large projects, give a useful summary of knowledge and dispel popular misconceptions. In other words, in a short time we “pump” developers on Ruby on Rails, team leads and technical directors of Rails projects.
Starting day, we changed the very structure of the course. Professional mentors conducts excellent data visualization brainwashing sessions with us and uses an interesting format there: 2 days for lectures, a day for homework and a discussion of the results on the fourth day. At first, we were worried that the format tested in design courses would not take root among programmers, but at the January course, we offered students, as an independent task, to consolidate knowledge and solve some real problem in their commercial application (or in an open source project, if desired). ). This format was new for the guests, and we were worried about the result.
But the last day was just great! Almost all students significantly improved their project. Several people have accelerated the loading of the site several times (frontend optimization). Many have refactored the application code to be clearer and easier to extend. And one of the students significantly improved the Feedbin code.
But the most valuable was in discussions with lecturers. The students asked a lot of clarifying questions on our topics (an extra day helped to put the knowledge in my head and find what was missing). Students shared their working difficulties with us and together we looked for the best solutions; we touched on a lot of topics, ranging from unexpected problems – the site loads too quickly (!) – and ending with communication with managers. During heated discussions, we even managed to make two corrections in open source projects.
The Git course is a great example of how a deep understanding of a tool can take development to another level. All Rails developers use git, but sometimes we get stuck somewhere in the middle of “merge over rebase” and get lost in the functionality it provides. However, it turns out that inside Git consists of simple and understandable basic things.
Rack is the foundation of Ruby web applications. A lot of things inside the Ruby on Rails stack are tied to Rack, and understanding how it works is a good explanation of how Rails handles web requests.
Rails 4 architecture
The most important thing we want to teach you in this topic is not to be afraid at the first architectural difficulty to open the Rails sources and dig into them. To do this, we take a quick look at the organization of the code directly in Rails and explain how best to extend the framework.
In the January course, we first of all looked at the work of the controller stack – from getting an HTTP request into the application to rendering templates. In Rails 4, the controller architecture has been greatly improved, and we show you how to take advantage of its flexibility.
Of course, a review of the work of only controllers would not be enough. So in the March course, we will try to expand on the theme with the analysis of Arel and Sprockets – these two topics also seem scary on the outside, but are actually very simple and flexible on the inside.
A correct understanding of how PostgreSQL works internally is a key. Course tells how to profile queries, replicate the database and split data into multiple databases; explains the nuances of how indexes and disk caches work.
The frontend is dedicated to a special “small brainwashing” for 4 hours, consisting of 4 topics – two theoretical and two practical.
Additional Ruby on Rails Development Principles
Version control systems:
The development of any project on Ruby on Rails implies the use of the most famous version control systems. The use of svn and git is, as they say, “forced-volunteer”, since many systems for auto-deploying a project to servers cannot work without them. Ruby on Rails programmers should be familiar with svn and git when they first learn this platform, since there are a lot of code examples in the documentation when version control systems are used. In most cases, it is easier for beginners to first learn the PHP programming language than to take on Ruby, since it is necessary to reach the required level in understanding web application development and its principles in general.
Project management systems/task managers:
Ruby on Rails was originally created to implement the project management system – Basecamp. Ruby on Rails also created an excellent project called Redmine, which is one of the most popular and free project management systems. That is why the use of such systems in this area is called “compulsory-voluntary.” Perhaps, all systems have integration with version control systems, which helps to regulate project development processes most clearly and flexibly.
Ruby on Rails Development Environment
In RoR, the developers provided for the option of not using the integrated development environment, apart from the usual recommended text editor and console. For this, there is a special script set required for the command line, which allows you to easily perform the most common tasks that occur when developing an application: creating new models, controllers, creating a file hierarchy for a new application, launching a web application debug server, and more.
For testing and development, Ruby on Rails includes the WEBrick web application server, which takes up very little space. After the release of a new application, Lighttpd or Apache HTTP Server should be used, the extension of which should be mod_ruby or FastCGI.
The RadRails project brings these tools together into an integrated single environment, available as a standalone program or as an extension for the Eclipse IDE.
Using Eclipse is useful (except RadRails) if you install extensions such as CSS Editor, Ruby Development Tools, JS Editor and XML Buddy.