Поговорили о конфигурировании Go-приложения.
Касались следующих тем:
- [12-factor app][1], а конкретно [3ий раздел, посвященный конфигам][2];
- глобальный контекст - хорошо или плохо; когда глобальный контекст плох;
- популярные/удобные проекты для конфигурирования:
- https://github.com/spf13/viper;
- https://github.com/plaid/go-envvar;
- простое решение по конфигурированию для небольших проектов - функция, заполняющая структуру со значениями по умолчанию из переменных окружения;
- [плагин][3] для GoLand для использования `.env`-файла при запуске билда/тестов;
- тестирование http-хендлеров;
- table-тестирование в интеграционных тестах;
- пирамида тестов;
Также я поделился первым знакомством с couchbase документной БД:
- важная разница community & enterprise версий;
- язык запросов N1QL - спинофф ANSI SQL;
- [сравнение][4] Couchbase и MongoDB
[1]: https://12factor.net/
[2]: https://12factor.net/config
[3]: https://plugins.jetbrains.com/plugin/7861-envfile
[4]:
https://db-engines.com/en/system/Couchbase%3BMongoDB