Pull to refresh
2
0
ASP@ASP

WEB-программист, сетевой администратор

Send message

Лучшие практики автоматизации тестирования: 9 принципов стабильных автотестов

Reading time16 min
Reach and readers9.2K

Почему автотесты становятся нестабильными и перестают приносить пользу? Разбираем системные причины флаков, бессмысленных ретраев и бесконечных E2E-монстров. Практические принципы: моки, изоляция, атомарность и минимализм — без философии, только инженерия.

Читать далее

«Кривые руки» или новый уровень DPI? Разбор выходных блокировок XRay и VLESS

Level of difficultyMedium
Reading time5 min
Reach and readers80K

Эти выходные прошли под эгидой Connection Reset. Пока новостные каналы писали расплывчатое «пользователи жалуются на сбои», мы в чатах и на тестовых стендах пытались понять физику процесса.

Читать далее

Пробрасываем USB-устройство по сети в Линуксе

Reading time4 min
Reach and readers14K

Автор вот этой статьи поднял вопрос, который наверное волнует тех, кто пользуется различными USB-токенами: как подключить USB-токен удаленно?

ИМХО, ничего сложного нет, я попробую это сделать, взяв тот же самый USB-токен.
Для начала и для общего представления - что есть что:

В Линуксе проброс USB устройств через сеть реализован на уровне ядра, то есть это не какая-то специальная программа, которая этим занимается, а драйвер в ядре.

Читать далее

Токены доступа и API Gateway: как обеспечить безопасность запросов

Level of difficultyHard
Reading time27 min
Reach and readers12K

Распределенные системы (aka микросервисы) набрали популярность и применяются все шире в современных реалиях. Сервисов становится больше, привычные задачи для них решаются сложнее, усложнились и вопросы аутентификации и контроля доступа.

В статье рассмотрим различные подходы использования API Gateway как части более общего API security-решения в контексте его работы с токенами доступа, выделяя преимущества, недостатки и связанные с ними вопросы безопасности. Также разберем, почему нужно ограничивать область действия access token и может ли API Gateway помочь и в данном вопросе.

Статья написана на основе материала, с которым выступал на PHDays 2025 и CodeFest 15.

Читать далее

Магия itertools: Перестаньте писать велосипеды на циклах for

Level of difficultyMedium
Reading time16 min
Reach and readers13K

Почему опытные Python-разработчики редко используют циклы for для обработки данных? Потому что императивный стиль на больших объемах данных ведет к исчерпанию памяти (OOM) и замедлению работы.

Модуль itertools — это стандарт индустрии для создания эффективных конвейеров обработки данных. Он реализует концепцию ленивых вычислений (lazy evaluation), позволяя обрабатывать бесконечные потоки или огромные дампы БД, потребляя константный объем RAM.

Читать далее

Восемь высокопроизводительных Python-библиотек в копилку разработчикам

Reading time25 min
Reach and readers15K

Когда в 1991 году Гвидо ван Россум представил миру Python, никто не мог предсказать, какое место через несколько десятилетий этот язык займет в веб-разработке, Data Science и Machine Learning. Сейчас Python продолжает развиваться: с новым поколением инструментов в прошлое уходят традиционные ограничения — производительность, GIL и сложность параллельных вычислений. 

Привет, Хабр! С вами Леша Жиряков, я руковожу бэкенд-направлением витрины KION, возглавляю гильдию по Python и пишу для блога MWS на Хабре. Я каждый день сталкиваюсь с вызовами высоконагруженных систем и сформировался пул инструментов, которые помогают решать критические проблемы современной разработки — от обработки данных с Polars до управления зависимостями с UV. 

В этом материале я сделаю обзор Python-библиотек, с которыми можно создавать системы, сравнимые по производительности с Go и Rust. 

Читать далее

Теория графов для программистов

Reading time5 min
Reach and readers15K

Краткое введение в графы: их устройство, основные типы и способы хранения в программе. Всё изложено просто и по делу — для тех, кто хочет быстро разобраться в теме.

Погрузиться в мир графов

ООП в Python на пальцах: Пишем свою текстовую RPG с нуля

Level of difficultyMedium
Reading time14 min
Reach and readers12K

Как объяснить новичку разницу между Классом и Объектом так, чтобы он запомнил это навсегда? Представить, что Класс — это чертеж робота, а Объект — сам робот.

В этой статье я раскладываю принципы ООП (Объектно-Ориентированного Программирования) на понятные атомы. Никакой сухой академической теории — только живой код на Python. Мы пройдем путь от простых переменных до масштабируемой системы классов на примере создания RPG-игры. В конце вас ждет домашнее задание для закрепления материала.

Читать далее

Ошибки, которые я совершал при оценке стоимости проектов на фрилансе

Level of difficultyEasy
Reading time11 min
Reach and readers9.5K

Уже несколько лет я занимаюсь определением стоимости проектов по разработке, но в первые годы постоянно терпел провалы. Да, можно создать API за неделю, но если вы берёте за это копейки и работаете, как проклятый, то больше похожи на волонтёра, которому компенсируют хлеб и воду. Я бессчётное количество выставлял слишком низкий ценник, делал больше, чем от меня требовалось, а потом ощущал себя болваном. Этот пост — не какой-то манифест гуру; всему этому я научился, набив достаточно шишек. Если вы занимаетесь разработкой на фрилансе, возможно, мои ошибки уберегут вас от части мучений.

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

Читать далее

Poetry vs Pip: Почему пора перестать использовать requirements.txt

