Бывает полезно проводить валидацию данных из формы ввода и на фронте и на бэке, например чтобы не гонять лишний запрос с заведомо "плохими" данными. Отсюда появляется задача написания двух одинаковых валидаторов для фронта и бэка.Если фронт и бэк написан на одном языке (привет js+node), то мы можем напрямую использовать один код валидатора и там, и там.В остальных случаях (js+php, java, python, go, dotnet) есть проблема. Во-первых, придётся два раза писать примерно одно и то же на двух …
Можно ли подключить сетевой диск к железному серверу за минуту, при этом не выключая его, сохраняя отказоустойчивость и не привлекая инженеров?Я Беляков Алексей — Go-разработчик в Cloud.ru, в статье расскажу, как нам удалось это сделать. Сначала поделюсь кейсами, которые натолкнули на создание такой фичи, затем расскажу, как мы реализовали ее интеграцию со стороны сервиса Bare Metal, а в конце покажу, как всего за минуту можно расширить дисковое пространство физического сервера.Когда локальных …
Для работы любого сервиса обычно нужна база данных. Чаще всего PostgreSQL. Также требуются общие функции по работе с БД, так называемые CRUD операции, операции CREATE + READ + UPDATE + DELETE, а также другие функции по работе с БД.Без создания общих функций получится полный хаос в работе, каждый программист будет делать по-своему, получится много ошибок и др. Для создания функций CRUD требуется написать много однотипного кода, достаточно трудоёмкая работа, и при этом очень важная, как в доме са…
Недавно я наткнулся на Bubble Tea — терминальный UI-фреймворк для Go, и буквально влюбился в то, как он отрисовывает интерфейсы в консоли. В репозитории есть множество примеров — и выглядят они действительно красиво.Пример возможностей Bubble TeaЯ никак не связан с разработчиками — просто захотел поделиться личным опытом.Первое открытие: низкоуровневое управление и архитектура ELMС первого взгляда Bubble Tea выглядит как высокоуровневый фреймворк с красивой абстракцией. Но под капотом он доволь…
В течение 2024 года несколько российских организаций обращались к команде по реагированию на киберинциденты экспертного центра Positive Technologies (PT ESC IR) для расследования инцидентов, между которыми удалось обнаружить сходство. В рамках анализа вредоносная активность инцидентов была объединена в один кластер и связана с группой Goffee, атакующей российские организации с помощью фишинга с 2022 года. В этой статье мы расскажем про вредоносное ПО, которое используют злоумышленники в атаках,…
Всем привет! Меня зовут Семён Эйгин, я бэкендер в Авито, люблю опенсорс и периодически что-то туда контрибьючу. В этой статье разбираемся с моками и выбираем самый удобный инструмент (не обязательно лучший!). Это достаточно холиварная тема, хотя при подготовки статьи я не ожидал, что она окажется настолько спорной — у каждого разработчика своё мнение на этот счёт.Почему вообще возникла идея сделать такую статью? Я — один из мейнтейнеров Minimoсk. Может быть, кто-то из вас его использовал, может…
Басня о коде и мёде (Пролог)В некотором царстве, в некотором цифровом государстве, жила-была гильдия строителей. Но строили они не замки и мосты, а сложные, невидимые структуры из чистой логики. Это были архитекторы и разработчики программного обеспечения, и их величайшей задачей было создание систем, которые могли бы расти и адаптироваться, не рассыпаясь в хаос.Они трудились день и ночь, используя всевозможные чертежи и заклинания, но их творения часто превращались в запутанные клубки — хрупки…
Привет, Хабр! Сегодня хочу поделиться с сообществом TG ботом, которого я написал пару лет назад и который до сих пор актуален и работает.Немного историиСвое знакомство с телеграмм ботами я начал как раз с разработки ютуббота, было это около 5 лет назад. Первая версия этого бота была реализована на php, реализовывалась она на коленке и скорее ради интереса пощупать что такое боты и закрыть мою потребность в удобном скачивании роликов с ютуба. Версия на php прожила около 2-х лет, бот рос, был неу…
Обработка ошибок в Go — это нечто большее, чем просто предотвращение падений программы. Она помогает строить системы, которые “ломаются красиво”, ясно сообщают о проблемах и упрощают отладку. В отличие от языков в которых есть обработка исключений, Go заставляет нас явно думать о том, что может пойти не так. Это одновременно и преимущество, и недостаток.Роб Пайк однажды сказал: “Ошибки — это значения” (прим. переводчика: В Go ошибка — это не исключение и не что-то “особенное”, а просто значение…