The term DRY is probably not new to developers, and perhaps it is also a software development principle that coders must know because its benefits are not small.
What is DRY?
DRY actually stands for:
Don’t Repeat Yourself
In a nutshell, we should not repeat the code
DRY benefits bring:
- Easy to maintain and expand the code: When we maintain the code, everyone wants to find a single bottleneck to solve an entire issue instead of having to ctrl + shift + F to go through each file to edit or write the same code
- Limitations of bugs: If we copy a piece of code from one place to another and one day we have to fix all the code that goes everywhere but unfortunately misses any place, why? ?
For example :
Let’s go into a familiar example in rails:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <span class="token keyword">class</span> <span class="token class-name">MicropostsController</span> <span class="token operator"><</span> <span class="token constant">ApplicationController</span> <span class="token keyword">def</span> show <span class="token variable">@micropost</span> <span class="token operator">=</span> <span class="token constant">Micropost</span> <span class="token punctuation">.</span> find_by id <span class="token punctuation">:</span> params <span class="token punctuation">[</span> <span class="token symbol">:id</span> <span class="token punctuation">]</span> <span class="token punctuation">.</span> <span class="token punctuation">.</span> <span class="token punctuation">.</span> <span class="token keyword">end</span> <span class="token keyword">def</span> edit <span class="token variable">@micropost</span> <span class="token operator">=</span> <span class="token constant">Micropost</span> <span class="token punctuation">.</span> find_by id <span class="token punctuation">:</span> params <span class="token punctuation">[</span> <span class="token symbol">:id</span> <span class="token punctuation">]</span> <span class="token punctuation">.</span> <span class="token punctuation">.</span> <span class="token punctuation">.</span> <span class="token keyword">end</span> <span class="token keyword">def</span> update <span class="token variable">@micropost</span> <span class="token operator">=</span> <span class="token constant">Micropost</span> <span class="token punctuation">.</span> find_by id <span class="token punctuation">:</span> params <span class="token punctuation">[</span> <span class="token symbol">:id</span> <span class="token punctuation">]</span> <span class="token punctuation">.</span> <span class="token punctuation">.</span> <span class="token punctuation">.</span> <span class="token keyword">end</span> |
We can see that @micropost = Micropost.find_by id: params