📜 ⬆️ ⬇️

Course on Ruby on Rails from Evil Martians

Hi, my name is Andrey Sitnik, and I am the frontend in Evil Martians. I want to invite you to brainwashing on Ruby on Rails , which will take place on March 29, 30 and April 1 in Moscow.

Martians regularly brainwash Ruby on Rails; This year we decided to completely revise the course to make it even cooler. On the course, I lead a section on the frontend, and below I want to talk about the past January course, and in general about what topics we consider most important for pumping in the development of Rails.

And at the end of the story - a couple of ways to get a discount on the next March Brainwashing.
')

Ravil and Lesha explain the practical task of Rack

In this course, we don’t learn Ruby or Rails from scratch, but focus on those who already program Ruby in commercial projects. The daily routine is often not enough time to fully and properly deal with the task, to understand the cause of the error or to learn the correct methodology. It happens that there are not enough experienced colleagues from whom you can learn from this experience.

On the course, we deepen our understanding of the work of Rails, share the experience we have gained in large projects, give a useful squeeze of knowledge and dispel popular misconceptions. In other words, in a short time we “pump” Ruby on Rails developers, team leaders and technical directors of Rails projects.

Course Structure


Day started, we changed the very structure of the course. Tanya Misyutina spends with us excellent brainwashing on data visualization and uses there an interesting format: 2 days at a lecture, a day of homework break and a discussion of the results on the fourth day. At first we were worried that the format run-in on design courses would not take root among programmers, but in the January course we suggested that students as an independent task consolidate knowledge and solve some real problem in their commercial application (or in an open-source project, at will ). Such a format for guests was a novelty, and we were worried about the result.


Denis shows the result of refactoring.

But the last day was just great! Almost all students have significantly improved their project. Several people have accelerated the download site several times (by optimizing the frontend). Many have refactored the application code to make it clearer and easier to expand. And one student significantly improved the Feedbin code.

But the most valuable thing was in the discussions with lecturers. The students asked many clarifying questions on our topics (for an extra day they helped to put knowledge in my head and find something that was missing). The students shared with us the working difficulties and together we looked for the best solutions; we touched on a lot of topics, starting from unexpected problems - the site loads too quickly (!) - and ending with communication with managers. During the stormy discussions, we even managed to make two corrections in open-source projects.

Git


A 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, stuck somewhere in the middle of "merge over rebuy", we start to get lost in the functionality it provides. However, it turns out that inside Git consists of simple and clear basic things.

Rack


Rack - the foundation of web applications on Ruby. Many things inside the Ruby on Rails stack are tied to Rack, and an understanding of its work explains well the mechanisms for handling web requests in Rails.

Ravil Bayramgalin more than once commit directly to Rack, and therefore tells about many interesting applications.

Rails 4 architecture


The most important thing we want to teach you in this topic is not to be afraid to open the Rails source code and dig into them at the first architectural complexity. To do this, we do a brief overview of organizing Rails code directly and explain how best to extend the framework.

In the January course, we first looked at the work of the controller stack, from getting an HTTP request to the application to rendering templates. In Rails 4, the controller architecture has been greatly improved, and we explain how to use its flexibility as an advantage.

Lesha not only has a lot of Timlide experience in Rails projects, but more than once commits to Rails code.

Of course, a review of the operation of only controllers would be small. So in the March course, we will try to expand the topic by also examining Arel and Sprockets - these two topics also seem scary from the outside, but in fact they are very simple and flexible inside.

Relational databases


For the story about the database, we specifically invited the ex-Martian and Timlid Russian Grupon, Ivan Evtukhovich. Vanya is an excellent speaker, and we have watched many times how he creates real magic with a database in Groupon.


Vanya talks about the database at the end of the day

Of course, all of Ivan’s magic is built on the correct understanding of how PostgreSQL works inside. He tells how to profile queries, replicate the database and split the data into several databases; explains the nuances of the work indexes and disk cache.

Frontend


The frontend is dedicated to a special “small brainwashing” for 4 hours, consisting of 4 topics - two theoretical and two practical.

In the theoretical part, I talk about the organization of CSS-and JS-code. I specifically tried to move away from specific frameworks in order to give an overview of common problems with JavaScript code; the ideas with which frameworks solve these problems; Describe the various approaches of the frameworks (Angular, Ember, React, Flight) and help you navigate them.

For practice, I picked up 2 topics that, on the one hand, require maximum understanding in topics with which there are many dangerous misconceptions, and on the other hand, they can give a very quick return to business. I explain how to speed up the site load, and how to quickly diagnose and fix most of the “friezes” and interface speed problems.


The schedule from the handout to the course, which allows you to quickly find and fix the interface "frieze"

In addition, I list the important front-end tools (for example, about my Autoprefixer :-)), touch on the issues of interaction with the designer and tell many cases from the work on Grupon, Rocketbank and Online Tours.

Code optimization


A quality, clean code does not immediately give you a direct commercial return, but it has a very strong long-term impact and is directly related to the main idea of ​​developing in Rails: with well-organized code, you can quickly add new functions and process old ones, which is very important for business.

Debugging and profiling


Recently, many new tools for debugging Ruby code have appeared. Although this course is devoted more to practice than theory, but new tools make this skill much more useful (for example, they allow you to catch and investigate a mistake that happens very rarely and only on production).

And Ravil is perfect for this topic. Many times, meeting a very difficult problem, he refused to make a quick patch and dug inside the gems and Ruby himself until he fully understood all the sources of error. As a result, he has commits in more than 40 open-source projects - including debugging tools.

The most memorable moment for the audience was the case when, during a live debugging session, Ravil discovered a debugger error and without any doubt “went deeper” and debugged the debugger itself :-).

Rolling out


In this topic, we are concerned with the technology of rolling out Rails applications - of course, first of all, Capistrano and the features of its new, third version. We will also briefly discuss the basics of configuration management (Chef and Ansible). And in the March course, we will do a little analysis of the technology rolling out the future - Docker.

Discounts


The course is worth a lot (I know that it stops many), but it's worth it. To make it a bit more accessible, we give everyone who is with Habrahabr (do not forget to refer to the article) a discount of 2,000 rubles. We also have a contest - ask your questions about the development on Rails and we will give the best authors 5,000 discount.

Detailed program and enrollment : brainwashing.pro/rails

Source: https://habr.com/ru/post/216021/


All Articles