Meta-programming in Ruby - course 4900 rub. from ThinkNetica, training 1 week, Date November 27, 2023.
Miscellaneous / / November 27, 2023
11 years of experience creating and supporting products created in different languages and technologies in areas such as payment transaction services, healthcare and e-commerce.
Collaborated with companies such as JetRuby, Profitero, eComCharge.
Having worked his way up to become a distributed systems architect, he gained experience in solving various problems in outsourcing and product companies.
Ruby is the main and favorite language for software development; it has been successfully solving problems for the last 10 years.
Let's look at the concept of "metaprogramming" with examples in different languages. Let us repeat the most common techniques and methods.
As a result, you will be able to:
Learn to use the core set of metaprogramming tools in Ruby. Consolidate the information received in a small library with a self-written DSL as homework.
Let's take a closer look at the dynamic nature of Ruby and learn how to create objects with environment-dependent behavior, be it variables from the execution context or program startup settings. We will consider in detail the use of proc and lambda, when creating a DSL and separately, in isolation from any context.
As a result, you will be able to:
Learn to dynamically create extensions for classes and objects from a set of options and parameters. Consolidate new knowledge in practice by improving the library API from the first homework.
Let's study the code of large ruby projects that use metaprogramming. Let's compare their strengths and weaknesses with the approaches studied in previous classes.
As a result you:
You will close the remaining gaps on the topic of metaprogramming in Ruby. Look at typical applications of metaprogramming in well-known projects through the lens of the experience gained in class.
The course examines the differences between high-load, high-reliability and high-performance systems. The main objective of the course is to provide an understanding of the basic concepts, principles and approaches used in the design of high-performance systems. The course will be useful not only for architects, but also for development project managers and leading developers.
4,4