Борис обнови решението на 14.11.2011 05:30 (преди около 13 години)
+REPOSITORY = 'http://github.com/bminev/ruby-retrospective-1'
+
+#1. Инстанцирането е по-добър подход от наследяването.
+#2. При блокове е по-прегледно да има " "(space) след скобата, отваряща блок и преди затварящата.
+#3. Добре е да има интервали ограждащи << оператора. Същото важи и за останалите оператори.
+#4. Хубаво е да има празен ред между методите в клас.
+#5. Съществува функцията each_cons, която има някои много интересни, приложения, въпреки, че се
+# ползва рядко.
+#6. Лош стил е да се използва ';' за събиране на един ред на statements, които могат да бъдат на
+# повече редове.
+#7. Добре е да се познава пълният набор от фичъри, които даден език предлага, и да не се подхожда
+# към всеки проблем с един и същ метод (както в моя случай - за задача 1 ползвах само inject).
+# Никой метод не е универсален.
+#8. Вместо "array.select { |n| !n.nil? }" може да се ползва просто "array.compact".
+#9. Не бива да се използват еднобуквени и НЕговорящи имена на променливи.
+#10. Като параматър по подразбиране не бива да се задават странни стойности като -1 когато може
+# да се подаде nil.
+#11. Научих се да използвам case по предназначение.
+#12. Работата на отделните методи трябва да е добре разпределена по такъв начин, че да са
+# относително кратки и извършващи възможно най-атомарни операции.
+#13. Array(x) може да се използва за създаване на копие на x.
+#14. При изброяването 1st, 2nd... - 11th, 12th и 13th са изкючение от правилото.
+#15. По-добър дизайн е за invoce-а да отговаря самостоятелен клас.
+#16. Разбрах как се използва send метода.
+#17. Разбрах как се използва Kernel.const_get.
+#18. Научих как се форматира стринг.
+#19. Разбрах съшността на Single Responsibility Principle.
+#20. self не е задължителен в конекста на класа и е препоръчително да се изпуска, когато е възможно.