Pull to refresh
-20
0

User

Send message

Mela: асинхронный фреймворк на Python для сервисов, работающих с RabbitMQ

Level of difficultyEasy
Reading time10 min
Views5.9K

WARNING: длинная вступительная часть. Если хотите перейти сразу к делу - листайте до Getting Started.

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments4

SQL миграции в Postgres. Часть 2

Level of difficultyMedium
Reading time17 min
Views12K

В первой части мы рассмотрели базовые операции, такие как добавление новых атрибутов, создание индексов и ограничений и т.д.

Эта статья посвящена двум более сложным миграциям:

- обновление большой таблицы
- разделение таблицы на две

Рассмотрим подходы, которые позволяют провести миграции с минимальным простоем для приложения.

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments2

VSСode. Как настроить окружение для разработки в Docker на удаленном сервере через SSH

Level of difficultyEasy
Reading time3 min
Views21K

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

Читать далее
Total votes 11: ↑10 and ↓1+12
Comments23

Что не так с OpenAPI?

Level of difficultyHard
Reading time7 min
Views36K

Как мы боролись с документированием API на наших проектах, и как мы немного сошли с ума

У вас на проекте порядок с документацией на API? Скорее всего нет. И в нашей компании порядка не было.

Не будем рассказывать, к каким печальным последствиям приводит ошибочная, устаревшая или вовсе отсутствующая API-документация. Почему же на большинстве проектов не удаётся решить такой, казалось бы, несложный вопрос?

Читать далее
Total votes 55: ↑47 and ↓8+50
Comments100

Чистый код, часть 1

Reading time16 min
Views21K

Привет! В этом посте я хочу обсудить, что такое чистый код и почему я считаю его очень важной практикой. Если у вас всё руки не доходили до того, чтобы сесть и подробно почитать книги Дяди Боба, я подготовил небольшой конспект по его видеолекциям со своими примерами с самым главным.

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

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

Читать далее
Total votes 23: ↑19 and ↓4+20
Comments36

Чистый код. Часть 2

Reading time14 min
Views11K

Привет! Продолжаем цикл постов про чистый код по мотивам видеолекций Дяди Боба, первая часть тут. В этом посте поговорим про структуру функций и не только.

Передача булевых аргументов

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

Читать далее
Total votes 22: ↑19 and ↓3+19
Comments10

Ультимативный гайд по HTTP. Cookies и CORS

Level of difficultyEasy
Reading time7 min
Views40K

Привет! Меня зовут Ивасюта Алексей, я техлид команды Bricks в Авито в кластере Architecture, а это мой цикл статей о протоколе HTTP. В первой части мы уже познакомились с версией протокола 1.0 и поговорили о структуре ответов и запросов. Теперь пришло время узнать, что такое Cookies и для чего нужен CORS.

Читать далее
Total votes 18: ↑17 and ↓1+18
Comments2

История учебы Васи и конечный автомат на SQL

Level of difficultyEasy
Reading time13 min
Views2.9K

После выступления на PgConf2023 у меня на выходных появилось время на реализацию идеи, как реализовать логику конечного автомата на SQL в PostgreSQL. Идея применима к любой СУБД, поддерживающей агрегатные функции, определяемые пользователем. И самое грустное, что в одной из самых популярных аналитических баз данных ClickHouse, эту задачу не нашел как вообще можно решить без Python на чистом SQL, хоть автосгенерированном.

Скоро сказка сказывается, да не скоро дело делается... Жил был Вася. Описали летописцы его житие с учебой в виде таблицы. А устои в обществе где он жил, были описаны с помощью конечного автомата. И конечный автомат мудрости - finite-state machine (FSM) был задан в виде таблицы переходов между состояниями, описанными в виде логических выражений на SQL...

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments3

Prometheus + Grafana: 4 golden signals и другие подходы к мониторингу

Reading time9 min
Views9.6K

