Станимира обнови решението на 25.01.2016 23:29 (преди почти 9 години)
+REPOSITORY = 'https://github.com/sis0k0/ruby-retrospective-2015-2'
+
+# Двадесет неща, които научих + 1 бонус :)
+#
+# * 5 задача *
+# 1. Класовете Commit и Branch е добре да бъдат nested
+# в класа ObjectStore. Логически по-правилно е
+# да не могат да се инстанциират сами без да са част
+# от хранилище.
+#
+# 2. Мога да си направя модул с 2 помощни метода
+# за създаване на OperationMessage-s,
+# съответно success и error.
+# Необходимо е единствено след това да миксирам
+# модула в класовете, в които използвам OperationMessage.
+#
+# 3. Не е добра практика да се ползва unless в комбинация с else.
+# По-умно е първо да поставяме положителния случай.
+#
+# 4. Интерполацията на стрингове е по-бърза в сравнение с
+# конкатенацията.
+#
+# * 6 задача *
+# 5. Мога да използвам метода String#%, когато искам да интерполирам
+# в единични кавички:
+#
+# '<td style="opacity: %.2f"></td>' % cell_intensity
+#
+# 6. https://github.com/bbatsov/ruby-style-guide препоръчва използването
+# на format или sprintf, вместо String#% :
+#
+# format('<td style="opacity: %.2f"></td>', cell_intensity)
+#
+# 7. Методът Canvas#max_frequency може да работи върху instance променлива,
+# вместо всеки път да му подавам аргумент.
+# Така мога да използвам го използвам в много методи, като предварително съм запазила
+# необходимата променлива (в случая матрица) като instance променлива.
+#
+# 8. Ако имам метод, който конструира таблица, той трябва да добавя всеки ред
+# един по един. Във всеки ред трябва да добавя всяка клетка отново една по една.
+# (?)Може би е добра идея да разделя този метод на 3:
+# 1. Обхожда матрицата и вика метод, добавящ всеки ред (метод 2)
+# 2. Обхожда реда и вика метод, добавящ всяка клетка (метод 3)
+# 3. Форматира клетката и я добавя
+# Това би спомогнало за четимостта на кода.
+#
+# 9. Когато искам да конкатенирам множество стрингове,
+# вместо да използвам масив, в който да добавям 1 по 1 стринговете,
+# мога просто да ползвам #map в комбинация с #join.
+#
+# 10. Разбрах как мога да използвам % в метода Turtle#move,
+# за да "вкарам" @x и @y в граници.
+#
+# @x %= @matrix.column_count
+# @y %= @matrix.row_count
+#
+# * 7 задача *
+# 11. Мога да използвам методът Array#compact, за да премахна
+# nil от даден масив.
+#
+# 12. Мога да използвам next, за да skip-на итерация не само във
+# for, while, loop и т.н., но и например в map и each.
+#
+# 13. Ако имам #map, който връща nil стойности, единият вариант е
+# да ги премахна с Array#compact.
+# Но като се замисля, може би не е супер идея #map да връща nil.
+# Мога да го заменя с #reject, за да "изключа" невалидните стойности
+# или първо със #select да избера правилните и после с #map да ги обработя.
+#
+# * 8 задача *
+# 14. Мога да си направя pattern за ArgumentsError под формата на константа и да го ползвам,
+# като променям единствено името на формулата и броя на expected-actual променливите:
+#
+# ARGUMENTS_ERROR = "Wrong number of arguments for '%s': %s"
+#
+# 15. Мога да взема инстанцията на метод с method(:method_name), където
+# method_name е някой дефиниран/миксиран метод.
+#
+# 16. Методът Method#arity е много полезен за определяне на броя
+# на аргументите, които приема един метод.
+# Method#arity връща броят на аргументите, ако той е фиксиран,
+# или -n-1, където n е броят на задължителните аргументи,
+# ако имаме и незадължителни.
+#
+# 17. Вместо Formulas модул, мога да използвам клас FormulaFactory,
+# който се грижи да провери дали аргументите са необходимия брой,
+# да калкулира резултата и да го форматира.
+#
+# 18. Добра идея е методът calculate на FormulaFactory, който
+# се грижи за изчислението на формулата да е class method,
+# а самият клас FormulaFactory да не може да се инстанциира, т.е.
+# да е абстрактен.
+# * Всъщност не съм сигурна доколко това е добра идея.
+#
+# 19. FormulaFactory може да е просто клас Formula, който
+# да може да се инстанциира и да работи като обикновен клас.
+#
+# 20. Няма нужда да създавам отделни методи за всяка формула.
+# Мога просто да използвам hash с ключове - имената на формулите
+# и стойности - lambda expressions.
+#
+# * Бонус *
+# 21. Мога да синхронизирам форкнато repo със следните команди:
+#
+# git fetch upstream
+# git merge upstream/master
+#
+# където upstream е главното repo.
Еха, 329 additions and 329 deletions.
. Личи си, че си вложила доста време в ретроспективните задачи.
Харесва ми също, че си commit-вала често и си се постарала с описанието им. Браво!
Единствено използвай сегашно време от първо лице за първия ред на съобщенията. Например
Simplifies Date#to_s method
Realized that the provided string is the same as the one, that the #to_s method returns.
->
Simplify Date#to_s
I realized that the provided string is the same as the one the #to_s method returns.