Сообщение об эпизоде и ссылки на видео: 1, 2 (этот пост), 3, 4 и 5 (почти готово)
Во втором эпизоде я просмотрел много материала, который я рассмотрел в первом эпизоде, но добавил больше контекста, исторических причин, по которым некоторые вещи существуют в Go и стеке, а также просмотрел ряд новых элементов информации. . Еще одна вещь, которую я получил в этом эпизоде, — это управление пакетами и зависимостями с помощью Go Dep, а также то, как создать пакет или библиотеку зависимостей для использования в других библиотеках или приложениях Go. Это всего лишь небольшое введение в этом эпизоде, но оно имеет решающее значение для будущих эпизодов, так как я буду углубляться в создание библиотеки и связанные с этим подробности.
В этом посте я, как обычно, привожу разбивку по временным точкам, а также несколько дополнительных фрагментов информации и примеров кода, а также ссылки на репозиторий, который я настроил для этого конкретного эпизода. Быстрые ссылки на эти ссылки приведены ниже, и я также буду ссылаться на определенные моменты вызова в определенные моменты времени.
Быстрые ссылки:
- Репозиторий эпизода 2
- Гитхаб: https://github.com/golang/go
- Голанг: https://golang.org
- Язык программирования Go Алана А. А. Донована и Брайана В. Кернигана.
Ключевые темы
Типы данных, пакеты и управление зависимостями
2:52 — Возиться с началом. Ведь субботнее утро!
3:00 — подведение итогов того, что мы рассмотрели на первом занятии. Включает также краткий обзор кода предыдущего сеанса, например библиотеки генерации случайных данных, которую мы настроили и использовали.
6:40 — некоторые особенности IDE, рассказы о преимуществах использования Go и несколько подробных соглашений о том, как используется синтаксис, переменные и связанные функции.
7:40 — описание gofmt
и того, что это нам дает.
9:45 — просмотр плагинов gofmt
и возможности IDE в соответствии с соглашениями.
14:06 — время нового примера! В этом я работаю над примером, показывающим, как найти повторяющиеся строки в переданном тексте.
Поиск дубликатов строк
Я прошел через различные этапы создания кода, но затем немного отклонился от примера в книге. Вместо строк CLI берет содержимое из текстового файла. Код в main.go получился таким.
Затем, если вы хотите проверить текстовый файл и оставшееся содержимое в этом проекте, проверьте главную ветку репозитория эпизода 2.
36:34 — Здесь я делаю тщательный шаг по фиксации этого проекта на github, который является репозиторием, включенным в этот пост. Однако я прохожу через интерфейс использования Jetbrains Goland для выполнения фиксации, как он включает gofmt
и другие функции для улучшения состояния кода и обеспечения его соответствия требованиям линтера и связанным с ним критериям. Я также рассказываю о файле .gitignore и других элементах для создания полезного репозитория.
44:30 — Настройка репозитория для сегодняшнего кода на https://github.com/Adron/learning-go-…
50:00 — Повторная настройка ключа для использования Github. Как настроить ваши ssh-ключи с помощью ssh-keygen.
56:00 — выходя за рамки простого языка и создав сборку Go на Travis CI.
1:10:16 — создание новая ветка для следующих примеров кода и тем. В этот момент я перехожу к объявлениям типов. Работа с некоторыми константами, очень простыми объявлениями функций и соответствующими возможностями для расчета температуры в диапазоне от Фаренгейта до Цельсия.
Ветка tempApp доступна в репозитории здесь.
В этот момент я перехожу к объявлениям типов. Работа с некоторыми константами, очень простыми объявлениями функций и соответствующими возможностями для расчета температуры в диапазоне от Фаренгейта до Цельсия.
На этом этапе мы взглянем на наш первый пакет. Этот пакет в итоге выглядел так.
В файле main.go я показал, как вы можете использовать этот пакет, добавив соответствующий импорт, показанный в этом коде.
1:17:54 — На этом этапе, чтобы улучшить читаемость размеров шрифта, я перехожу к различным опциям Goland IDE.
1:38:12 — Создаю последнюю ветвь для этой сессии, чтобы получить общедоступный пакет и использовать его в проекте. Для этого я использую пакет генерации случайных данных для использования в коде приложения.
1:44:50 — Дальнейшее обсуждение и объяснение того, что включать в файлы .gitignore для управления проектами, а также что включать и не включать для зависимостей и других деталей, связанных со всем этим.
2: 13:22 — Офигенное хакерское окончание.