Добромир обнови решението на 27.01.2016 01:51 (преди около 9 години)
+REPOSITORY = 'https://github.com/d0ivanov/ruby-retrospective-2015-1'
+
+# Двадесет неща, които научих:
+#
+# 1. Наименованията са важна част от кода, който пишем. Добрите имена комуникират с четящият
+# и помагат за по-добро разбиране.
+# 2. Добре подреденият и спазващ конвенциите код, е по-приятен за четене. Четенето на красив
+# код спомага за намаляване на стреса и улеснение на ежедневието.
+# 3. Както при естествените езици, така и при програмните, четенето, разбирането и стилистиката
+# са от голямо значение.
+# 4. Сложността на деден проблем не се оценява качествено с един прочит. Вникването в задачата,
+# внимателното планиране на стъпките за решаването ѝ и добрият подход се отплащат многократно.
+# 5. Всяка програма обработва някакъв вид данни. Колкото по-добре боравим с инсрументите си за
+# обработка на данни, толкова по-успешни решения ще намираме на проблемите си.
+# 6. Свикването с блокове, ламбди и прокове изисква малко повече време, но си струва.
+# Приложенията са не само в Ruby.
+# 7. Учете концепции и похвати за справяне с проблеми, а не конкретни решения на конкретни
+# проблеми.
+# 8. Кодът излглежда много по-добре без излишните скоби.
+# 9. За всеки чук си има наковалня - Ruby е просто инструмент в кутията на майстора. Няма език,
+# който да владее всички. Правилният избор на инструмент и добрата му употреба са
+# значение за качественото на крайния продукт. Знанията за една концепция се пренасят върху
+# друга.
+# 10. Мързеливите изчисления се прилагат добре, когато работим с данни от неопределен размер и
+# искаме поетапно да изчисляваме всеки следващ елемент на базата на даден критерий.
+# {Отлагането на изчисления ни учи, че отлгането на проблемите в живота също е решение.}
+# 11. Бързината не е единственото качество на една компютърна програма.
+# 12. За проекти с големина в рамките на разумното, липсата на строга типизация не е проблем, ако
+# човек знае какво прави и защо го прави.
+# 13. Мутирането на данни може да доведе до неочаквани резултати. immutable данните понякога са
+# за предпочитане.
+# 13. Преди да внесем нов метод / функция в програма си е добре да се замислим дали не можем да
+# преизползваме някой от вече написаните. Кодът трябва да се преизползва максимално.
+# 14. Няма нищо страшно в изтриването на работещ код с цел да се подобри.
+# 15. Дължината на методите и нивата на влагане в кода са добро мерило за качеството на едно
+# решение. Ако изведнъж нарастнат, има голям шанс посоката ни да е грешна.
+# 16. Enumerable#reduce(&:method) е за предпочитане пред еквивалентните блокове
+# 17. Enumerable#partition е удобен за случаи, когато искаме да разделим дадена колекция на две
+# части по даден критерий.
+# 18. Когато даден клас дефинира повече от една, близки по логика операции, е по-добре да направим един
+# частен (private) метод, който обслужва тази логика, отколкото да я повтаряме на няколко места с
+# леки зменения.
+# 19. Начинът, по който представяме данните, които обработваме е определящ за качеството на решението ни.
+# Използване на грешки структури от данни води до усложняване и оплитане на логиката на решението.
+# 20. Между labda, prock & block има тънки разлики, които просто трябва да се научат.