Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Обзор нововведений в C# 14

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели19K

Грядёт новая версия C#, а это значит, что мы вновь выпускаем наш ежегодный обзор нововведений. Этот год принёс нам не так много изменений, как прошлый. Возможно, некоторым они покажутся совсем незначительными, но так ли это на самом деле? Давайте же взглянем на них.

Читать далее

Распродажа в издательстве «Питер»

Время на прочтение1 мин
Охват и читатели14K

Привет, Хаброжители!

O’Reilly становится ближе! На книги из категории O'Reilly и Head First O'Reilly действуют скидки, теперь ваши любимые бестселлеры доступны ещё выгоднее!

Читать далее

Автополив комнатных растений ProLeyka. Как все начиналось с коробки из под обуви

Уровень сложностиСложный
Время на прочтение10 мин
Охват и читатели15K

На изображении выше результат многолетних экспериментов и мучений в поисках облегчения такой, казалось бы, простой процедуры как поливать растения, кхе-кхе, вовремя 😊

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

Ну, а далее распишу про все прототипы, которые придумывал на пути к данному решению...

Читать далее

Теневой союз: кто такие Cloaked Shadow

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели9.2K

Хабр, всем привет! Меня зовут Никита Полосухин, я старший системный аналитик центра мониторинга и реагирования на кибератаки RED Security SOC. Сегодня хочу продолжить нашу историю об открытии новых (новых ли?) плохих парней (и, вероятно, девушек), которые очень любят взламывать российские компании.

В июне мы рассказали о группировке Cloaked Shadow, которая характеризовалась обширным инструментарием, продвинутыми методами сокрытия и в целом высоким техническим уровнем. После этого мы получили возможность собрать и проанализировать новые данные и ранее не встречавшиеся образцы вредоносного программного обеспечения (ВПО), что помогло сделать много интересных выводов. Добро пожаловать под кат.

Читать далее

В AWS утро начинается не с кофе. Пал US-EAST-1

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели25K

Мрачным утром 20 октября 2025 года мониторинг AWS был краснее некуда, его залило кровью сервисов. Пал крупнейший и по совместительству старейший регион, обрабатывающий 35–40% всего глобального трафика AWS — US-EAST-1. На его воскрешение чернокнижники из AWS потратили 13 часов.

В этой статье я хочу разобрать, что именно произошло, почему восстановление заняло так много времени, и самое главное — что мы можем сделать, чтобы наши системы пережили подобное в будущем. Ведь US-EAST-1 падает уже не первый раз, и явно не последний.

Читать далее

Как интерфейс PostHog поможет продактам и аналитикам в решении задач

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.9K

Меня зовут Витя, в Selectel я работаю проектировщиком интерфейсов. В нашей команде анализом решений, связанных с пользовательским образом, занимается дизайнер. Такой подход позволяет быть ближе к пользователям и проектировать сценарии взаимодействия, продумывая метрики, на которые мы будем смотреть в перспективе, и оценивать их эффективность. Возможно, вы читали мои статьи и знаете, как мы используем PostHog в работе.

За долгую практику работы с сервисом накопилось большое количество кейсов, когда PostHog помогал мне получать и обрабатывать данные. Хочу поделиться знаниями с начинающими дизайнерами, аналитиками и продактами.

Читать далее

Cursor — джун или сеньор? Какой грейд у ИИ

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели14K

Cursor сделали программисты для программистов. Это не очередной чат-бот, это полноценная среда разработки. Он очень неплохо интегрирован с возможностями больших языковых моделей. 

Но насколько он хорош? Сможет ли сочинить симфонию, написать картину… то есть, конечно, сможет ли заменить живого разработчика? Мы его потыкали, протестировали и теперь хотим рассказать, на какой грейд он мог бы рассчитывать в российской ИТ-компании

Читать дальше

Зачем я решил научить Statuser следить за DNS — и что из этого вышло

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.5K

Мы привыкли считать, что если сервер доступен и SSL в порядке — значит, всё под контролем. Но иногда сбой происходит раньше, ещё до того, как запрос дошёл до сервера.

Меня зовут Михаил Шпаков, я создаю и развиваю сервис мониторинга Statuser.

Недавно я общался с руководителем IT-отдела одной компании, которая использует Statuser для мониторинга своих сервисов. Он поделился интересным кейсом: несколько часов подряд у них перестала отправляться почта с корпоративного домена. Сайт работал, сервер был доступен, SSL-сертификат в порядке — всё зелёное, а письма не уходят. Проблема выглядела случайной: часть писем доставлялась, часть возвращалась с ошибкой, а из-за этого срывались заказы и возникали прямые убытки.

Когда их команда начала разбираться, выяснилось, что недавно один из сотрудников сменил почтового провайдера и добавил новые MX-записи в DNS, но старые при этом не удалил. В результате часть писем уходила на старый сервер, который уже не принимал почту, а часть — на новый. Снаружи всё выглядело исправно, но на деле домен был «раздвоен» между двумя почтовыми системами.

