В Golang моя самая любимая возможность — это работать в монорепозитории, использовать общие пакеты, при этом собирать разные сервисы, в которых будет ровно тот функционал, который ты определил для сервиса. Это прям божественно!
Вот например один из проектов, который надеюсь когда-нибудь попадет в прод:
- Общие компоненты лежат в internal/shared
- API-контракты в yaml-файлах конкретного домена, которые можно переиспользовать
- Транспортный слой отделен от бизнес-логики
- Конфигурация для сервиса - в домене, при этом наследуется от общей конфигурации
А ключевое — нет дублирования кода между микросервисами. Хочешь поделиться логикой? Просто создаешь пакет и импортируешь его где нужно.
При этом Go делает такой подход невероятно простым — не нужны никакие хитрые пакетные менеджеры, все из коробки. Все локально, все под рукой, а система модулей Go сама разруливает зависимости.
Сборка тоже приятная — каждая папка cmd/* становится отдельным сервисом со своей точкой входа. Хочешь новый сервис? Просто добавь еще одну директорию в cmd.
Микросервисы без микроболи — вот что такое монорепозиторий на Go!
А вы используете монорепозитории? Поделитесь опытом в комментариях!
#golang #монорепо #микросервисы #разработка #архитектура
Вот например один из проектов, который надеюсь когда-нибудь попадет в прод:
- Общие компоненты лежат в internal/shared
- API-контракты в yaml-файлах конкретного домена, которые можно переиспользовать
- Транспортный слой отделен от бизнес-логики
- Конфигурация для сервиса - в домене, при этом наследуется от общей конфигурации
А ключевое — нет дублирования кода между микросервисами. Хочешь поделиться логикой? Просто создаешь пакет и импортируешь его где нужно.
При этом Go делает такой подход невероятно простым — не нужны никакие хитрые пакетные менеджеры, все из коробки. Все локально, все под рукой, а система модулей Go сама разруливает зависимости.
Сборка тоже приятная — каждая папка cmd/* становится отдельным сервисом со своей точкой входа. Хочешь новый сервис? Просто добавь еще одну директорию в cmd.
Микросервисы без микроболи — вот что такое монорепозиторий на Go!
А вы используете монорепозитории? Поделитесь опытом в комментариях!
#golang #монорепо #микросервисы #разработка #архитектура
👍8❤1🤔1
⚠️ Обнаружен вредоносный код в GitHub Actions
Исследователи из StepSecurity обнаружили компрометацию в GitHub Actions проекта обработчика changed‑files. Это решение позволяет автоматически запускать сценарии при различных событиях, таких как push-запросы и pull-запросы.
Он используется в более чем 23 тыс. репозиториев, применяющих GitHub Actions в инфраструктуре непрерывной интеграции, для отслеживания изменения файлов и каталогов. При выполнении обработчика вредоносная вставка собирала присутствующие в сборочном окружении ключи доступа и прочие конфиденциальные данные.
Разработчикам, пользовавшимся changed-files, требуется незамедлительно провести аудит своей инфраструктуры и проверить публичные логи систем интеграции на базе GitHub Actions на предмет утечки конфиденциальных данных.
Источник: https://habr.com/ru/news/891256/
Исследователи из StepSecurity обнаружили компрометацию в GitHub Actions проекта обработчика changed‑files. Это решение позволяет автоматически запускать сценарии при различных событиях, таких как push-запросы и pull-запросы.
Он используется в более чем 23 тыс. репозиториев, применяющих GitHub Actions в инфраструктуре непрерывной интеграции, для отслеживания изменения файлов и каталогов. При выполнении обработчика вредоносная вставка собирала присутствующие в сборочном окружении ключи доступа и прочие конфиденциальные данные.
Разработчикам, пользовавшимся changed-files, требуется незамедлительно провести аудит своей инфраструктуры и проверить публичные логи систем интеграции на базе GitHub Actions на предмет утечки конфиденциальных данных.
Источник: https://habr.com/ru/news/891256/
Хабр
Выявлена компрометация обработчика changed-files в GitHub Actions, используемого в более 23 тыс. репозиториев
Исследователи по ИБ из StepSecurity обнаружили компрометацию в GitHub Actions проекта обработчика changed‑files . Это открытое решение, позволяющее автоматически запускать сценарии сборки и...
😱1
AK-40.png
13.3 KB
Неделю назад вышла Apache Kafka 4.0, но только сейчас дошли руки разобраться что там нового. И это, надо сказать, весьма значимый релиз!
Самое главное — с версии 3 можно было работать без ZooKeeper в экспериментальном режиме, но теперь это стало поведением по умолчанию. Технология KRaft (Kafka Raft) полностью заменила ZooKeeper, что серьезно упрощает развертывание и управление. Больше не нужно поддерживать отдельный ZooKeeper-кластер, что снижает операционные издержки и улучшает масштабируемость. Прощай, ZooKeeper, ты служил верой и правдой! 👋
Что еще интересного:
Новый протокол групп потребителей (KIP-848)
Наконец-то решена проблема с ребалансировкой! Если раньше при изменении числа потребителей происходила "stop-the-world" ребалансировка, приводящая к задержкам, то теперь процесс происходит гораздо плавнее. Особенно полезно для крупных деплойментов — больше никаких долгих простоев при масштабировании.
Очереди для Kafka (KIP-932, ранний доступ)
Появилась концепция "share group" для организации кооперативного потребления данных из топиков. По сути, это делает возможной реализацию классических очередей, где каждое сообщение обрабатывается только одним потребителем. Теперь Kafka может легко заменить RabbitMQ и другие традиционные брокеры сообщений.
Eligible Leader Replicas (превью)
Введен поднабор допустимых реплик (ELR), которые гарантированно содержат все данные и могут безопасно становиться лидерами без потери данных.
Pre-Vote механизм
Узлы теперь проверяют свою пригодность для лидерства перед запуском выборов, что уменьшает ненужные смены лидера и сокращает перебои при временных сетевых проблемах.
Повышение требований к Java
Kafka Clients и Streams теперь требуют Java 11, а брокеры, Connect и инструменты — Java 17.
Переход на Log4j2
Логирование переведено на Log4j2, что дает больше возможностей и лучшую производительность.
Не забудьте изучить гайд по переходу
А вы уже планируете переход на Kafka 4.0? Делитесь опытом в комментариях!
#kafka #apache #bigdata #streaming #devops #dataengineering #dev
Самое главное — с версии 3 можно было работать без ZooKeeper в экспериментальном режиме, но теперь это стало поведением по умолчанию. Технология KRaft (Kafka Raft) полностью заменила ZooKeeper, что серьезно упрощает развертывание и управление. Больше не нужно поддерживать отдельный ZooKeeper-кластер, что снижает операционные издержки и улучшает масштабируемость. Прощай, ZooKeeper, ты служил верой и правдой! 👋
Что еще интересного:
Новый протокол групп потребителей (KIP-848)
Наконец-то решена проблема с ребалансировкой! Если раньше при изменении числа потребителей происходила "stop-the-world" ребалансировка, приводящая к задержкам, то теперь процесс происходит гораздо плавнее. Особенно полезно для крупных деплойментов — больше никаких долгих простоев при масштабировании.
Очереди для Kafka (KIP-932, ранний доступ)
Появилась концепция "share group" для организации кооперативного потребления данных из топиков. По сути, это делает возможной реализацию классических очередей, где каждое сообщение обрабатывается только одним потребителем. Теперь Kafka может легко заменить RabbitMQ и другие традиционные брокеры сообщений.
Eligible Leader Replicas (превью)
Введен поднабор допустимых реплик (ELR), которые гарантированно содержат все данные и могут безопасно становиться лидерами без потери данных.
Pre-Vote механизм
Узлы теперь проверяют свою пригодность для лидерства перед запуском выборов, что уменьшает ненужные смены лидера и сокращает перебои при временных сетевых проблемах.
Повышение требований к Java
Kafka Clients и Streams теперь требуют Java 11, а брокеры, Connect и инструменты — Java 17.
Переход на Log4j2
Логирование переведено на Log4j2, что дает больше возможностей и лучшую производительность.
Не забудьте изучить гайд по переходу
А вы уже планируете переход на Kafka 4.0? Делитесь опытом в комментариях!
#kafka #apache #bigdata #streaming #devops #dataengineering #dev
👍5🔥1
Моему каналу буквально через неделю будет два года, в нем уже 311 публикаций. Последние три месяца мне почти всегда удается писать минимум по 5 постов в неделю. А самое главное, я вижу ваши реакции, и это дает мне стимул писать больше! 💪
Я стараюсь писать то, что будет интересно именно вам, и вы можете помочь мне сделать мои посты еще лучше. Набросайте в комментариях честно:
- Чего вам не хватает в канале?
- Какие темы хотелось бы видеть чаще?
- Какие посты вам запомнились больше всего?
- Какие форматы контента вам нравятся?
Буду благодарен за любую обратную связь — ваше мнение действительно важно для развития канала!
#обратнаясвязь #годовщина #блогер_я
Я стараюсь писать то, что будет интересно именно вам, и вы можете помочь мне сделать мои посты еще лучше. Набросайте в комментариях честно:
- Чего вам не хватает в канале?
- Какие темы хотелось бы видеть чаще?
- Какие посты вам запомнились больше всего?
- Какие форматы контента вам нравятся?
Буду благодарен за любую обратную связь — ваше мнение действительно важно для развития канала!
#обратнаясвязь #годовщина #блогер_я
👍9❤🔥3🔥3❤1
После бурного обсуждения в опросе о будущем развитии канала я понял, что буду продолжать писать так, как делал это раньше, стремясь делиться исключительно полезным и практичным контентом. 📝📈✨
😁9👍5❤🔥4🔥3❤2🤣1🤝1
Второй за сегодня пост про нейросети. Оказывается ChatGPT не просто выпустил новый движок для генерации изображений, а лучший. Он на столько хорош что теперь в сети самый популярный запрос "Нарисуй это изображение в стиле студии Ghibli". Теперь я однозначно думаю над новой аватаркой для канала :)
P.S. Вторая фотка как говорится без фильтров, ночью на своей рабочем месте :)
#ai #chathpt #
P.S. Вторая фотка как говорится без фильтров, ночью на своей рабочем месте :)
#ai #chathpt #
🔥10👍6
В общем, решил я по совету подписчиков потестить Cursor. Взял рабочую задачу, которую давно хотел сделать, но было лень — переделать официальный импорт из Яндекс Трекера в базу данных.
Что понравилось 👍
Реально может писать, проверять, запускать и тестировать большой объем кода. Это определенно новый опыт в сравнении с использованием Copilot, который больше заточен под автодополнение.
Что не понравилось 👎
Стандартная история — начинает галлюцинировать. Реально что-то внятное получается, только если ставишь оооочень конкретное ТЗ и идешь маленькими шагами, постоянно проверяя результат.
Еще я так и не могу привыкнуть к интерфейсу VS Code, поэтому параллельно сидел в GoLand — в нем правил код руками, а в Cursor генерировал то, что нужно.
----
В целом непонятно — это я помогал ему писать или он мне? Время точно не сэкономил, потому что правок было очень много. Еще из-за того, что пишет много и сразу, что-то можно не уловить — приходится отлаживать так, как вы бы делали за другим разработчиком.
Пока не сказать, что экономит время, но если к нему относиться как к Copilot, у которого просто контекст побольше и который может еще взаимодействовать с системой — получается достаточно интересная история.
Утилиту все же написал (звезды приветствуются), она точно просится на большой рефакторинг, но глобально цель выполнена — она работает и сильно быстрее официальной.
А еще сохраняет в PostgreSQL, а не в Clickhouse— я честно не понял прикола с учетом даже 50к задач в трекере использовать Clickhouse. Там нужны реально большие объемы, чтобы ее использование стало преимуществом.
P.S. Репу пушнул в 12 ночи, почти с закрытыми глазами, надеюсь нигде свои токены не оставил :)
#cursor #ai #разработка #coding #инструменты
Что понравилось 👍
Реально может писать, проверять, запускать и тестировать большой объем кода. Это определенно новый опыт в сравнении с использованием Copilot, который больше заточен под автодополнение.
Что не понравилось 👎
Стандартная история — начинает галлюцинировать. Реально что-то внятное получается, только если ставишь оооочень конкретное ТЗ и идешь маленькими шагами, постоянно проверяя результат.
Еще я так и не могу привыкнуть к интерфейсу VS Code, поэтому параллельно сидел в GoLand — в нем правил код руками, а в Cursor генерировал то, что нужно.
----
В целом непонятно — это я помогал ему писать или он мне? Время точно не сэкономил, потому что правок было очень много. Еще из-за того, что пишет много и сразу, что-то можно не уловить — приходится отлаживать так, как вы бы делали за другим разработчиком.
Пока не сказать, что экономит время, но если к нему относиться как к Copilot, у которого просто контекст побольше и который может еще взаимодействовать с системой — получается достаточно интересная история.
Утилиту все же написал (звезды приветствуются), она точно просится на большой рефакторинг, но глобально цель выполнена — она работает и сильно быстрее официальной.
А еще сохраняет в PostgreSQL, а не в Clickhouse— я честно не понял прикола с учетом даже 50к задач в трекере использовать Clickhouse. Там нужны реально большие объемы, чтобы ее использование стало преимуществом.
P.S. Репу пушнул в 12 ночи, почти с закрытыми глазами, надеюсь нигде свои токены не оставил :)
#cursor #ai #разработка #coding #инструменты
👍4😁2
Случайно натолкнулся на функционал workflow в Яндекс Облако, но меня удивило не их low-code платформа, о них только ленивый не пишет, а подход работы с нейросетью .
https://yandex.cloud/ru/docs/serverless-integrations/tutorials/tracker-yandexgpt-postbox-integrations?utm_referrer=about%3Ablank&utm_referrer=about%3Ablank
В доке несколько примеров , которые меня впечатлили:
1. ЯндексGPT скармливаем задачи, он делает summary по тому что осталось сделать
2. По завершенным задачам, скармливаем комменты и делается summary что было сделано.
В принципе задачи для нейросети идеальные и лежат на поверхности, но я даже не подумал об этом, потому что использую нейросети всегда в другом контексте.
Теперь мне очень захотелось попробовать, и потестить несколько нейросетей для таких задач.
#ai #effectwork
https://yandex.cloud/ru/docs/serverless-integrations/tutorials/tracker-yandexgpt-postbox-integrations?utm_referrer=about%3Ablank&utm_referrer=about%3Ablank
В доке несколько примеров , которые меня впечатлили:
1. ЯндексGPT скармливаем задачи, он делает summary по тому что осталось сделать
2. По завершенным задачам, скармливаем комменты и делается summary что было сделано.
В принципе задачи для нейросети идеальные и лежат на поверхности, но я даже не подумал об этом, потому что использую нейросети всегда в другом контексте.
Теперь мне очень захотелось попробовать, и потестить несколько нейросетей для таких задач.
#ai #effectwork
yandex.cloud
Документация Yandex Cloud | Yandex Serverless Integrations | Настройка рабочего процесса Workflows с интеграцией с Яндекс Трекер…
Примечание. Workflows находится на стадии Preview.
👍2🤔1🕊1
Всем привет. Может кто знает, а есть ли сейчас модели/сервисы которым можно скормить набор видео, а они из этого сделают фильм (10-20 минут)? Именно смонтируют, а не просто склеят кусочки.
А теперь серьезная история. Есть билет, бесплатный, на конференцию Стачка, которая пройдёт в апреле в Ульяновске. В начале думал разыграть, потом решил что это не iPhone. Поэтому готов отдать подписчику, который напишет первым. Только большая просьба - напишите если действительно готовы приехать лично, что бы не сгорел просто так.
🔥2
Наконец-то пришла отбивка от конференции которая будет почти через месяц - Analyst Days, доклад принят.
Итого - пупок я точно надорву (уже писал, но поныть надо). У меня доклад на следующей неделе - даже преза с дизайном есть. Еще доклады через неделю и через две.
Как вы думаете, на какой стадии у меня эти доклады?:)
Хорошо хоть еще две конференции только через месяц, в конце мая и в начале июня. Теперь на осень я задумаюсь - буду выступать или нет.
#выступления #подготовка #конференции #analystdays
Итого - пупок я точно надорву (уже писал, но поныть надо). У меня доклад на следующей неделе - даже преза с дизайном есть. Еще доклады через неделю и через две.
Как вы думаете, на какой стадии у меня эти доклады?:)
Хорошо хоть еще две конференции только через месяц, в конце мая и в начале июня. Теперь на осень я задумаюсь - буду выступать или нет.
#выступления #подготовка #конференции #analystdays
🏆9🔥2
Два дня ничего не писал. Делюсь - никуда не потерялся, перешел в другой департамент и на другую должность, погружаюсь. Скоро буду опять радовать полезными и интересными постами.
🔥12🌚3