С мониторингом, как с кораблем. Конечно, успех в обоих случаях зависит не только от названия. Чтобы все не потонуло, важно помнить о базовых вещах на старте.

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

Читать далее
Total votes 13: ↑10 and ↓3+8
Comments2

Решаем задачу по взаимодействию микросервисов на Python тремя способами

Level of difficultyEasy
Reading time6 min
Views15K

Когда речь заходит про взаимодействие микросервисов, все сразу вспоминают о сложных архитектурных паттернах, вроде Event Bus и CQRS. В этой статье я расскажу, как выполнить простенькую задачку для двух микросервисов без навороченной архитектуры. В моем случае это создание сервиса, который агрегирует события компании в единую ленту событий.
Читать дальше →
Total votes 43: ↑42 and ↓1+51
Comments38

Готовим версионирование API в PHP-фреймворках: разбор способов и работа с организацией кода

Level of difficultyEasy
Reading time13 min
Views8.5K

Привет! Меня зовут Олег Мифле. В Skyeng работаю над проектом Skypro. В IT я уже больше десяти лет, семь из которых пишу на PHP. За плечами десятки разных проектов: e-commerce, финтех, CRM, а недавно добавился и EdTech. Были и классические фуллстек-проекты, и проекты, где фронтенд и бэкенд «живут» отдельно и коммуницируют друг с другом по API. Боль от отсутствия версионирования я испытал на себе. Хочу поделиться, как избежать проблем, как всё структурировать и организовать.

Обсудим:

• Что такое API.

• Зачем версионировать API и нужно ли вообще.

• Какие способы версионирования существуют и как его организовать — и с точки зрения подходов, и с точки зрения кода.

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

Читать далее
Total votes 19: ↑19 and ↓0+19
Comments11

Популяризация JSON-RPC (часть 1)

Reading time8 min
Views29K

Для передачи данных по сети есть хорошо зарекомендовавшие себя стандарты - например, SOAP, gRPC, AMQP, REST, GraphQL.

При создании вебсайтов малой, средней и большой сложности с потоками данных к бэкенду и обратно в JSON формате обычно используются последние два с их вариантами. Верней, только варианты, потому что REST и GraphQL - ресурсо-ориентированные стандарты. Это как бы просто перенос элементарной работы с базой данных на клиента (хотя под "ресурсом" может пониматься и абстракция). Обычно таких запросов не больше трети от всего бэкенд API.

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

Читать далее
Total votes 17: ↑10 and ↓7+5
Comments41

Как добавить Live Activity в существующий проект. Часть I

Reading time8 min
Views7.9K

Live Activity был показан Apple на презентации iOS 16 и нового iPhone с Dynamic Island. Обновление доступно только для тех, кто обновил iOS до 16.1. 

Меня зовут Азиз, я iOS-разработчик в inDrive. В статье расскажу, как мы добавляли Live Activity в наше iOS-приложение. Постараюсь ответить на все вопросы, которые возникли у нас в процессе разработки.

Читать далее
Total votes 19: ↑18 and ↓1+21
Comments4

WPAD: инструкция по эксплуатации

Reading time6 min
Views77K


Привет! Я Максим Андреев, программист бэкенда Облака Mail.Ru. На последнем Security Meetup’е я поделился результатами своего исследования протокола автоматической настройки прокси WPAD. Для тех, кто пропустил, — сегодняшний пост. Я расскажу о том, что такое WPAD, какие возможности для эксплуатации он предоставляет с точки зрения злоумышленника, а также покажу примеры того, как можно частично перехватывать HTTPS-трафик с помощью этой технологии.
Читать дальше →
Total votes 59: ↑57 and ↓2+55
Comments16

Звуковой датчик при респавне игрока

Reading time8 min
Views4.2K

Играя в Unreal Tournament (ut99) я использую тактику "ожидание противника в засаде", таких игроков называют camper.

Я мирно cтою за ящиком и слушаю музыку.

Как только раздаётся сигнал "респавна" (воскрешение игрока).
Я говорю: - Привет!

