День 15 · задания

День 15 — задания и контрольная точка 3

Тренировка проходит по ходу чтения первых трёх страниц. Здесь итог: всё, что сверит course check 15. Правила контрольной точки — на четвёртой странице; прочитайте их, прежде чем начинать. Список страниц:

▶ Выполните
course toc 15

Ритуал перед коммитом

Пять пунктов, в контрольную точку не входят.

  1. Тесты — страница 1. Запускали go test — в черновике или в задачах. Готово, когда: пункт t_gotest зелёный.
  2. go vet — страница 1. Запускали go vet перед коммитом. Готово, когда: пункт t_vet зелёный.
  3. git diff — страница 3. Смотрели свои изменения до git add. Готово, когда: пункт t_gitdiff зелёный.
  4. Репозиторий — страница 3. В ~/gocourse/day15 есть репозиторий и не меньше восьми коммитов: по коммиту на задачу плюс начальные. Готово, когда: пункт git зелёный.
  5. Словарик — страница 2. В ~/errors.md минимум тридцать строк вида «текст ошибки — что значило», через тире. Готово, когда: пункт errors зелёный.

Контрольная точка 3

Восемь задач, каждая — в своей папке ~/gocourse/day15/kt1 … kt8. Условие — в TASK.txt этой папки, у каждого стажёра свои числа. Порог — 6 из 8.

№ Папка Задача Как сдаётся Готово, когда
1 kt1 тариф и цена одной функцией с двумя результатами main.go, прогон по видимым и скрытым вводам пункт kt1 зелёный
2 kt2 разбор числа: error как результат, код возврата 1 main.go, прогон: вывод, поток ошибок и код отдельно пункт kt2 зелёный
3 kt3 простыня разобрана на функции, вывод прежний main.go, прогон по вводам плюс счёт функций и строк main пункт kt3 зелёный
4 kt4 свой тест на готовую функцию cost_test.go, тест падает на подменённой реализации и проходит на другой записи той же логики пункт kt4 зелёный
5 kt5 табличный тест на четыре случая и больше fee_test.go, тест ловит подмену на границе и проходит на другой записи той же логики пункт kt5 зелёный
6 kt6 починка по упавшему тесту правка до двух строк в stock.go, скрытый авторский тест пункт kt6 зелёный
7 kt7 таблица трассировки вызовов заполненный table.txt пункт kt7 зелёный
8 kt8 что выведет: копия аргумента и затенение ответ командой course answer, см. ниже пункт kt8 зелёный

Ответ на задачу 8:

▶ Выполните · выделенное замените своим
course answer day15.kt8 ЧИСЛА

Вместо ЧИСЛА — два числа через пробел, в порядке из kt8/TASK.txt.

Начать:

▶ Выполните
cd ~/gocourse/day15/kt1
cat TASK.txt

После каждой задачи — коммит:

▶ Выполните
cd ~/gocourse/day15
git add .
git commit -m "kt1: тариф и цена"

Ответ на задачу 8 можно отправить заново — засчитывается последний. Программы, тесты и таблицу можно поправить и проверить снова: пересдача — это повторный course check 15.

Готово, когда: в отчёте course check 15 в разделе контрольной точки — Задач сдано: 6 из 8 или больше.


Звёздочка

В зачёт не входит, course check 15 эти задания не смотрит.

Готово, когда: тест для kt1 ловит ошибку в границе (проверьте: испортите свою функцию в копии и убедитесь, что тест упал), в git log у kt3 не меньше трёх шагов, а свой тест в kt6 проходит.


Порог дня: 10 пунктов из 13, и отдельно контрольная точка — 6 задач из 8. Без контрольной точки день не закрывается. Последний шаг — контрольные вопросы course quiz 15, после них ещё раз course check 15.