← Назад к вопросам

Есть ли проекты, которые реализовал самостоятельно?

1.0 Junior🔥 242 комментариев
#Опыт и карьера

Комментарии (2)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Проекты в моей практике как Backend-разработчика

Да, на протяжении своей 10-летней карьеры я реализовал множество проектов самостоятельно — от идеи до продакшена. Условно их можно разделить на три категории: коммерческие продукты, инфраструктурные инструменты и опенсорс-решения. Расскажу о нескольких наиболее показательных.

1. Микросервисная платформа для агрегатора туров

Задача: Создать систему, которая в реальном времени собирала и сравнивала предложения от 50+ туроператоров, обрабатывала бронирования и платежи. Самостоятельная реализация: Я спроектировал и написал все бэкенд-сервисы на PHP 7.4 + Symfony с использованием RabbitMQ для асинхронной коммуникации и Redis для кэширования. Ключевой микросервис — парсер данных — обрабатывал до 10 тысяч запросов в минуту.

<?php
// Пример ядра парсера (упрощённо)
class TourParserService {
    private $httpClient;
    private $rateLimiter;
    private $dataNormalizer;

    public function parseMultipleProviders(array $providers): array {
        $promises = [];
        foreach ($providers as $provider) {
            $promises[] = $this->parseAsync($provider);
        }
        return \GuzzleHttp\Promise\settle($promises)->wait();
    }

    private function parseAsync(Provider $provider): PromiseInterface {
        return $this->httpClient->requestAsync('GET', $provider->getEndpoint())
            ->then(function ($response) use ($provider) {
                return $this->dataNormalizer->normalize($response, $provider);
            });
    }
}

Сложности и решения:

  • Проблема: Разные форматы данных от операторов (XML, JSON, CSV).
  • Решение: Реализовал паттерн Adapter для унификации.
  • Проблема: "Тяжёлые" запросы от пользователей (поиск по 10+ параметрам).
  • Решение: Ввёл Elasticsearch для полнотекстового поиска и предрасчёта популярных маршрутов.
  • Результат: Система успешно работает более 3 лет, обрабатывая пиковые нагрузки в сезон.

2. High-load REST API для мобильного приложения

Задача: Разработать API для соц. приложения с функционалом ленты, сообщений и push-уведомлений. Самостоятельная реализация: Чистый PHP 8.1 без монолитных фреймворков, только компоненты для роутинга и DI. PostgreSQL с использованием репликации для распределения чтения. Для геолокации внедрил PostGIS.

<?php
// Пример конечной точки API с использованием PSR-7/15
final class FeedAction implements RequestHandlerInterface {
    public function handle(ServerRequestInterface $request): ResponseInterface {
        $userId = $request->getAttribute('userId');
        $geo = $request->getQueryParams()['geo'] ?? null;

        // Сложный запрос с геофильтрацией
        $posts = $this->repository->findNearbyForUser($userId, $geo, limit: 50);

        return new