Габриела обнови решението на 19.01.2015 15:39 (преди почти 10 години)
+REPOSITORY = 'https://github.com/luhova/ruby-retrospective-4'
+
+#Двадесет неща, които научих:
+#
+#1. Използването на case води до много подреден, лесно четящ се и #разбираем
+#код.
+#2. За разлика от някои други езици за програмиране, в Ruby условията #на if не се ограждат в скоби.
+#3. Колкото по-рано си предадеш домашното, толкова по-добре. Имаш #време сам да подобриш решението си, а и feedback-ът от екипа е доста #полезен.
+#4. Не е нужно да използваме return, за да върнем стойност.
+#5. attr_accessor, attr_reader и attr_writer използваме единствено #когато наистина ни трябват полета за четене/писане.
+#6. Какво е и как работи super().
+#7. Copy-paste-ването на код води до глупави грешки като изпускането #на скоби, което от своя страна води до грешки в резултата от #програмата.
+#8. Тестовете са необходимост и не трябва да се разчита само на #примерните.
+#9. Чрез include-ването на Enumerable и дефинирането на метод each #можем лесно да създадем наша колекция, в която можем да ползваме #наготово методите, дефинирани в Enumerable.
+#10. Трябва добре да познаваме документацията на различните класове и #библиотеки, за да не си пишем сами методи, които вече съществуват.
+#11. Enumerable#each_with_object е много удобен когато искаме да #запазим в някакъв обект (например масив или хеш) резултатите от #обхождането и после да върнем обекта.
+#12. При сравняване с операторите || и && на резултатите от две или #повече функции, приемащи аргументи, трябва да оградим аргументите със #скоби, иначе получаваме грешка. Това не важи, ако при сравняването #използваме операторите and и or.
+#13. Когато знаем точно колко елемента ще съдържа даден масив е много #удобно да ползваме multiple assignment.
+#14. Когато искаме да присвоим различна стойност на една променлива #спрямо различни случаи, използвайки case, не е нужно това да се #случва в тялото на case - поотделно за всеки случай. case винаги #връща стойност, затова просто assing-ваме дадената променлива с #резултата от case.
+#15. Какво е и как работи интерполацията.
+#16. Инстанционните променливи се появяват при първото им задаване на #стойност.
+#17. Какво е метапрограмиране.
+#18. Колко интересен и полезен е Git. Научих няколко нови команди #покрай решението на пета задача, например как мога да променя името #(съобщението) на последния push-нат commit с git commit --amend.
+#19. Методите на даден клас, които се ползват единствено като помощни #от други методи на класа, е добре да бъдат дефинирани в private #частта на класа.
+#20. Когато програмата ни представлява някакъв вид библиотека е добре #целият код да бъде изнесен в модул, за да се постигне по-добра #капсулация.