Web инженер с 15+ летним опытом работы


Профессиональные знания и навыки

  • 15+ лет разработки на PHP
  • 5+ лет разработки на Vue.js и React
  • отличное знание ООП, большой опыт работы с MVC фреимворками Yii, Laravel, Symfony, Zend Framework
  • большой опыт работы с MySQL и PostgreSQL. Понимание принципов SQL, опыт оптимизации SQL-запросов, написания триггеров (PL/SQL), работа с системами миграций
  • опыт работы с Git, Composer
  • умение и желание писать unit тесты
  • опыт разработки клиент-серверных приложений с использованием JSON-RPC, SOAP и REST-API архитектуры
  • хорошие знания в области написания регулярных выражений
  • степень магистра информационных технологий

Авторские разработки


RBAC - модуль для Yii2

Модуль для создания ролей и прав доступа через веб-интерфейс, так же имеющий веб интерфейс для назначения ролей пользователям Поведение для приложения, проверяющее право доступа к action по внесенным в модуле правилам.

Тестирование моделей в Yii2

  • проверка на возможность массового присвоения атрибута
  • проверка на обязательность заполнения параметра
  • проверка на длинну строки
  • проверка на наличие связей в моделе

Custom error handler

Модуль для Yii 2.x, позволяет повесить свою обработку на исключения (Exception). Например для отлавливания "опасных" действий пользователя.

Последние записи блога


Лимитирование запросов (RateLimiter) к приложению в Yii2

Установка лимита запросов — один из вариантов защиты приложения. Ведь согласитесь, обычный пользователь врятли сможет генерировать сотню запросов к приложению в минуту. В Yii такая защита имеется из коробки и основана на алгоритме Leaky bucket. Главное знать о ее существовании и использовать по назначению. Как настроить лимит запросов к приложению в Yii2 и рассмотрим в этой статье. Для начала оговорюсь, лимитирование запросов (RateLimiter) — это фильтр, поэтому его можно использовать в любом (не только REST) контроллере или модуле, подключив в виде поведения... читать далее

Уязвимость моделей в Yii2 или о важности safe аттрибутов

Давайте посмотрим на метод update контроллера, генерируемого с помощью gii. Подразумевается, что у вас есть форма, которая отправляет POST-запрос на данный action. Данные загружаются в модель, валидируются и сохраняются. Допустим, что данная форма нужна чтобы дать возможность пользователю обновить свое отображаемое имя (username). Но при неправильном указании safe-атрибутов в модели, злоумышленник сможет обновить и другие поля, такие как пароль или статус, причем не только для своего id. Для этого достаточно отправить POST запрос на update/чужой-id передав не только значение username, но и значение password....читать далее

Некоторые проекты


http://e-navbat.mfa.uz

Интерактивный сайт консульских услуг

Позволяет записаться на прием в консульское учреждение Узбекистана за рубежом, получить исчерпывающую информацию об услуге, узнать перечень необходимых документов, заполнить формы и заявки online. Проект выполнен по заказу UNDP. Включает в себя такие модули как:
  • электронная очередь в консульское учреждение
  • эффективный тайм-менеджмент предоставления услуг
  • интерактивная настройка, предоставляемых услуг
  • генератор форм и анкет
  • экспертная система и часто задоваемые вопросы
  • модуль администрирования и безопасности
  • кабинете консульства, с возможностями персонализации
  • мультиязычность с неограниченным количеством поддерживаемых языков
  • статистические отчеты для анализа эффективности работы консульских учреждений

 

Map application for Philip Morris Inc

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

 

Конспекты книг


Дизайн пользовательского интерфейса. Искусство мыть слона
Копирование материалов разрешено при наличии активной ссылки на источник