День 15 — задания и контрольная точка 3
Тренировка проходит по ходу чтения первых трёх страниц. Здесь итог: всё, что сверит course check 15. Правила контрольной точки — на четвёртой странице; прочитайте их, прежде чем начинать. Список страниц:
course toc 15Ритуал перед коммитом
Пять пунктов, в контрольную точку не входят.
- Тесты — страница 1. Запускали
go test— в черновике или в задачах. Готово, когда: пунктt_gotestзелёный. go vet— страница 1. Запускалиgo vetперед коммитом. Готово, когда: пунктt_vetзелёный.git diff— страница 3. Смотрели свои изменения доgit add. Готово, когда: пунктt_gitdiffзелёный.- Репозиторий — страница 3. В
~/gocourse/day15есть репозиторий и не меньше восьми коммитов: по коммиту на задачу плюс начальные. Готово, когда: пунктgitзелёный. - Словарик — страница 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напишите тест на функцию тарифа: случай на каждой границе и на единицу по обе стороны. Прогон теста быстрее, чем набор вводов файлами. - В
kt3после каждого вынесенного куска запускайте примеры изTASK.txtи коммитьте отдельно. В концеgit log --onelineпокажет историю разбора простыни по шагам. - В
kt6допишите свой случай в отдельный файлdays_test.go— тот, который вы бы добавили, чтобы дефект больше не вернулся. Файлstock_test.goпри этом не трогайте.
Готово, когда: тест для kt1 ловит ошибку в границе (проверьте: испортите свою функцию в копии и убедитесь, что тест упал), в git log у kt3 не меньше трёх шагов, а свой тест в kt6 проходит.
Порог дня: 10 пунктов из 13, и отдельно контрольная точка — 6 задач из 8. Без контрольной точки день не закрывается. Последний шаг — контрольные вопросы course quiz 15, после них ещё раз course check 15.