Резюме
В настоящее время я специализируюсь на разработке небольших, средних и крупных веб-приложений на языке 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.Продукт находится в эксплуатации по сей день.