Мария обнови решението на 19.01.2014 00:12 (преди почти 11 години)
+REPOSITORY = 'http://github.com/MariaTerzieva/ruby-retrospective-3'
+
+# Двадесет неща, които научих:
+#
+# Първа задача:
+#
+# 1. Методите Integer#pred и Integer#succ са по-удобни от self + 1 или self - 1
+# съответно, ако трябва да chain-ваме функции или да работим с range-ове, а и
+# кодът изглежда по-изчистено.
+# 2. Методите String#chars и String#split('') правят едно и също. По-изчистеният
+# вариант от двата е String#chars.
+# 3. По-добре е да се използва Enumerable#reduce вместо Enumerable#inject, ако
+# искаме да намерим сбора на числа в даден интервал, а и Ruby Style Guide-ът го
+# предпочита.
+# 4. По-изчистено е да се използват референции към методи(в map например) вместо да
+# се подава блок. Имам предвид, че map(&:to_i) е по-добро от map { |char| char.to_i }.
+# 5. Когато искаме да премахнем елементи с дадено свойство от масив, е по-идиоматично
+# да използваме Array#reject вместо Array#select.
+# 6. Enumerable#find намира първия елемент, за който подаденият блок се оценява на истина.
+# Това е много по-добра алтернатива от това да циклим в range с while.
+# 7. Enumerable#each_with_object е по-добър вариант от Enumerable#each, ако искаме да
+# пазим в някакъв обект(например хеш) резултати от обхождането и после да
+# върнем този обект.
+#
+# Втора задача:
+#
+# 8. По-добре е да си дефинираме помощен метод или клас, който се справя с цялата
+# логика на нещо(например Parser), отколкото да раздробяваме логиката на един метод
+# в няколко метода заради skeptik ограниченията.
+# 9. В модулите няма private методи.
+# 10. Добре е имплементационните детайли да са скрити от потребителя.
+#
+# Трета задача:
+#
+# 11. Alias и alias_method трябва да се дефинират след метода, на който са синоними.
+# 12. Когато имаме attr_reader за дадена инстанционна променлива, може да използваме
+# него вместо инстанционната променлива за по-голяма прегледност на кода.
+# 13. Когато използваме помощни класове, добра практика е да ги сложим като вътрешни
+# класове за класа, в който се използват.
+# 14. Трябва да се спазва DRY принципа.
+# 15. Трябва да се избягва да се дефинират attr_reader-и за инстанционни променливи,
+# които са масиви, защото потребителят много лесно може да ги промени с мутираща
+# операция(например Array#<<). Вместо това може да се дефинира each метод например.
+#
+# Четвърта задача:
+#
+# 16. Не е добра практика да се дефинира метод в method_missing.
+# 17. Ламбдите може да са елементи на масиви и стойности в хешове.
+# 18. За да може да се използват инстанционни променливи в ламбди, после трябва да
+# използваме instance_exec вместо call.
+# 19. Добра практика е неща, подадени като стойности на константи, да се freeze-ват.
+# 20. На Hash.new може да се подава блок, който се вика, ако някой иска да достъпи
+# несъществуващ ключ в хеша.