Posts

Showcase-проекты

Вместо pet-проектов, которые у большинства из нас застывают в состоянии как на картинке, я практикую создание showcase-проектов. Этот подход хорошо зарекомендовал себя и прижился (как мне кажется) в моей команде.

Read more →

Service Template

Даже среди сильных инженеров часто можно услышать такое мнение:

Ну, микросервисы, это когда каждый сам ковыряется как хочет, выбирает что хочет и как-то там решает проблемы.

К большому сожалению, это частое заблуждение. Давайте обсудим, какие преимущества даёт применение паттерна Service Template на уровне всей компании.

Read more →

Инженерная зрелость

Инженерная зрелось — это показатель высокого уровня подготовки, глубины опыта и широты кругозора.

Мои коллеги, работавшие и работающие со мной, знают, что для характеристики уровня инженерной зрелости я использую три термина:

  • Единообразие
  • Системность
  • Воспроизводимость

Давайте обсудим, какой смысл я вкладываю в каждый из них. Я приведу примеры из моей предметной области и буду рад вашим в комментариях.

Read more →

traefik

Данная заметка является ответом на комментарий одного из моих подписчиков, который предложил тему следующего поста:

… как настроить докер чтобы LB сразу в нужные контейнеры роутил

Как я вижу поставленную задачу?

Read more →

mkcert

При разработке в локальном окружении многие пренебрегают имитацией https и запускают свои сервисы по http.

Задача состоит в следующем:

  • Сервить траффик на локальной машине по https с валидным сертификатом;
  • Сделать так, чтобы это легко воспроизводилось не только у вас, но и у всех членов вашей команды.
Read more →

dnsmasq

Когда-то многие из нас занимались разработкой сайтов, и, чтобы локально разрабатывать и тестировать очередной проект, добавляли в /etc/hosts ещё одну запись примерно такого вида:

127.0.0.1       next-project.tld
Read more →

http.DefaultClient

“1024 плети тому, кто использует http.DefaultClient в своём коде” — такая “шутка” звучит на наших стендапах. Проблема заключается в отсутствии таймаутов в настройках по умолчанию. На эту тему есть отличная статья в блоге Cloudflare.

Read more →

uber/fx + gRPC

В своих решениях я использую IoC-контейнер fx от Uber. Существуют разные лагери сторонников и противников подобных решений, но мы сконцентрируемся именно на теме применения fx.

Если вы не знакомы с основами применения, я рекомендую выполнить официальный Quick Start. Он поможет начать ориентироваться в решении.

Read more →

Gitlab Subgroup + go get

Дано:

  • gitlab, скорее всего, развернутый во внутреннем контуре;
  • “перфекционизм”, требующий раскладывать всё “по папочкам”, или требование свыше;
  • внутренний пакет на Go, который необходимо устанавливать как зависимость.
Read more →

Jetbrains Space + go get

Дано:

  • Вы используете Jetbrains Space.
  • Вы пишите код на Go.
  • Вам необходимо создать общую библиотеку и подключать её как модуль в ваших внутренних проектах.
Read more →