Единадесето предизвикателство

  1. Кода за клас студент трябва ли да го оставим в решението или ще приемем, че имаме дефиниран следния код , значи че вашите тестове имат достъп до този код?

    P.S. Какъв е markdown синтаксисът за italics, че с единичен атерикс или долна черта не става?

  2. Не, този клас Student няма да го има в теста, нито трябва вие да го дефинирате. Ползваме го само като илюстрация за една примерна употреба на въпросните to_proc дефиниции.

    P.S. Синтаксисът за italic е принципно точно една подчертавка, или една звезда, но нещо се е променило в Markdown rendering библиотеката и това вече не работи. Може да ползвате HTML таговете <em></em> за целта.

  3. Аз искам да попитам дали методът в Array И съответно в Hash трябва винаги да работи с обекти на този клас Student(Само със списъци съдържащи обекти от тип Student) или няма значение, какъв е обектът? Или просто методът трябва да може да приема (&[:иманаполе1, :именаполе2, ..., именаполеN]) и да прави нещо с елементите от първоначалният списък?

  4. @Александър,

    Забелязвам тенденция описанията на примерите да се свеждат до шаблона „X works with Y“.

    Това е лоша практика, защото подобни описания са прекалено общи и не показват точно очакваното поведение.

    Пример за добри описания можеш да видиш в тестовете на второто предизвикателство например, както и на betterspecs.org.

  5. Изглежда липсва тест за извикване на private методи, което да провери поведение съвпадащо с това на Symbol#to_proc. Примерния код на масив от символи от условието изглежда като съкратен вариант на това да се извика повече от веднъж Symbol#to_proc, дори виждам колеги са го имплементирали буквално с извикването на този метод item.to_sym.to_proc.call(object), което между другото ми изглежда една идея по-добре от това да се извика #public_send за консистентност със Symbol#to_proc.

    Друго интересно е, че в някои решения метода to_proc връща lambda вместо proc. Ако се сетите за случай, в който тази разлика би имала значение, може да се разпише под формата на тест.

  6. Интересни наблюдения, да. В случая, ние не сме търсили паритет между Symbol#to_proc и нашите алтернативни имплементации, но различните решения на хората са любопитни.

    Условието е не особено стриктно и не конкретизира как трябва да се държат имплементациите за private методи, или пък дали трябва да се връща Proc или ламбда, което означава, че сме дали свобода да го имплементирате както прецените. Харесва ми, че някои хора са се сетили и са ползвали public_send, вместо send, например.

Трябва да сте влезли в системата, за да може да отговаряте на теми.