Во время игры я слушаю музыку
Total votes 16: ↑13 and ↓3+19
Comments10

Сам себе сотовый оператор

Reading time14 min
Views93K
… Кроме типовых для журнала статей, там была статья за авторством некоего «DI HALT» про то, как из двух телефонов и микроконтроллера извлечь кучу лулзов. «Прикольный ник» — подумал мальчик Андрей и перелистнул страницу, ибо ниасилил. А за ней была статья того же автора про то, как скрестить флешку с мышкой. «А вот это нам под силу» — подумал мальчик и убил уже знакомую вам флешку банальной переполюсовкой. Но зато он понял, что электроника — это весело и почти безопасно. — с просторов



Приветствую всех!

Многие из вас наверняка слышали про OsmocomBB. Однако каких-то исчерпывающих мануалов по запуску почему-то крайне мало. Итак, в ходе данной статьи постараемся максимально простым образом запустить собственную базовую станцию из доступных комплектующих. Постараемся разобраться, как сделать так, чтобы оно точно заработало.
Читать дальше →
Total votes 342: ↑342 and ↓0+342
Comments135

API platform по быстрому

Reading time14 min
Views11K

API platform это полнофункциональный REST API, который вы получите за считанные минуты. Вот неполный список фич:

- Генерация CRUD

- Поддержка GraphQL

- Машиночитаемая документация API в форматах Hydra и Swagger/Open API, гененрится из метаданных PHPDoc, Serializer, Validator и Doctrine ORM / MongoDB ODM

- Хорошая удобочитаемая документация, созданная с использованием пользовательского интерфейса Swagger (включая песочницу) и / или ReDoc

- Пагинация

- Куча фильтров

- Проверка с использованием компонента Symfony Validator (с поддержкой групп)

- Расширенные правила аутентификации и авторизации

- Расширенная сериализация благодаря компоненту Symfony Serializer (поддержка групп, встраивание отношений, максимальная глубина...)

- Поддержка JWT и OAuth- Файлы и \DateTime, сериализация и десериализация

- Все полностью настраивается благодаря мощной системе событий и сильному ООП.

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments12

Автоматизируем Telegram-канал с AWS Lambda и DynamoDB

Reading time7 min
Views7.6K

В этом материале вы узнаете, как создать Telegram-канал, который будет сам обновляться, получая данные из открытых источников. Используем Python, AWS Lambda, DynamoDB и BeautifulSoup.

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments3

Настраиваем Gitlab CI для сборки Android-проекта

Reading time5 min
Views10K

Привет! Меня зовут Даша, я Android-разработчик в команде онлайн-кинотеатра PREMIER и я хочу с вами поделиться историей как мы начали приводить в порядок Gitlab CI скрипты :)

В нашем проекте стало много вариантов сборок и чтобы не тратить кучу времени на ожидание и поиск необходимого билда нам нужно было хотя бы получить отбивку об окончании работы джобы. А затем - решить неудобства с копипастой, чтобы поддержка скриптов не вызывала выгорание:) Погнали!

Погнали!
Total votes 11: ↑10 and ↓1+12
Comments9

Как мы делали приложение а-ля Google Meet с помощью PeerJS, SocketIO и NextJS

Reading time13 min
Views6.2K

Всем привет, дорогие читатели Хабр. Мы долго думали, чтобы нам сделать такое, что от нас не потребует глубоких знаний бэкенда и базы данных, но все же интересное и обучающее, исключительно ориентированное на конечного пользователя. Так мы пришли к тому, что нам бы хотелось изучить более подробно сферу WebRTC и WebSockets и решили сделать что-то похожее на Google Meet c еë основными фичами, которые более подробно описаны чуть ниже. Но давайте все по порядку :) Приготовьтесь, будет много кода!

Читать далее
Total votes 9: ↑8 and ↓1+7
Comments3

Information

Rating
Does not participate
Location
Казахстан
Registered
Activity