Reading time12 min
Reach and readers20K

На моем компьютере всё работало!» — фраза, после которой начинается многочасовой дебаггинг. Вы открываете requirements.txt, а там свалка: непонятные версии, транзитивные зависимости и библиотеки, которые вы вообще не ставили.

Pip — отличный установщик, но ужасный менеджер проектов. В 2025 году стыдно таскать за собой «портянку» из текстовых файлов. В этой статье я покажу, как Poetry превращает ад зависимостей в скучный и предсказуемый процесс. Разберем pyproject.toml, магию lock-файла и переедем с Pip за 5 минут без боли.

Внутри: туториал, гайд по миграции и честный разбор минусов (да, Poetry тоже не идеален).

Читать далее

Разворачиваем PHP проект с помощью Ansible

Level of difficultyMedium
Reading time7 min
Reach and readers5.7K

Что это за чудо-инструмент такой?

Ansible - это инструмент каждого YAML-чемпиона, с помощью него можно развертывать приложения, настраивать конфиги и автоматизации задач через ssh

Возможно, вы слышали про него вместе с фразой - Инфраструктура как код (IaC), потому что с помощью него в большинстве своем настраивают инфраструктуру

Читать далее

Как тестировать конфигурацию Nginx: корректность и информационная безопасность

Level of difficultyMedium
Reading time6 min
Reach and readers10K

При разработке сложной системы приходится сталкиваться с использованием nginx в качестве reverse proxy: роутинг, список правил, регулирующих путь запроса во внутренние системы или между подсистемами.
Быстро развивающиеся сервисы обрастают правилами, назначение которых не очевидно или имеет недокументированные особенности. Проверенный способ рефакторинга таких систем: зафиксировать и вылечить упростить. Фиксировать будем тестами.

Как проверить корректность вашей конфигурации Nginx'а? Как проверить ее безопасность и нет ли уязвимостей ? Какие есть для этого варианты, их плюсы, минусы, практическая применимость и как эти проверки встроить в CI пайплайн ?
Ответы на эти вопросы под катом. Будет полезно, погнали.

Погнали

Docker для начинающих: что это такое и как пользоваться

Level of difficultyEasy
Reading time20 min
Reach and readers26K

Статей про Docker много не бывает.

В этом материале мы разберём базу: что такое Docker, как он работает и зачем нужен, а затем пошагово пройдём путь от установки до запуска первого контейнера.

Освоить рабочую базу Docker →

Docker для самых маленьких: упаковываем Python-бота за 10 минут

Level of difficultyMedium
Reading time10 min
Reach and readers17K

Хватит запускать ботов кнопкой Run в PyCharm! Пора осваивать промышленные стандарты.
В этом туториале я простым языком объясняю, как работает Docker и зачем он нужен Python-разработчику. Мы возьмем простого Telegram-бота, напишем для него конфиг, настроим .dockerignore и запустим в изолированном контейнере. Идеально для тех, кто давно хотел разобраться с Докером, но боялся сложных инструкций.

Читать далее

Типичные проблемы с Docker и как их решать

Level of difficultyEasy
Reading time5 min
Reach and readers14K

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

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

Читать далее

Как я искал работу в IT и получил 5 офферов

Level of difficultyEasy
Reading time9 min
Reach and readers43K

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

Читать далее

Нажми и забудь: как автоматизировать рутину с PowerShell и GUI

Level of difficultyEasy
Reading time5 min
Reach and readers14K

Нажми и забудь: как автоматизировать рутину с PowerShell и GUI

Это руководство пригодится всем, кто устал от рутины и хочет сделать свои PowerShell-скрипты доступными для коллег: системным администраторам, инженерам технической поддержки, DevOps-специалистам. Мы не только разберем основы создания кнопок и окон, но и ответим на ключевые вопросы: Как выбрать между WinForms и WPF, как избежать зависания интерфейса при выполнении долгих операций, и как удобно упаковать ваш скрипт в EXE или ярлык, чтобы любой сотрудник мог запустить его одним кликом.

Читать далее

Мои любимые CSS-трюки, которые вы могли упустить

Level of difficultyMedium
Reading time6 min
Reach and readers14K

Привет, Хабр!

В последние годы CSS стабильно развивается. По себе знаю, что уследить непросто. По этой причине многие продолжают использовать лишь часть его возможностей, ограничиваясь проверенными годами решениями.

Ничего против них не имею. Просто хочу рассказать о нескольких приёмах, которые вы могли упустить. Они помогут вам в разных ситуациях.

Давайте посмотрим, что я вам подготовил.

Читать далее

Всероссийский рейтинг IT-брендов работодателей 2025

Reading time9 min
Reach and readers107K

Привет, Хабр! 

Пришёл ноябрь, а это значит, что Хабр и ЭКОПСИ завершили очередное масштабное исследование и составили новый рейтинг IT-брендов работодателей. Давайте вместе узнаем, как изменился рынок за 2025 год.

Смотреть рейтинг

Моя система хранилищ в Obsidian: Как я разделяю личное и рабочее

Level of difficultyEasy
Reading time4 min
Reach and readers20K

Я уже пару лет использую Obsidian для ведения заметок. Если вы хотите начать работать с этой программой, но не знали с чего начать, то вам стоит прочитать эту статью. Под катом готовый план с образцами хранилищ и сценариями использования, которые помогут вам быстро начать использовать Obsidian без долгого изучения теории.

Изучить детальнее..

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity