Восемнадцатый урок курса по Go и конец модуля о языке. Одна законченная программа из знакомых деталей: структура, срез, словарь, методы с указателем, ошибки, свой пакет и тесты. Ничего нового, кроме чтения команд с клавиатуры: собрать выученное в работающую вещь — отдельное умение.
Семнадцатый урок курса по Go. GitHub — не резервная копия, а та же история, видимая другим. Аккаунт и первый репозиторий, git remote и git push, почему пароль там больше не принимают и чем его заменили, README как первое, что читает человек, и что нельзя выкладывать никогда.
Шестнадцатый урок курса по Go. Git хранит не последнюю версию файла, а все состояния, к которым можно вернуться. git init, три места — папка, индекс и история, — git status как самая частая команда, что писать в сообщении, зачем нужен .gitignore и как достать вчерашний файл.
Пятнадцатый урок курса по Go. Пакет — это папка, а заглавная буква в имени — дверь наружу. Как разложить программу по папкам, что записано в go.mod и go.sum, как подключить чужой пакет командой go get, зачем нужна папка internal и почему go mod tidy запускают перед отправкой кода.
Четырнадцатый урок курса по Go. Ошибка здесь не прерывает программу, а возвращается вторым значением, и проверяют её первой. error как интерфейс с одним методом, errors.New и fmt.Errorf, обёртка через %w и errors.Is, своя ошибка как значение — и почему panic для этого не нужен.
Тринадцатый урок курса по Go. Интерфейс — список умений: одна функция работает с любым хранилищем, если оно умеет то, что записано в договоре. Почему реализация не объявляется, а получается сама, как проверить её при сборке и почему подменное хранилище делает тесты возможными без базы.
Двенадцатый урок курса по Go. Ответ на ловушку прошлого урока: указатель — это адрес значения, а не его копия. Как работают & и *, чем метод отличается от функции, когда приёмник берут указателем, а когда значением, и почему for i := range чинит то, что for _, a := range ломает.
Одиннадцатый урок курса по Go. Структура — свой тип: type Article struct вместо трёх словарей, которые держали в согласии вручную. Поля и точка, литерал с именами и без, нулевая структура, срез структур и главная ловушка: структура передаётся копией, и правка внутри range пропадает.
Десятый урок курса по Go. Проверка, которая остаётся: файл _test.go рядом с кодом, функция TestXxx и команда go test. Как читать провал — имя теста, файл, строка, «получили» и «ждали», — чем t.Errorf отличается от t.Fatalf и почему проверять надо края списка, а не его середину.
Предисловие к курсу по Go. Что нужно на самом деле — компьютер, право ставить программы и полчаса в день, — и чего не нужно: английского, математики и мощной машины. Какой у вас терминал и почему это важно, что делать, если установка программ запрещена, и во сколько всё это обойдётся.