Размисли и страсти около домашните

  1. Защо условията на домашните всеки път са така безкрайни ?
    Защо трябва да прочета 200 реда за да накодя 150 реда ?
    Защо имаме някакъв адски стриктен интерфейс който трябва да имплементираме ?
    Защо трябва да се съобразявам с 200 подробности (например ,че незнам си къде ... незнам си коя промелива трябвало да започва главна буква, защото разбираш ли Пешо искал да достъпи тази променлива в тестовете си) вместо да се съсредоточим в/у основното ?

    Мислите ли ,че имплементирането на интерфейс е особено интересна задача? Мислите ли ,че тя помага за адекватното развитие на един програмист ? Нямаме ли си достатъчно тъмнински и подобни академии където генерират кодери ?

    Разбирам ,че искате да ги тествате автоматизирано ... но това не може ли да стане и с доста по-беден и нерестриктивен интерфейс ?
    Много съм любопитен за мнението на екипа

  2. Защо условията на домашните всеки път са така безкрайни ? Защо трябва да прочета 200 реда за да накодя 150 реда ?

    Защото иначе неща остават неясни и в крайна сметка 10 човека решават 10 различни домашни, въпреки, че всичките са чели едно условие. Малко е притиснително, че 200 реда текст ти се струват "безкрайно" много.

    Защо имаме някакъв адски стриктен интерфейс който трябва да имплементираме ? Защо трябва да се съобразявам с 200 подробности (например ,че незнам си къде ... незнам си коя промелива трябвало да започва главна буква, защото разбираш ли Пешо искал да достъпи тази променлива в тестовете си) вместо да се съсредоточим в/у основното ?

    Имате зададени публични методи и полета, които описват как да бъде изполван вашият код. Не помня някога да сме ви забранявали да добавяте нови такива. А самият факт, че в Go са решили нещо да бъде публично, ако започва с главна буква е подробност. Не решаваме, че нещо трябва да е публично в името на тестовете. От тях можем да достъпваме всичко.

    Начинът, по който тестваме вашите решения е именно чрез този интерфейс. Можеш ли да посочиш случай, в който зададеният интерфейс ти е попречил в съсредоточаването върху основното?

    Мислите ли ,че имплементирането на интерфейс е особено интересна задача?

    Мисля, че това колко е интересна една задача зависи от функционалността, която ви караме да имплементирате, а не интерфейса.

    Мислите ли ,че тя помага за адекватното развитие на един програмист ?

    Да. Освен, разбира се, за тези, които имат намерение да се развият до писане на shell скриптове. Една голяма част от работата на програмист е да кара разни неща да си "говорят". Не случайно не ви налагаме "адски стриктни" интерфейси върху вашите проекти. Една от целите на домашните е да свикнете с това да се грижите за публичен интерфейс. Проектите са мястото, където оставаме на вас да си създадете такива.

    Нямаме ли си достатъчно тъмнински и подобни академии където генерират кодери ?

    Да. Това в каква връзка?

    Разбирам ,че искате да ги тествате автоматизирано ... но това не може ли да стане и с доста по-беден и нерестриктивен интерфейс ?

    Отворен съм за предложения как точно си представяш да стане това. Обмислял съм опцията за лингвистичен анализ върху имената на методите и автоматично генериране на тестове по тях, но да си призная не съм постигнал особено голям напредък по темата.

    П.П.: Честита Коледа :)

  3. Ами може чисто и просто да напишете : Напишете програма която прави еди какво си ... при входни данни ... има изходни данни ... Тогава вие може да си напишете скриптове който тестват самата програмате (по вход/изход независимо от имплементацията) а ние можем да си напишем интерфеис какъвто на нас ни е удобен. И отделно като толкова държите може да ни накарате да си напишем и тестове към кода.

  4. Ами може чисто и просто да напишете : Напишете програма която прави еди какво си ... при входни данни ... има изходни данни ... Тогава вие може да си напишете скриптове който тестват самата програмате (по вход/изход независимо от имплементацията) а ние можем да си напишем интерфеис какъвто на нас ни е удобен.

    Това ни ограничава до Black-box testing, което не е ок. Хвани последното домашно за пример. Как можем да тестваме в изолация имплементацията на построяването на регулярни изрази, конкурентността на работниците и обработката на заявки?

    И отделно като толкова държите може да ни накарате да си напишем и тестове към програмата.

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

  5. Като "гледам тонът ти"... явно съм останал недоразбран. Не си мисли ,че не оценявам всеотдадеността на екипа. Нито разнообразието и начина на препопдаване са останали неоценени. НО ДОМАШНИТЕ ВИ СМЪРДЯТ(в 80% от случайте). Не мисля ,че вие сте единствените с автоматични тестове на домашните, и наистина жалко, но не съм чул някой да прави лингвистичен анализ на домашните. И извинявай много ама на 5тото домашно имаме 3 типа с по 4 метода и са ни написани всичките им полета и прототипи на методите ? WTF ?

    Малко е притиснително, че 200 реда текст ти се струват "безкрайно" много.
    Не знаех ,че съм записал съзтезателно четене или пък ,че трябва да ми пука за мнението на човек който не ме познава :)

    П.П: Весело посрещане на Новата Година! : )

  6. Ех, извинявай, че съм оставил грешно впечатление за тона си. Отговорът ми беше с най-добри чувства ;)

    И извинявай много ама на 5тото домашно имаме 3 типа с по 4 метода и са ни написани всичките им полета и прототипи на методите ? WTF ?

    Ок, това е feedback, който си записвам. Допускам, че можехме да дадем по-прост интерфейс. Ще го имаме предвид.


    Наистина оценяваме тази форма на обратна връзка. Това е основният начин, по който подобряваме курса. Единствено апелирам за спазване на добрия тон.

  7. Аз само ще вмъкна един малък детайл, който мен ме притеснява.

    Като цяло много ми харесва, че всичко е описано доста подробно и намалява шансовете за погрешно разбиране на условието. Нещо, което обаче считам, че е добре да се спазва е наистина тестовете да проверяват публичния интерфейс - това да се тества "generateRegexp" не ми харесва, понеже не е публичен метод.

    Това наистина е малко спорно тук, понеже определено е добре да се тества точно тази функционалност в изолирана среда, но може би все пак може да се направи публичен? Очевидно go ни дава възможност да тестваме и private нещата, когато сме в същия пакет, но на мен поне ми е странно да тестваме около 15 публични метода и един private. Подозирам, че може и да греша тук - може да споделиш мнението си по този въпрос - така ли е по-добре според теб?

    Поставям този въпрос точно защото имплементацията, за която си мисля не изисква такъв метод, а подобен, но с разлики, които не ми дават възможност смислено да използвам вашия метод. В случая сигурно решението ще бъде просто да имплементирам вашия метод, който вътрешно да използва моя, а иначе никъде да не го ползвам в програмата си (излишен ми е). Алтернативата е промяна на идеята за имплементацията на решението.

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