Часть 2 из 3 — Сеанс кодирования на Go — интерфейс командной строки Cobra + Viper для анализа текстовых файлов, извлечения данных Twitter, экспорта в файлы различных форматов и экспорта в Apache Cassandra.

ОБНОВЛЕННЫЕ ЧАСТИ:

  1. Twitz Coding Session in Go — Cobra + Viper CLI для парсинга текстовых файлов
  2. Сессия кодирования Twitz в Go — Cobra + Viper CLI с первоначальной установкой Twitter + Cassandra (этот пост)
  3. Сессия кодирования Twitz в Go — подведение итогов Cobra + Viper CLI + извлечение данных из Twitter

Обновленные ссылки на каждую часть будут размещены внизу этого поста, когда я их опубликую. Для кода, письменного прохождения и т.п. прокрутите вниз под видео и временные метки.

Собираем CLI, устанавливаем Cassandra, настраиваем Twitter API, ENV Vars и т. д.

0:04 Пипецкое вступление. Просто стандартная роковая мелодия.

3:40 Краткое резюме. Ознакомьтесь с предыдущей записью «Сессия кодирования Twitz в Go — Cobra + Viper CLI для разбора текстовых файлов» из этой серии.

4:30 Начало выполнения команды twitz parse для экспорта в XML, JSON и CSV (текст уже экспортировался в предыдущей сессии). Этот сегмент также включает в себя ряд рефакторингов для очистки функций, выделения управляющих структур и повышения читабельности кода.

В итоге рефакторинга twitz parse получилось вот так. Завершенный список составляется путем вызова функции buildTwitterList(), которая фактически находится в файле helpers.go. Затем распечатывает этот список как есть и проверяет, нужно ли выполнять экспорт файла. Если для экспорта файла задан параметр конфигурации, то этот процесс начинается с вызова exportParsedTwitterList(exportFilename string, exportFormat string, ... etc ... ). Затем простое одноуровневое управление структурой if then else для определения формата экспорта данных и вызов соответствующей функции экспорта для фактического экспорта данных и записи файла в базовую систему. Есть еще кое-какой рефакторинг, который можно было бы сделать, но на данный момент это довольно хорошо подчищено, учитывая разбрызгивание кода, с которого я начал сначала.

50:00 Я выполняю быструю установку одного узла Apache Cassandra, который позже буду использовать для разработки. Я также быстро покажу, как запускать и останавливать постустановочную установку.

Ссылка: Apache Cassandra, Страница загрузки и инструкции по установке.

53:50 Выбор библиотеки API go-twitter для Go. Я просматриваю несколько очень быстро, просто чтобы убедиться, что это та библиотека, которую я хочу использовать.

Ссылка: библиотека go-twitter

56:35 На этом этапе я рассказываю, как установить приложение Twitter в интерфейсе API. Это ключевая часть серии, в которой я рассматриваю потребительские ключи, токен доступа и секреты токенов доступа, а также где они находятся в интерфейсе Twitter и как их нужно сбросить, если они только что показали ключи в потоке. (как я только что сделал, шокеры!)

57:55 Здесь я обсуждаю и показываю, где настроить переменные среды внутри Goland IDE для построения и выполнения CLI. Как только они будут настроены, они станут основным механизмом, который я использую в среде IDE для тестирования CLI по мере создания дополнительных функций.

1:00:18 Обновление команды twitz config для отображения ключей, которые мы только что добавили в качестве переменных среды. Я настроил их также с некоторым синтаксическим анализом строки и обрезанием конца секретов, чтобы не отображалось все значение переменной, а было достаточно, чтобы подтвердить, что это действительно заданная конфигурация или переменная среды.

1:16:53 На данный момент я работаю над дополнительным рефакторингом функций, чтобы очистить существующий беспорядок в коде. Используя метод извлечения Goland и другие инструменты, я работаю над несколькими попытками рефакторинга, которые очищают код.

1:23:17 Копирование конфигурации сборки в Goland. Удобная маленькая вещь, которую вы можете сделать, когда у вас есть куча параметров конфигурации сборки.

1:37:32 В этой части видео я смотрю на пример app-auth в библиотеке кода, но я должен добавить оговорку, у меня возникают проблемы, используя точный пример. Но я работаю над этим и добираюсь до первых сообщений об ошибках, с которыми кто-либо может столкнуться, пока они не используют одни и те же примеры. Однако я исправлю их на следующем сеансе, однако этот фрагмент видео обеспечивает основу для моих ожидающих PR и связанных с ними работ, которые я отправлю в репозиторий.

Оставшаяся часть видео пытается выяснить, что именно происходит с ошибкой, а что нет.

Я включу рабочий код findem в следующий пост этой серии. А пока смотрите финал и наслаждайтесь!

1:59:20 Подведение итогов видео и расписание предстоящих стримов на Twitch.

ОБНОВЛЕННЫЕ ЧАСТИ СЕРИИ

  1. Twitz Coding Session in Go — Cobra + Viper CLI для парсинга текстовых файлов
  2. Сессия кодирования Twitz в Go — Cobra + Viper CLI с первоначальной установкой Twitter + Cassandra (этот пост)
  3. Сессия кодирования Twitz в Go — подведение итогов Cobra + Viper CLI + извлечение данных из Twitter