После этого разговора я понял, что в Statuser не хватает отдельного типа мониторинга — контроля DNS-записей. HTTP, SSL и Ping могут быть зелёными, но если в DNS остались старые MX, сервис уже фактически неисправен.

Так в Statuser появился новый тип мониторинга — проверки DNS, который помогает замечать изменения, подмены и ошибки в зонах ещё до того, как они превращаются в простои и убытки.

Читать далее

Паттерны ООП, так не издевались даже… Структурные шаблоны с примерами на Java

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели19K

Привет! Меня зовут Бромбин Андрей. В этой статье разберём структурные паттерны ООП. Используя примеры на Java и простые метафоры, поймём природу шаблонов: как они работают, зачем нужны и чего требуют от нас взамен. Почему дизайн называют удачным при использовании паттернов по назначению, и почему так бывает не всегда.

Книг и статей о шаблонах проектирования, как песен о любви, потому что в разработке эта тема волнует каждого начинающего и не очень специалиста. Помните, как пели Чиж и Ко: «а не спеть ли мне песню о любви?» — давайте и я попробую.

Шаблонизироваться

Розыгрыш стула, похищение прав: что нашел пентестер в пет-проекте

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели13K

Если вы начинающий разработчик и создаете свой пет-проект, легко увлечься бэкендом и фронтендом, а на ИБ сил уже не останется. Даже если проект совсем небольшой и там, казалось бы, защищать-то особо нечего, злоумышленники всегда найдут дыры в безопасности. Взломать незащищенный сайт или приложение легче, чем кажется.

Привет! Меня зовут Наташа Баранова, я младший специалист по анализу защищенности веб-приложений в Selectel. Под катом расскажу, как проводила пентест пет-проекта своего коллеги: я получала права админа, обнуляла голоса других пользователей, меняла цены, самовольно назначала победителя и подкручивала результаты голосований. И да — это все происходило в приложении, которое оказалось простым и удобным для пользователей, а уж для меня — почти праздник. Надеюсь, будет полезно и начинающим в ИБ, и разработчикам, которые хотят понять базовые ошибки безопасности.

Под кат →

Выжимаем из Go скорость до последних наносекунд

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели24K

Будем оптимизировать программы на Go. Выжимать последние наносекунды, чтобы код приближался по скорости к Си или ассемблерному. Цель - скорость, чтобы процессор был загружен на 100% при высокопроизводительные вычислениях.

Читать далее

Плох тот Джун, который не мечтает стать Сеньором. Но еще хуже тот, кто мечтает бездумно и без поддержки коллег

Время на прочтение7 мин
Охват и читатели26K

Привет, Хабр! Меня зовут Артем Грищенко, я middle iOS-разработчик продуктов Future Crew в МТС. Если ты начинающий разработчик — скорее всего, у тебя есть мечта: вырасти, перестать быть «новичком» и почувствовать уверенность в своих силах. Чаще всего говорят: «Это долгий процесс, наберись терпения». И действительно, путь у каждого свой. Но у всех карьерных путей есть общее: рост возможен только при увеличении зоны ответственности. Об этом часто забывают, годами просиживая на одном месте. 

В этом материале хочу поделиться своей историей — как мне удалось за один год дорасти до уровня мидла и почувствовать, что стою на твердой почве. Надеюсь, эта статья поможет кому-то увидеть проблему со своей карьерой и найти вариант ее решения.

Читать далее

Как RuStore читает мысли пользователей (и причём тут теги)

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.6K

Когда пользователь открывает RuStore и вводит запрос вроде «тренировки дома» или «обои с кошками», он ищет не конкретное приложение, а способ решить задачу. Наша цель, как стора, — понять, какое приложение действительно поможет ему это сделать.

За этим стоит сложный ML-пайплайн: сначала модель отбирает кандидатов по смысловой близости запроса, затем ранжирует их по релевантности. А поисковые теги помогают системе уловить контекст — в каких ситуациях и по каким запросам ваше приложение должно оказаться в топе выдачи.

Меня зовут Анастасия Войцешко, я продакт-менеджер в RuStore. В этой статье расскажу, как устроен поиск внутри стора, какую роль теги играют и как подобрать их так, чтобы повысить шансы приложения попасть в релевантную выдачу.

Читать далее

Ближайшие события

Как защитить свой VDS сервер: 53 000 попыток взлома за 5 дней

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели47K

Как защитить свой VDS сервер: 53 000 попыток взлома за 5 дней

Представьте себе: вы арендовали скромный VDS, чтобы поэкспериментировать. Ничего грандиозного — пара тестовых сайтов, простенький веб-сервер на nginx, пара скриптов в cron для автоматизации рутины, SSH для удалённого доступа. Обычная песочница для разработчика, никому, казалось бы, не интересная. Сервер тихо живёт своей жизнью где-то в облаке, отдаёт странички, выполняет задачи, ждёт ваших команд. Вы даже не подозреваете, что за этой тишиной уже разворачивается настоящая цифровая охота.

За два года работы в технической поддержке облачного хостинга я видел множество взломов, помогал клиентам с восстановлением серверов. Видел всё: от примитивных майнеров до полностью стёртых проектов без бэкапов. Сейчас я работаю инженером технической поддержки в компании CleverData (входит в холдинг LANSOFT).

