Recently I wrote about template pattern. Today I would like to talk about another useful pattern - decorator.
Today I would like to show you how easily spot a problem and improve performance of your app.
If you didn't hear about N+1 query problem you can read about it even on official Rails guides website.
We're so get used to nice features of
ActiveRecord that we don't care about resulting SQL that being generated by ORM. We don't count how many queries we do and how complex they are.
Today I would like to show by simple example how to use template pattern in Ruby.
I'm sure you will find many ways of using that pattern in your application.
Hi. Today I would like to talk about memoization in Ruby.
But to begin, let's consider some abilities of Ruby. Often, we want to assign result of execution of function to some variable. If result of execution is
nil we would like to assign some default value.
There is a great principle in object-oriented programming which says: "Tell, Don't Ask".
This principle tells that we should not ask object about their state, make decision and only then tell them what to do. Rather we should send commands.
There is a good quote about that:
Today's post will be more about Ruby On Rails and ActiveRecord. But first things first. If you didn't hear about Law of Demeter, I really recommend to read about it.
In general - it's a set of rules which bounds knowledge of modules about each other and allows you to reduce coupling of your system.
Here is how Wikipedia describes it:
Refinements has been added to Ruby to replace popular, but bad approach called Monkey Patching.
Let's check what Monkey Patching is and why it is bad.
For example, we have a class
User, which has method