Диалоги о рыбалке
22 subscribers
1 photo
3 links
IT и рыбалка 🎣

Написать мне - @treaditup
Download Telegram
👩‍💻 pgtestdb — Go-библиотека для интеграционных тестов с Postgres, с которой миграции прогоняются один раз, а на каждый тест создается своя база из шаблона за ~10-20 мс ⚡️

- Параллельные тесты безопасны: у каждого своя независимая база, которая удаляется после успешного прохождения теста.
- Поддерживает популярные миграторы из коробки: migrate, goose, dbmate и другие (+ можно написать свой адаптер).
- Подключается в пару строк: pgtestdb.New(t, conf, migrator) возвращает *sql.DB + есть pgtestdb.Custom для альтернативных клиентов.

Как это работает:
- При первом вызове pgtestdb.New ищется готовая template-БД; если её нет - создаётся пустая БД, гоняются миграции, база помечается как шаблон. Затем для каждого теста создаётся клон из шаблона. 
- Клонирование из шаблона очень быстрое - десятки миллисекунд. 
- Выбор шаблона делается по хешу ваших миграций; синхронизация через Go-локи и Postgres advisory locks, поэтому миграции запускаются ровно один раз. 
- Если тест прошёл - его БД удаляется; если упал - остаётся, а в логи выводится строка для подключения и анализа содержимого.

P.S. Кто-то даже сделал клон на Python, но из коробки нет поддержки alembic 😙

#golang #postgres #testing #ci
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1
👩‍💻 macOS - самая приятная ОС, с которой мне доводилось работать

Моё знакомство с ней началось пару лет назад с Mac mini M2 8/256, который я взял на пробу. Он зашёл сразу: все плюсы unix-like системы, нормально работающие беспроводные интерфейсы, стабильный сон и чёткая картинка при дробном масштабировании.

Я пользовался им больше года и вообще не знал проблем, пока не понадобилась портативность. Тогда я продал миник и купил MacBook Air M3 15" 16/512, который до сих пор остаётся моим основным личным компьютером.

Параллельно на работе мне выдали Lenovo ThinkPad P16 Gen 1 (i7, 32/1024, RTX A1000). Я сразу поставил Ubuntu, всё настроил и начал работать. Поначалу было терпимо: даже получилось настроить хоткеи для мыши Logitech через solaar. Но со временем накопились проблемы:
• 4K-монитор при масштабе 100% - всё слишком мелкое, а 150% делало картинку мыльной
• Сон с внешним монитором работал нестабильно, периодически система зависала
• Ноутбук сильно грелся и шумел
• Через год solaar стал обрабатывать хоткеи через раз, переустановка не помогла
• Ввод пароля после блокировки экрана самопроизвольно переключался на русскую раскладку

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

Был вариант перейти на Windows + WSL, но это всё равно полумеры. Работу с личного ноутбука я тоже не рассматривал - важно физически отделять работу от личных проектов, да и с точки зрения безопасности это не очень.

В итоге я решил начать год с апгрейда и купил Mac mini M4 16/256 исключительно для работы, сразу проапгрейдив SSD до 1 TB. В сумме вышло около 800$, тогда как такая конфигурация из коробки стоит примерно 1000$. За ежедневный комфорт - более чем адекватно. 16 GB unified-памяти мне хватает, по опыту того же MacBook Air.

Почему не MacBook? Не вижу смысла переплачивать. Я работаю в основном из дома с одним внешним монитором, клавиатурой и мышью. В офисе тоже есть возможность подключить мониторы. В рюкзаке Mac mini занимает даже меньше места, чем ноутбук. Да, с ним не посидишь на кухне - но для этого у меня остаётся ThinkPad 🙂

А с какой ОС работаете вы?

#macos #linux #ubuntu
Please open Telegram to view this post
VIEW IN TELEGRAM
4