Однажды, ради чистого любопытства, я решил заглянуть в логи свежеиспечённого VDS, созданного всего пять дней назад...

Читать далее

Запускаем сервер в Minecraft: исследование конкурентов

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели15K

Несколько месяцев назад мы запустили свой небольшой бездонатный сервер для игры Minecraft. В статье с разбором технических подробностей я акцентировал внимание на том, что развитие сервера эволюционное: улучшения внедряются на основе обратной связи от игроков.

Теперь, набив собственных шишек, я готов заглянуть к «соседям». Чем они завлекают свою аудиторию? Есть ли уникальные игровые механики? Какие плагины используются и какие ограничения в игровом мире? Paper или Spigot? Velocity или BungeeCord?  

Этот текст подходит даже тем, кто никогда не занимался администрированием и не планировал — в процессе исследования я нашел множество потех.

Читать далее

Для чего компании требуют высшее образование в IT

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели26K

Всем привет! Меня зовут Алексей, я техлид Android направления в компании Домклик.

На одном из собеседований зашла с кандидатом дискуссия об образовании. И была произнесена примерно такая фраза: «Зачем тратить 4–6 лет на обучение в вузе, если нужные по вашей вакансии навыки можно получить за год?» Пообщавшись ещё с некоторыми недавно вошедшими в отрасль знакомыми, сложилось впечатление, что этим вопросом задаются многие. И действительно, если, условно, на заводе требуется фрезеровщик, и у кандидата есть стаж работы или он окончил профильное училище, то какая разница, получал ли он высшее образование или нет?

Так почему многие крупные компании в ИТ при найме отдают предпочтение кандидатам с «вышкой»? Чем такие специалисты выгодно отличаются от остальных с таким же практическим опытом и профильными знаниями? Попробуем разобраться с этими вопросами и прояснить их. Все предложенные выводы — личное мнение автора и может (и должно) не совпадать с чьим‑либо ещё или общепринятым.

Читать далее

Художественный фильм «Импортозаместили» (побрюзжим)

Время на прочтение7 мин
Охват и читатели23K

Итак, прошло уже больше 2,5 лет с момента, когда слуги народа решили, что пора создавать отечественные аналоги популярных в народе сервисов, приложений, платформ.

Решение, безусловно правильное, нужное, но вот реализация, как всегда.

Хочу провести скромную ревизию того - что нам обещали и что мы получили в итоге (это будет сугубо субъективное мнение среднестатистического пользователя):

Читать далее

Rust вместо React: как я написал Telegram WebApp SDK на Rust

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели11K

Фронтенд на Rust — звучит странно? Я написал Telegram WebApp SDK на Rust, совместимый с официальным API, и уже использую его в реальных проектах. В статье — зачем я это сделал, с какими проблемами столкнулся и чем это лучше привычного React.

Проявить заинтересованность

Почему случается оверинжиниринг

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели17K

Если вы достаточно давно занимаетесь разработкой ПО, то, вероятно, сталкивались с такой ситуацией: CRUD-приложение, обслуживающее небольшую группу пользователей, развёрнутое в кластере Kubernetes и вдобавок с половиной функций CNCF. В теории выглядит впечатляюще. В реальности же это машина Руба Голдберга, решающая задачи, которых у команды на самом деле нет.

В качестве противоположного примера возьмём Levels.fyi. Сегодня этот сайт помогает миллионам разработчиков сравнивать зарплаты и карьерные перспективы, но в начале его «бэкендом» были просто Google Формы, сохраняемые в Google Таблицы. Никаких микросервисов, никакого Kubernetes, никакой шины событий. Самые простые инструменты, которые можно придумать. Такая легковесная система обеспечила владельцам сервиса скорость её развития. Они проверили жизнеспособность идеи, расширили аудиторию и начали вкладываться в более сложные системы только тогда, когда стало ясно, что продукт рабочий. Иными словами, простота не стала для них препятствием, а превратилась в залог успеха. Стоит также помнить о том, что некоторые из самых сложных инфраструктур изначально были очень простыми: например, Airbnb, Facebook*, Reddit. Прежде, чем завоевать всемирную популярность, они были фрагментарными монолитами.

Всем нам свойственно подхватывать синдром главного героя. Рано или поздно архитектура в большей мере становится не решением текущих задач, а защитой от потенциальных будущих проблем. Кажется, что каждый новый проект должен начинаться с полного набора распределённых систем, вне зависимости от того, разрастётся ли приложение до масштабов, достаточных, чтобы оправдать их необходимость. Разумеется, при этом команды начинают тонуть в сложности, затратах на облачные услуги и низкой скорости выпуска релизов.

Читать далее

Как мы используем RFM-сегментацию, чтобы улучшать CRM-коммуникации в Авито

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели8.6K

Привет! Я Рамиль Сакаев — аналитик в команде Авито Авто. В статье рассказываю, как адаптированная RFM-методология помогла нам выявить недоработанные зоны CRM-коммуникаций и создать бенчмарк для маркетологов.

Читать далее