Евгений обнови решението на 25.10.2014 21:27 (преди около 10 години)
-
attr_reader :set
е излишно, никой не иска достъп до@set
- изпускай скоби около дефинициите на методите само когато нямат аргументи
- бъди консистентен като ползваш
case
или ползвай самоwhen - then
илиwhen
нов ред навсякъде, не ги омешвай - погледни Enumerable има неща които да ти поспестят код
- махни коментарите, излишни са
- няма смисъл да пишеш толкова предикати, проверки от типа на
number < 0
са достатъчно ясни за да не се нуждаят от отделен метод
В условието.
Най-много 8 реда на метод
Най-много 80 символа на ред
В def []
when TypeFilter then NumberSet.new @set.select {|number| filter.valid? number}
и
when SignFilter then NumberSet.new @set.select {|number| filter.valid? number}
Стават повече от 80 символа (поне според Sublime-а). А ако сваля всичко на отделен ред пък ще стане на повече от 8 реда. Мога да съкратя единствено number на n или num, но ми се струва малко по-неясно и неконсистентно. Да не говорим, че вероятно и ще счупи условието на skeptic-a за използването на английските думи.
И затова го направих така. Как да го направя по-умно така че хем да събера всичко на 8 реда, хем 80 символа на ред, хем и хубави имена да има.