Alex L. Demidov

DevOps/SRE consultant

Резюме

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

Разрабатываемые приложения могут быть ориентированы как на работу на выделенном хостинге под mod_perl2 или FastCGI, так и на работу на разделяемом хостинге с минимальной поддержкой perl. При разработке по возможности используются широко распространенные модули с CPAN, например следующие:

  • CGI, CGI::Session
  • веб-фреймворки CGI::Application, Catalyst
  • DBI, Class::DBI, DBIx::Class для работы с базами данных
  • поддержка шаблонов Template Toolkit, HTML::Template
  • MIME-tools, Mail-Tools для работы с электронной почтой
  • Data::FormValidator для валидации вводимых пользователями данных
  • модули для работы с XML, JSON
  • модули тестирования Test::*

Веб-интерфейсы разрабатываются с применением AJAX, который реализуется с использованием JavaScript фреймворка Prototype. В качестве формата данных используется JSON или, при необходимости XML.

В качестве базы данных по возможности используется PostgreSQL, а так же MySQL.

Верстка шаблонов производиться в соответствии со стандартами XHTML и с полным вынесением оформления в CSS.

Разработка всех проектов ведется с использованием систем контроля исходных текстов — SubVersion или CVS.

Мои проекты

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

  • Ключевые компоненты веб-интерфейса переписаны с поддержкой технологии AJAX (используется JSON и JavaScript библиотека Prototype)
  • Добавлен новый компонент LiveChat, реализующий чат сот­руд­ников поддержки с клиентами через веб интерфейс с ипользованием технологии AJAX
  • Осуществлял контроль за разработкой Windows приложения LiveChat для сотрудников техподдержки. Реализовал JSON-интерфейсы серверной компоненты для взаимо­действия с данным приложением.
  • Реализована интеграция с ActiveDirectory (авторизация, миграция пользователей)
  • Реализована интеграция с ПО форумов Invision PowerBoard, phpBB, vBulletin, IkonBoard, SMF (авторизация по базе данных форума, миграция пользователей, отображение последних тем форума в интерефейсе основного приложения)
  • Реализована полноценная поддержка национальных языков и символьных кодировок (Unicode, HTTP language/character set negotiation, динамический выбор шаблонов страниц по тэгу языка)
  • Переписана система обработки входящей почты и реализована полноценная поддержка MIME и произвольных символьных кодировок.
  • Реализована поддержка FastCGI для нетиражируемой версии продукта обеспечивающей hosted solution
  • Реализована система динамического обнаружения необходимых продукту perl-модулей и автоматическое включение/выключение компонентов продукта в зависимости от наличия необходимых модулей.
  • Реализована поддержка ActivePerl 5.8, 5.10
  • Произведен обширный рефакторинг кода для работы при включеных use strict, use warnings и Taint режиме
  • Разработана и внедрена система сборки и тестирования продукта на основе Rake, Test::Harness, системы формального контроля качества кода Perl::Critic, системы тестирования веб-интерфейсов Test::WWW::Mechanize
  • Внедрена система bug-tracking’а Trac

Прошлые проекты.

Биллинг эфирно-кабельного телевидения «Вариант-TV».

Проект был начат в конце апреля 2005-го года и запущен в эксплуатацию строго по плану 1 августа 2005-го, но еще в течении двух месяцев производились достаточно крупные доработки. Всего над проектом работали 3 человека (попутно занимавшиеся так же другими текущими работами) — мной были выполнены работы по общему дизайну проекта и структуры базы данных, разработке логики и реализацию веб-интерфейса, а мои коллеги занимались реализацией базовых объектов модели данных и SQL запросов для пакетных расчетов биллинговой информации, а также версткой HTML для веб-интерфейса. Объем работ — около 7-и человеко-месяцев, объем кода — чуть более 10 000 строк на perl. Особенности проекта:

  • реализован application framework для работы под mod_perl2
  • реализована объектная модель данных, а в качестве ORM использован Class::DBI
  • использован язык шаблонов Template Toolkit
  • Строгая валидация вводимых пользователем данных с использованием Data::FormValidator
  • для выдачи отчетов и бланков документов для печати был применен формат XML. Для отображения отчетов в броузере использовался XSLT, так же он использовался для выдачи бланков документов для печати в MS Word и OpenOffice.
  • Для документирования в процессе разработки использовалась TWiki

Продукт находится в эксплуатации по сей день.

Биллинг ISP «Вариант-Информ».

Проект был начат в декабре 2000-го года для замены старого биллинга на perl4 и sh, разработанного в 1993-м году Сергеем Вовк в «Системотехнике». После периода первоначального проектирования весной 2001-го началась активная разработка и концу лета биллинг начал работать с реальными данными. С весны 2002-го новый биллинг работал параллельно старому, который полностью был выведен из эксплуатации в конце 2002-го. Над проектом работали 4 человека (из которых двое занимались также задачами по администрированию, а один вебмастер подключался по необходимости). Мной были выполнено общее проектирование системы и дизайн базы данных, разработка бэкенда, инфраструктура по сбору данных для биллинга с серверов и роутеров и их инжекту в PostgreSQL, инфраструктура для генерации конфигурационных файлов для сервисов в соответствии со стоянием счетов пользователей. Мои коллеги занимались разработкой веб-интерфейса, реализацией генерации отчетов и уведомлений по почте, расчетной частью бэкенда (SQL запросы). Общий объем работ — около 3-х человеко-лет. Объем кода — 30 000 строк на perl.Продукт находится в эксплуатации по сей день.

Comments