Баланс между производительностью, читаемостью и поддерживаемостью — ключевая задача при разработке микросервисов на Go. На практике всё сложнее из-за неочевидных факторов: от влияния частоты вызовов GC на время отклика до последствий избыточной вложенности в контрактах API. Если не учесть эти нюансы, даже грамотно спроектированный сервис может просаживаться по RPS (requests per second) — или его может быть сложно обновлять и дорабатывать.
Меня зовут Артём Кущ. Я Go-разработчик в команде VK Видео. В статье поделюсь подходами к оптимизации микросервисов и расскажу, как балансировать между скоростью и простотой.
Читать далееДействующие лица:
МП (Молодой Пол) — год в индустрии, глаза горят, в голове свежий Clean Architecture. Верит, что облако бесконечно, а new — почти как комментарий: написал и забыл.
ДП (Дядя Паша) — 47 лет, седая борода, архитектор. Первый продакшен — в 12: школьная программа по астрономии, которая мерила знания и ломала нервы отличникам. Сейчас — терраса в Палермо, бокал холодного Мальбек, на экране — метрики и паузы GC.
Читать далееВся деятельность сотрудников должна быть нацелена на достижении установленных руководителем (владельцем) результатов в определенные сроки. А что происходит при практической реализации намеченных планов? Что препятствует или способствует такой деятельности сотрудников? Это, конечно, риторический вопрос, так как ответ давно известен – это деятельность самого руководителя (владельца) компании, т.е. то, как он организует работу свою и сотрудников и имеется ли у него понимание что и как надо делать, чтобы получать максимально возможный при имеющихся условиях результат.
Попробуем разобраться, какие признаки отражают появление несоответствий между произошедшими в деятельности компании изменениями (появление новых задач, оптимизация бизнес-процессов, применение более современных орудий труда, технологии и др.) и существующей системой управления, которая уже начинает тормозить ее развитие. Система управления должна обеспечивать осуществление производственной деятельности компании наиболее оптимальным способом и при изменении этой деятельности необходимо оперативно ее подстраивать для достижения намеченных результатов. Если своевременно этого не делать, то несмотря на применение самых современных технологий и оборудования добиться максимального эффекта от их внедрения будет затруднительно.
1. Соответствие имеющихся в компании трудовых ресурсов поставленным задачам.
Самым главным и ценным ресурсом, который целеустремленно ищет и собирает любой руководитель (владелец) компании, являются сотрудники, которые предоставляют свой труд (знания, опыт и компетенции) для выполнения намеченных задач. Руководитель (владелец) компании формулирует задачи и требования к руководителям верхнего и среднего уровней управления и к отдельным специалистам, которые должны будут реализовывать эти задачи. К сотрудникам (исполнителям) нижнего уровня управления требования обычно определяют руководители функциональных подразделений (среднего уровня управления).
Читать далееКлиент тщательно выбирал систему, но забыл подготовить инфраструктуру в организации. Разберем ошибку, последствия и как этого избежать.
Читать далееCoreBus — кроссплатформенный терминал для работы с COM-портами и TCP-сокетами с поддержкой протоколов Modbus TCP / RTU / ASCII и много чего еще.
Приложение развивается уже довольно давно. Но была одна фича, которой не хватало, чтобы сделать CoreBus по-настоящему универсальным терминалом. Мне об этом писали еще с первых релизов. В личных сообщениях и в комментариях к статьям. Эта идея формулировалась по-разному, но суть была одна.
И поэтому хочу представить вам новый режим - "Modbus мониторинг"!
Читать далееСалют, Хабр!
Есть продуктовые идеи, а есть потребности людей, которые полностью не закрывает ни одно решение на рынке. И их очень важно различать. Особенно когда создаёшь умные устройства… или что угодно другое.
Мы в SberDevices создали на основе старого знакомого фреймворка Jobs to be done (JTBD) рабочую систему для продуктовых решений. Она позволяет нам видеть реальные пользовательские работы, делать их измеримыми, сравнивать между собой и на этой основе математически расставлять приоритеты для новых устройств, функций и сценариев.
В статье расскажем, как вырастили из качественных интервью единую карту пользовательских работ, адаптировали количественную валидацию под новый экосистемный продукт и получили полноценный инструмент для продуктового планирования. Ещё — что такое кач и кто такие спидстеры.
Читать далееНа второй день конференции больше упора мы сделали на секцию, где рассматривалось железо. Говорили о проблемах в импортозамещении, о вопросах замены Cuda-единиц для вычислений на китайские аналоги.
Точнее говоря, о замене речи не идет, так как лидером по результатам внедрения в ВТБ все-равно остается Nvidia. Но вопрос пошел о кратном росте мощностей за счет гибридной структуры серверов, где наравне с железом американского производителя используются китайские GPU фирм Metax, Biren Technology, Moore Threads, LLuvatar CoreX. Это может также гарантировать в некотором понимании независимость от геополитических ограничений.
Так, если во время использования облачных серверов с GPU компании не задумываются, откуда брать железо, то сами владельцы таких серверов в это самое время, ну известный факт, беспокоятся даже о том, что Америка ввела ограничения на количество поставок видеокарт в различные страны, в том числе в Россию. Факторов влияния на рынок много: ужесточение политики импортозамещения оборудования в гос. закупках, санкции и экспортный контроль, совершенствование и устаревания технологий в GPU, нюансы конвертации валют и общения с зарубежными коллегами в ходе поставок в Россию, дефицит квалифицированных кадров в отрасли.
Тем не менее, объем российского рынка облачных сервисов с GPU значительно вырос за последние 2 года практически по закону Мура: с 12,3% в 2024 году до 27,4 в 2026 году, а прогноз к 2030 году согласно исследованиям от компании t1 составляет 85,5%.
Стало интересно и о достижениях Ростелекома по оптимизации модели ViT-B. Один из докладчиков вообще показал, что Россия в чем-то опережает зарубежных коллег, например - в аппаратном ускорении в Vulcan при рассмотрении таких аппаратных ускорений, как Vulcan, Cuda и OpenCL. Предложено решение Kernel_slicer.
Читать далееВ крупном бизнесе нет роскоши «делать всё индивидуально», когда речь доходит до знаний и вхождения в должность или процессы (онбординга). Каждый новый руководитель, менеджер по продажам или инженер должен встраиваться в уже работающий механизм так, чтобы компания не дёргалась от каждого найма и увольнения.
Читать далееМеня зовут Полина, я 9 лет работаю в РГС, и почти два года из них вожу настольно-ролевые игры в нашей компании. За это время мы успели побывать волшебными котятами в Хогвартсе, американцами 20-х годов, расследующими мистические происшествия, персонажами фентези в Забытых Королевствах и даже воскресили Ильича (что, кстати, довольно символично).
Казалось бы, чем занимаются серьезные люди? Но между тем НРИ — это отличный способ отдохнуть после работы, завести новые связи и развить свои софтовые навыки.
Читать далееВ 1844 году два шахматных клуба — в Вашингтоне и Балтиморе — сыграли партию на расстоянии 60 километров. Ходы передавали по проводу с помощью телеграфа. По сути, это была первая «онлайн-игра» в истории.
За несколько месяцев до этого телеграф только запустили, и никто до конца не понимал, как применять его на практике. Формально он предназначался для передачи сообщений. Но очень быстро выяснилось: новая технология позволяет делать куда больше — вплоть до «живого» взаимодействия между людьми на расстоянии.
Именно так изобретение Сэмюэла Морзе неожиданно превратилось не просто в средство связи, а в прообраз сетевого взаимодействия — задолго до появления интернета.
Читать далееХотите сгенерировать фотографию, неотличимую от реальности? В статье: топовые нейросети для генерации реалистичных фото, секреты референсов и 21 профессиональный промпт для ИИ фотосессии.
Читать далееНасколько сложно сделать профессиональную озвучку для инди-проекта? Рассказываем историю нашей работы.
Как мы делали озвучку для инди-проектаНи Python, ни PyTorch, ни NumPy, … всего 260 строк кода на чистом C++ достаточно, чтобы обучить, оценить и протестировать простой двоичный классификатор, различающий рукописные цифры 0 и 1.
Читать далееMax мессенджер появился недавно, и пока экосистема вокруг него только формируется. YandexGPT - мощная языковая модель с OpenAI-совместимым API. Казалось бы, собрать из этого бота - задача на вечер. На практике оказалось, что готового инструмента, который бы связал эти две вещи, просто нет.
Я написал max-yandexgpt - Python-фреймворк, который позволяет запустить AI-бота в Max мессенджере с YandexGPT за 5 строк кода. Со стримингом ответов, выбором модели и нормальной конфигурацией.
В этой статье расскажу, как он устроен и зачем.
Читать далееСоздание интерактивной модели разводного моста для изучения его устройства
Я работаю над учебным проектом Создание интерактивной модели разводного моста для изучения его устройства, в котором продуктом является схематичный макет, демонстрирующий работу данного инженерного сооружения. Каркас механизма собран из пластика и распечатан на 3D-принтере, а его модель сделана в Компасе 3D v23. Движение створки моста реализовано благодаря ESP32. Данный пост я публикую с целью продвижения продукта и проведения рефлексии.
В своей публикации я оставил ссылки на 3D-модель прототипа разводного моста, а также на код для Arduino IDE, сделанные мной в ходе работы, чтобы каждый мог воспользоваться ими с целью создания своих проектов или чего-либо ещё.
Читать далееТретьего дня я собеседовал начинающего C++ программиста с небольшим опытом работы. Когда речь дошла до денежных ожиданий, я задал закономерный вопрос – сколько ты получал на прошлом месте работы. Молодой человек не ответил, сославшись на соглашение о неразглашении коммерческой тайны – NDA. В дальнейшем общении человек показал, что подписанное им когда-то NDA давлеет над ним до сих пор, и он боится раскрывать даже то, что прошлый работодатель по закону не имел права ему запрещать.
То, что наш брат-программист не знает своих базовых прав, неудивительно. То, что по приказу дяди он готов ограничивать себя в торге (а это разумный и существенный момент при поиске работы) – ну ок, его выбор. Ведь отказ называть зарплату означает, что он даже не сможет на новое предложение о работе сказать – «да это же меньше, чем я раньше получал». А это, в свою очередь, означает просто потерю времени как соискателя, так и рекрутера (ибо наивно предполагать, что сеньор, собеседующий новичка, не сможет оценить его рыночную стоимость без инфы о прошлой зарплате, просто это будет чуть медленнее для них обоих).
Но то, что человек не умеет или не готов думать на перспективу, ради своих же интересов – настораживает. А интересы у нас с ним, на самом деле, общие, ведь я такой же наемный сотрудник, только выше рангом.
Какие такие интересы, при чём здесь перспектива, как это связано с правами человека и замедлением интернета – читайте под катом.
Читать далееНа пути изготовления даже весьма простых электровакуумных приборов (ЭВП) неумолимо встаёт немало неочевидных технологических трудностей, например, впитанные в электровакуумные материалы, растворённые, «окклюдированные» газы. Газы, удерживающиеся внутри металлов, стекла, слюды весьма прочно при условиях обычных, и бодро выползающих наружу при понижении давления и нагреве — обычном рабочем состоянии внутренностей электронных ламп, из-за чего подготовка для них материалов и откачка существенно усложняется. Первые радиолампы опустошали часами и даже десятками часов непрерывной работы сложного и энергоёмкого оборудования (т. н. светлая откачка). Внутренние же ламповые газопоглотители — геттеры позволили колоссально упростить и удешевить откачку ЭВП, стабилизировать их параметры и удлинить время жизни. Механизм происходящего, важность процессов и общую классификацию газопоглотителей мы уже рассмотрели [1], как и первые неметаллические геттеры ламп накаливания и даже ламп электронных [2]. Взглянем же на следующий шаг электровакуумной эволюции — ранние металлические геттеры. При этом сосредоточимся на простых неспециальных материалах, доступных сегодняшнему любителю-экспериментатору, по прошествии ламповой эры.
Читать далееНекоторые языки программирования начинают по-настоящему ценить тогда, когда разработчик замечает: значительная часть усилий уходит на решение задачи, а не на борьбу с инструментом. Экосистема Java — хороший пример такого накопленного трения. Она несет в себе наследие решений, принятых десятилетия назад, притом они не обязательно плохие — просто раньше не учитывались те сценарии, которые сегодня стали повседневностью: интенсивная работа с асинхронностью, быстрые итерации, требования к читаемости и поддерживаемости кода. Kotlin возник как попытка аккуратно убрать часть этого трения, не разрушая существующую инфраструктуру. Речь здесь идет о другом уровне комфорта при решении привычных задач — от базовых конструкций до построения полноценных сервисов. Именно этому посвящена только что вышедшая в издательстве «БХВ» книга Елены Ван Энгелен – Масловой «Kotlin. Краткий курс».
Что внутри?Десять устройств дома, и каждому нужен доступ к заблокированным ресурсам. Ставить VPN-клиент на телевизор и колонку — невозможно, на телефон жены — бесполезно.
Я настроил прозрачный VPN на роутере: VLESS+Reality+XTLS-Vision через TPROXY на OpenWrt. Сплит-роутинг по GeoIP и доменам, автообновление серверов из подписки каждые 30 минут, балансировка по задержке, procd с автоперезапуском. В статье — полный путь от коробочного Cudy TR3000 до рабочей системы: nftables, policy routing, base64-декодер на awk и все баги, которые я нашёл по дороге.
Читать далееО переводе начинаешь думать тогда, когда приложение уже написано и работает. Архитектура сложилась органически, строки разбросаны по хелперам и метаданным перечислений, или торчат где-то в теле функции. Когда код пишется, особо не задумываешься о том, что всё это однажды придётся переводить.
Добавить поддержку i18n в Lazarus — дело пяти минут. Проблемы начинаются потом: DefaultTranslator не подхватывает файлы, компилятор молча принимает resourcestring в const-массиве и ничего не переводит, fuzzy-флаг тихо блокирует строку без единого предупреждения.
Эта статья — про те вещи, которые не являются очевидными и, к сожалению, не описаны в базовых руководствах.
Читать далее