Мартина обнови решението на 14.10.2012 20:47 (преди около 12 години)
- Не спазваш изискванията за идентация. Ако не си го сторила, може да се консултираш с ръководството за стил на курса.
- За предпочитане е да ползваш
2.upto(self.abs)
вместо(2..self.abs)
. Най-вече заради скобите. -
Вместо да мутираш в следния фрагмент:
divisors = [] (2..self.abs).each do |element| divisors << element if self.abs % element == 0 end
Можеш да филтрираш например с 2.upto(self.abs).select { |element| self.abs % element == 0 }. По този начин кода е много по-четим, защото при
select
е ясно какво се прави - оставят се част от елементите на някакво множество. При each това не е толкова ясно. Освен това е прието за филтриране да се ползваselect
и ако се използва нещо друго, то човек би се опитал да разбере защо не е използван нормалния начин.- За
fizzbuzz
сякаш по-удачно е да използваш map/collect, вместо да мутираш result. Също така, ако нямаме специфична нужда, предпочитаме да пишемand
иor
вместо&&
и||
.
Здрасти. Ивайло е един от нашите хора. Опълномощен е, демек.
Точката съм ти я взел (аз) заради неспазване на конвенции. По-точно, на места идентацията ти е неточна. Щях да ти я простя ако в поне едно от решенията ти всичко беше пушка, но навсякъде има нещо излишно, макар и малко.