Хотелось бы и ложку дёгтя :)
В большой команде, если используется Flyway, приходится придумывать костыли в виде сообщения в чатике "я занял номер миграции 187", либо использовать флаг outOfOrder, и всё равно на ревью могут выскочить одинаковые номера и придется править.
У ликвибейза xml многословен, но у yaml и других вариантов нет автодополнения.
У меня тут свой термин образовался: pet code in production project. Это когда вместо проверенного и знакомого кода суёшь в проект что-то новое и молодежное, потому что "ну а где и когда я это ещё попробую?".
Проекту год с небольшим, постоянно пишут код от 1.5 до 2.5 чел. Ребейзим постоянно, мерджи 99% только FF, история прекрасна и чиста. Вероятно, всё-таки большое значение имеет размер команды — чем меньше, тем проще так делать.
Лично я пользуюсь как IDEA, так и TortoiseGit — часть действий мне в нём делать привычнее.
Из лайфхаков. Если история ветки богатая на MR с базовой веткой и ребейз сложен из-за конфликтов, можно сделать Soft Reset на базовую ветку и закоммитить текущее состояние как единственный засквошенный коммит.
Добавлю, что в ряде случаев, когда объекты запросов / expected ответов большие, удобно их не собирать прямо тут, а всё-таки вынести в какой-нибудь .json в ресурсах, и вспомогательными методами (jackson-ом) читать, когда надо. Это в поддержку того, чтобы не использовать продуктовые мапперы.
Странно такое слышать. Спринг куда более магический, чем Ломбок. Документация небольшая и внятная, может быть просто у вас предвзятое отношение с каких-нибудь старых версий, когда ещё в нём были баги.
Однако, для использование в проекте jackson'а, необходимо дополнить наш клас, чтобы он успешно десериализовывался.
Нет, достаточно в lombok.config указать lombok.anyConstructor.addConstructorProperties (https://projectlombok.org/features/configuration), чтобы ломбок на конструкторы добавлял аннотацию ConstructorProperties, которую Джексон прекрасно понимает.
Мы на текущем проекте используем MySQL. У меня Windows, и поднятие чистого контейнера с docker hub занимает секунд 20, без pull. Миграций тоже около 100+, и, если не использовать tmpfs для data dir, поднятие контекста становится вечным. Ваш вариант (подготовить образ со схемой данных) тоже рассматривал, но сколкнулся с тем, что тесты все равно занимают много времени, если пишут на диск, а не в ОЗУ.
Сколько у вас тестов и как долго они выполняются? Не удалось ли вам с подготовкой образа как-то примонтировать tmpfs (может быть, копированием data dir через init.sh в образе)?
Если что, оставил свой путь в заметке: https://rocketscien.se/testcontainers
Мне кажется, что здесь для ГА слишком "плоское" пространство, простите. Про идею банить и сужать воронку: не сводится ли это всё в каком-то виде к градиентному спуску?
Оправдаюсь тем, что не знаю в полной мере, что такое Ардуино и вся это железячство. А так как на Си писал, решил, что этот путь может оказаться прямее.
Сейчас вижу, что, скорее всего, был неправ.
А с ограничением на таски пока не столкнулся. В целом хочу сделать достаточно простую вещь — временами опрашивать 18b20, по формуле считать когда вкл/выкл котёл, дёргать реле, а заодно отправлять всё измеренное и произошедшее по mqtt.
Так как в доме не живу, а зимой даже планирую некоторое время его не посещать, хотелось бы знать, что там всё ОКъ — скорее всего куплю самый-самый дешёвый 3g-модем (покрытие норм) с раздачей Wi-Fi.
Спасибо за статью. Очень вовремя!
Не более как неделю запустил в ещё пока строящемся доме отопление от котла. Котел умеет как eBUS, так и простой вход З/Р.
Установщики предлагали систему EktoControl (11к), но я в ней не увидел необходимости.
Имеется в наличии пара wemos d1 mini pro (v1.1), один ds18b20, решил как раз на этих выходных попробовать сделать управление для котла.
На си писал давно, но тулинг меня начал убивать :) может я просто зря решил не хватать Ардуино, а попытаться использовать NonOS / RTOS SDK.
Попробовал по их инструкциям, надо сделать в Windows кучу софта, ок. Не завелось. Попробовал CLion + esp8266 plugin. Ну вроде что-то работало, но подсказки кода нет.
Сейчас рабочий вариант нашел только VSCode + PlatformIO на основе NonOS. Но расстраивает свежее сообщение в гитхабе, что NonOS всё.
Мне кажется, одним из путей развития сервиса может быть предоставление "экспертных" отчётов по видео, что может получить вес, например, при разборе ДТП. Когда живой человек измеряет скорости объектов на видео по понятной методике, с указанием всех погрешностей.
Нет, не вызывал. Долго всматривался, как приложение работает, никаких проблем не увидел. Но, конечно же, тестировать и проверять надо внимательно.
И я не понял отличие от просто -alpine сборки, там же тоже должен быть по идее musl.
Хотелось бы и ложку дёгтя :)
В большой команде, если используется Flyway, приходится придумывать костыли в виде сообщения в чатике "я занял номер миграции 187", либо использовать флаг outOfOrder, и всё равно на ревью могут выскочить одинаковые номера и придется править.
У ликвибейза xml многословен, но у yaml и других вариантов нет автодополнения.
У меня тут свой термин образовался: pet code in production project. Это когда вместо проверенного и знакомого кода суёшь в проект что-то новое и молодежное, потому что "ну а где и когда я это ещё попробую?".
rocketscien.se/testcontainers-2
Проекту год с небольшим, постоянно пишут код от 1.5 до 2.5 чел. Ребейзим постоянно, мерджи 99% только FF, история прекрасна и чиста. Вероятно, всё-таки большое значение имеет размер команды — чем меньше, тем проще так делать.
Лично я пользуюсь как IDEA, так и TortoiseGit — часть действий мне в нём делать привычнее.
Из лайфхаков. Если история ветки богатая на MR с базовой веткой и ребейз сложен из-за конфликтов, можно сделать Soft Reset на базовую ветку и закоммитить текущее состояние как единственный засквошенный коммит.
Добавлю, что в ряде случаев, когда объекты запросов / expected ответов большие, удобно их не собирать прямо тут, а всё-таки вынести в какой-нибудь .json в ресурсах, и вспомогательными методами (jackson-ом) читать, когда надо. Это в поддержку того, чтобы не использовать продуктовые мапперы.
Странно такое слышать. Спринг куда более магический, чем Ломбок. Документация небольшая и внятная, может быть просто у вас предвзятое отношение с каких-нибудь старых версий, когда ещё в нём были баги.
Нет, достаточно в lombok.config указать lombok.anyConstructor.addConstructorProperties (https://projectlombok.org/features/configuration), чтобы ломбок на конструкторы добавлял аннотацию ConstructorProperties, которую Джексон прекрасно понимает.
Мы на текущем проекте используем MySQL. У меня Windows, и поднятие чистого контейнера с docker hub занимает секунд 20, без pull. Миграций тоже около 100+, и, если не использовать tmpfs для data dir, поднятие контекста становится вечным. Ваш вариант (подготовить образ со схемой данных) тоже рассматривал, но сколкнулся с тем, что тесты все равно занимают много времени, если пишут на диск, а не в ОЗУ.
Сколько у вас тестов и как долго они выполняются? Не удалось ли вам с подготовкой образа как-то примонтировать tmpfs (может быть, копированием data dir через init.sh в образе)?
Если что, оставил свой путь в заметке: https://rocketscien.se/testcontainers
Мне кажется, что здесь для ГА слишком "плоское" пространство, простите. Про идею банить и сужать воронку: не сводится ли это всё в каком-то виде к градиентному спуску?
Я бы ещё добавил недавно появившуюся возможность давать доступ в группу проектов другой группе (например, "Developers").
Приходилось только несколько лет назад профилировать win32/64 приложения под VS. Вроде результаты добывались несложно и были адекватными.
Сейчас вижу, что, скорее всего, был неправ.
А с ограничением на таски пока не столкнулся. В целом хочу сделать достаточно простую вещь — временами опрашивать 18b20, по формуле считать когда вкл/выкл котёл, дёргать реле, а заодно отправлять всё измеренное и произошедшее по mqtt.
Так как в доме не живу, а зимой даже планирую некоторое время его не посещать, хотелось бы знать, что там всё ОКъ — скорее всего куплю самый-самый дешёвый 3g-модем (покрытие норм) с раздачей Wi-Fi.
Спасибо за статью. Очень вовремя!
Не более как неделю запустил в ещё пока строящемся доме отопление от котла. Котел умеет как eBUS, так и простой вход З/Р.
Установщики предлагали систему EktoControl (11к), но я в ней не увидел необходимости.
Имеется в наличии пара wemos d1 mini pro (v1.1), один ds18b20, решил как раз на этих выходных попробовать сделать управление для котла.
На си писал давно, но тулинг меня начал убивать :) может я просто зря решил не хватать Ардуино, а попытаться использовать NonOS / RTOS SDK.
Попробовал по их инструкциям, надо сделать в Windows кучу софта, ок. Не завелось. Попробовал CLion + esp8266 plugin. Ну вроде что-то работало, но подсказки кода нет.
Сейчас рабочий вариант нашел только VSCode + PlatformIO на основе NonOS. Но расстраивает свежее сообщение в гитхабе, что NonOS всё.
Вот это самое, что сейчас мне мешает автоматизировать…
Мне кажется, одним из путей развития сервиса может быть предоставление "экспертных" отчётов по видео, что может получить вес, например, при разборе ДТП. Когда живой человек измеряет скорости объектов на видео по понятной методике, с указанием всех погрешностей.
И я не понял отличие от просто -alpine сборки, там же тоже должен быть по идее musl.
Я использую этот как базовый: https://hub.docker.com/r/bellsoft/liberica-openjdk-alpine-musl
Ту версию, что по умолчанию (лайт, 100 мб). Spring boot 2, постгря/оракл, полёт нормальный.
Спасибо за статью. Как раз сейчас пишу SOAP-клиента, логирование пригодится.