Девета и десета задача

  1. Публикували сме последните две задачи за курса – девета и десета.

    Двете задачи са традиционно ретроспективни и са две части с една и съща цел и мотивация. Условията им са по-особени – в тях искаме да решите отново първа до осма задача, подобрявайки предишните си решения, като приложите всичко, научено до момента и като почерпите опит от колегите си, или от нашите решения.

    Срокът и за двете задачи вече тече и е малко повече от две седмици – до сряда вечер, 27 януари.

    В тази тема може да задавате въпроси по условието на ретроспективните задачи.

  2. Привет,

    имам един въпрос за стила, който не можах да си отговоря след като прегледах style guide-a.

    В if (примерно) използвам отрицание ! - if !variable. Това е ок, но когато пусна skeptic има проблем, че около ! няма спейс. Ако напиша if ! variable всичко е наред, но не съм сигурен дали това е оптималния вариант :)

    P.S. Винаги съществува и случая така да обърна останалата логика, че да не трябва да се използва отрицание - може би така ще бъде по-добре?

    Поздрави :)

  3. Имам и един въпрос към 3та задача и теста DrunkenMathematician #worthless can calculate for 8. В условието на задача пише, че трябва да върне масив от първите n (в случая 8) елемента, но в expected има повече - expected: [(1/1), (2/1), (1/2), (1/3), (3/1), (4/1), (3/2), (2/3), (1/4), (1/5), (5/1)].

    Това така ли трябва да бъде или е сбъркан теста?

    Поздрави

  4. За стила - ако if-а няма else го напиши като unless variable. Иначе, предпочитаме not пред ! - if not variable. Проблемът с ! в Скептик наистина го има, по принцип трябва да е без спейс.

    За теста - така трябва да бъде. В задачата пише

    Напишете функция DrunkenMathematician.worthless(n), приемаща един аргумент n.
    Тя трябва да връща масив, съдържащ най-големия отрязък на рационалните
    числа, сумата на които не надвишава n-тото число на Фибоначи.
    

    Не е дефинирано като масив с n елемента.

  5. Привет, в този тест правилно ли е съобщението? Не трябва ли да поиска 'at least 2' ?

    expect { Spreadsheet.new('=SUBTRACT(1)')['A1'] }.to raise_error(
            Spreadsheet::Error, /Wrong number of arguments for 'SUBTRACT': expected 2, got 1/
          )
    

    П.С Моя грешка, правилно е. Тук са фиксирани аргументите, не знам защо реших, че не е така :)

  6. @Огнян, ако не си решил някоя задача това е идеален момент да го направиш :) Друг вариант е просто да използваш нашето решение, но да го разбереш добре. От четене на чужд код също може да се научи много, така че може част от двайсетте неща да са точно по задачата, която не си решил преди. :)

    Няма проблем ако сте направили под 20, но това може да се отрази на точките от задачата. Все пак, тази задача се оценява "ръчно" и повече държим на качеството, отколкото на количеството.

  7. @Георги, опасявам се, че все още не ми е ясно. В условието на задачата пише: "Ако не сте предали решение за дадена задача, оставяте файла на решението празен." Aко не съм направил задача 5 трябва ли да има нещо във файла с име 05.rb?

  8. @Огнян, да, трябва да има нещо във файла. Празен файл трябва да е първият ти commit. След това правиш решение на пета задача и го commit-ваш. Просто започваш от празен файл, тъй като не си имал решение преди.

  9. Това се отнася за първия commit. Той представлява състоянието на решенията в момента, в който са били предадени преди като са свършили сроковете им. След това може да напишеш ново решение, в последващи commit-и.

    В описанието на девета задача пише следното:

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

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