Николай обнови решението на 22.01.2014 17:02 (преди почти 11 години)
За съжаление тестовете ти не минават, както и не си спазил някои от skeptic ограниченията и няма как да ти дам точки за задачата.
Мисля, че кодът, който си предал, има още място за подобрения. Моят съвет е да си избереш три решения на пета задача, на които съм дал най-много точки и да ги разгледаш. Със сигурност ще научиш още неща. Например, не бих искал да има while
в първа задача, начинът на използване на range-ове там не е идиоматичен, казвали сме, че предпочитаме reduce
пред inject
(ти даже си го написал, но не си го променил навсякъде в кода) и прочее.
Имам бележка по употребата на Struct (напр. във втора задача при теб). Виждам смисъл в това само ако има нужда да се замести клас, т.е. се спестява дефиницията на отделен клас. Употреба като тази: class TodoItem < Struct.new(:status, :description, :priority, :tags)
не намирам за добра. Предпочитам да дефинирам атрибутите с attr_accessor
- не само, че е по-кратко, но и е по-праволинейно, просто и ясно. Struct
носи допълнителни неща, които в не само, че повечето случаи не са необходими (например, енумерация на атрибутите), ами са и направо излишни.
В трета задача смятам, че е по-добре да се използват константи, вместо клас-променливи в Renderers::Html.
{||}
е предпочитам формат за lambda пред->() {}
С това твърдение не съм съгласен. Новият стил на lambda е предпочитан, а именно: -> foo { ... }
, вместо lambda { |foo| }
.
alias автоматично преобразува аргументите до символи.
alias
е синтактична конструкция и приема идентификатори като имена на методи, в частност и символи, но нищо друго.
по-сложните алгоритми за рендиране е добре да се обособят в отделен клас.
Това е само един възможен вариант и, за съжаление, не е абсолютна истина. Зависи от ситуацията и много други фактори.
Използвай upto вместо ranges.
Не винаги. Когато целта е обхождане на числата от x до y, тогава upto/downto са по-удобен вариант. Range-овете си имат своите приложения, обаче.
С останалите неща съм съгласен. Надявам се, че си доволен от наученото от теб и че няма да се отказваш да напредваш :)