Posts

oasdiff

Дано:

  • Две версии одного приложения: A и B.
  • Обе версии предоставляют контракт, описанный с помощью OpenAPI.
  • У приложения есть пользователи, соблюдающие текущий контракт.

Задача:

  • Выяснить, имеются ли обратно несовместимые изменения в контракте новой версии.
  • Выяснить, какие дополнительные изменения произошли в контракте.
Read more →

Golang Test Summary

Стандартные инструменты Go не позволяет вывести сводную информацию по тестам. Но, когда у вас большой проект, и надо понимать общую картину, такая информация бывает полезна. Допустим, вы обновляете ваш собственный форк до состояния апстрима, и вам необходимо оценить объем проблем, вызванных слиянием изменений.

Read more →

APFS Case Sensitive

По умолчанию файловая система в macOS регистронезависимая. Это значит, что file.txt и FILE.txt для неё одно и то же. В некоторых, хоть и довольно редких ситуациях, при разработке и поддержке некоторых проектов может потребоваться регистрозависимость. Переформатировать диск и переустанавливать ОС — долгое и неблагодарное занятие. Вот как я решил эту проблему.

Read more →

Postgres Table Naming

Почему я предпочитаю именовать таблицы в postgres в единственном числе?

Read more →

/usr/bin/arch

Многие из нас за последнее время стали обладателями маков на процессорах M1. Для поддержки приложений, написанных для процессоров Intel есть Rosetta. В этой заметке я хочу подсветить расширенную утилиту arch, которая на маках работает чуть шире, чем uname -m, и ситуации, в которых она может быть полезна.

Read more →

Leetcode 2

Leetcode предлагает три уровня сложности задач: Easy, Medium и Hard. Очевидно, что за решения задач более высоких уровней сложности дают больше баллов рейтинга. Но сейчас нас интересует не рейтинг, а отношение к вашему профилю со стороны компании, куда вы будете проходить интервью.

Read more →

Leetcode 1

Давайте обсудим цели, которые ставят перед собой разработчики, решая задачи на leetcode. Исходя из них определимся с выбором языка программирования, на котором и будем решать эти задачи. На мой взгляд, существует, как минимум, три варианта:

  • Повысить собственный уровень алгоритмической подготовки — самый очевидный;
  • Опробовать подходы к обработке данных в конкретно взятом языке программирования;
  • Гордиться циферкой рядом с фото профиля — “нагриндить” рейтинг и хвастаться коллегам.
Read more →

Leetcode 0

К алгоритмическим собеседованиям у многих разработчиков очень неоднозначное отношение. Кто-то считает секцию алгоритмов обязательной, кто-то нет. Многие компании, несмотря на то, что для реальной работы и выполнения их задач намного важнее знание и понимание принципов чистой архитектуры, паттернов проектирования, глубокое погружение в тот или иной фреймворк, включают в свои интервью алгоритмическую секцию, часто с нетривиальными задачами, которые довольно сложно решать в стрессовой ситуации и в условиях ограничения по времени.

Read more →

pre-commit

Я и моя команда столкнулись с проблемой, когда нарушения соглашений по Code Style стали выявляться достаточно поздно: в CI или на Code Review. Общей настройки .editorconfig нам было явно недостаточно, так как сам по себе editorconfig не может описать полностью все нюансы форматирования.

Read more →

chezmoi

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

  • git
  • vim/nvim
  • tmux
  • editorconfig
  • karabiner
  • zsh
  • и другие.

Обычно, конфигурационные файлы называются дотфайлами (dotfiles) — их имена начинаются с точки (.), что в мире unix-подобных систем делает файл скрытым.

Read more →