Александр Тарантей: «Есть среди разработчиков мнение, что PHP — это не совсем серьёзно. Но я считаю, что в руках мастера и PHP — балалайка»

21 октября 2014, 11:45

В конце августа в минском офисе Ciklum прошла встреча PHP-разработчиков. Одним из спикеров выступил Александр Тарантей, ведущий PHP-разработчик (IASO Backup Technology, Минск, Беларусь), а в недавнем прошлом — сотрудник Ciklum. К счастью, даже расставшись с компанией, наши бывшие сотрудники остаются друзьями Ciklum, охотно принимают участие в наших мероприятиях, а иногда даже выступают в качестве докладчиков.

Предлагаем читателям нашего блога интервью с Александром, в котором он поделился впечатлениями о работе с французским заказчиком в Ciklum, рассказал о командном взаимодействии в ИТ и о будущем PHP-платформы.

Читать дальше

О начале начал

— В двух словах: почему ты занялся программированием?

На самом деле, я связал свою жизнь с программированием достаточно случайно: после школы я планировал поступать в Международный экологический университет имени А.Д. Сахарова на ядерную физику. В год моего поступления (2003) экзамены в университет Сахарова проходили во втором потоке, а получилось так, что я сразу поступил в БГУИР на специальность «искусственный интеллект», экзамены в который проводились в первом потоке. Решил не испытывать судьбу, не забирать документы из БГУИР. Так вот я и оказался в ИТ-сфере, о чём сейчас совсем не жалею.

— Насколько оправдались ожидания от учёбы в БГУИР? Как вообще проходила учёба, что запомнилось больше всего?

— На первом курсе мы учились ещё по старой программе 98 года, и год нас мучали лабораторными по WinAPI (технологии 96 года, которая фактически «умерла» в 98). Со второго курса уже пошли реально полезные предметы: учились писать на Java, очень хорошие курсы были по базам данных, запомнились курсы по логике (специальный курс для нашей специальности), где нас учили технологиям распознавания речи. Исследования в этой области велись в то время на базе двух языков (английского и японского), главным образом из-за структурированности этих языков, что, конечно же, значительно облегчало распознавание устной речи. Ещё в БГУИР заложили фундаментальные основы алгоритмизации. На мой взгляд, это гораздо важнее вызубренного синтаксиса конкретного языка. Хорошая алгоритмическая база позволяет программисту легче переключаться с одного языка на другой, быстрее схватываешь принципы, по которым строится синтаксис того или иного языка программирования.

Учёба в БГУИР выстроена так, что учебный процесс позволяет уже с курса четвёртого свободно пойти и поработать в реальном ИТ-бизнесе, посмотреть на практике, как происходит разработка программных продуктов, как в реальной жизни применяются языки и технологии, которые изучаешь в университете. Если ты работаешь в какой-либо ИТ-компании по специальности, то тебе всегда пойдут навстречу, помогут согласовать сроки сессии и т.д. Это, конечно, очень повышало мотивацию к учёбе, потому что ты начинаешь глубже и детальнее понимать контекст применения технологий в реальной коммерческой разработке.

О хлебе насущном

— А почему ты выбрал именно PHP для работы в коммерческих проектах?

— Так сложилось. Сам для себя я начал писать на таком языке, как Perl. И на своё первое место работы в Itransition я пришёл именно как Perl-разработчик. Этот язык программирования мне очень нравился, он был действительно круче многих других популярных на то время языков. Но, как оказалось, в то время в Itransition была потребность в PHP-разработчиках. Я попробовал, и меня подкупила лёгкость разработки на PHP :) Всё быстрее разворачивалось, быстрее деплоилось на сервер (залил и заработало). Так вот все пошло и поехало.

Когда я пришел в реальные проекты, мне казалось, что я уже всё знаю и умею. И когда мне начали рассказывать, какие шаблонизаторы мы используем на проекте и про ООП (напомню, его в 4-ой версии PHP, можно сказать, и не было), я сильно возмущался: мол, до этого я делал сайты без всех этих наворотов, и всё прекрасно работало. Но, к счастью, у меня был очень хороший куратор (тим-лид) Игорь Фурсевич. Не знаю, как у него хватило терпения со мной, но я ему за все вложенные в меня знания невероятно благодарен. Он мне спокойно и методично шаг за шагом доказывал, что нужно делать всё именно по правилам методологии: чётко определять классы, наследование, вникать в архитектуру и т.д. Честно говоря, на своём первом проекте я как-то даже толком не вникал в архитектуру, так как у нас был свой собственный фреймворк на PHP 4. Как сделать тот или иной контроллер, можно было подсмотреть в уже готовых решениях. А в определённый момент я столкнулся с задачей, когда мне нужно было описать новому клиенту всю архитектуру нашего проекта от точки входа до вывода каждой части странички в браузер. Это был, наверное, первый серьёзный момент в моём профессиональном становлении, когда пришлось с помощью ctrl+click, переходя от метода к методу, вникать, что и как у нас работает. Именно тогда я по-настоящему осознал практическую сторону методологии в разработке ПО.

— Никогда не хотелось сменить PHP на другую платформу?

— Есть среди коллег (.Net и Java-разработчиков) такое мнение, что PHP — это не совсем серьёзно, всё очень громоздко, медленно и неповоротливо. Но я считаю, что в руках мастера и PHP — балалайка :) Они, наверное, забывают, когда пишут на Facebook, что он именно на PHP и написан. В PHP действительно достаточно низкая планка входа для программистов, и есть много доступной документации по использованию языка. Это, наверное, и создает такое мнение, что PHP — платформа для дилетантов. Но на самом деле, уровень технических возможностей этой платформы нисколько не уступает .Net или Java. Всё зависит от мастерства разработчика и его общего профессионального кругозора (понимания принципов, методологии разработки без привязки к конкретной платформе).

В общем, меня пока PHP вполне устраивает, тем более, что PHP сейчас настолько популярная платформа, что без работы в ближайшем будущем уж точно не останешься.

— Каким ты видишь будущее PHP платформы?

— Иногда мне кажется, что PHP как язык программирования не «сдох» только потому, что появился Facebook. Это действительно открыло новые горизонты для развития платформы. Сегодня на PHP пишут большие серьёзные системы, и всё это благодаря развитию фреймворков (Zend, Symfony).

Но не все модные технологические штуки лично мне импонируют. Я, например, до сих пор не приемлю использования ORM в проектах. На мой взгляд, эту штуку придумали для тех, кто не знает SQL, для тех, кто не может сам запрос написать.

О французской стороне

— Расскажи, пожалуйста, об особенностях работы с французскими клиентами?

До работы в Ciklum у меня был достаточно продолжительный опыт совместной разработки с британцами (такими настоящими, с Оксфордским образованием) и американцами. Французы же отличаются такими качествами, как дружелюбие и открытость: во время моей первой поездки в наш офис в Париж, когда я вообще не знал города и не говорил по-французски, мне каждый вечер кто-то из коллег составлял компанию, показывал город, рассказывал лучше любого экскурсовода. С другой стороны, французы очень необязательные: нам, например, даже трудно представить такую ситуацию, когда на демо, назначенное в 14.00, никто не является, и только в 15.15 напишет в скайпе: «ну что демо?» :) Да, французы такие товарищи, для них это нормально.

— Как культурные особенности французов сказывались на командной работе?

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

С другой стороны, этот акцент на командности имел и не совсем приятные для нас стороны: например, наш парижский босс требовал непосредственного присутствия в офисе в рабочее время и запрещал работу из дома даже тогда, когда у нас в Минске был двадцатиградусный мороз :) Хотя сами они, когда побывали у нас зимой, просто удивлялись, как мы тут вообще выживаем с такими морозами.

Ещё момент, который тоже мне очень запомнился относительно командной работы с французами: в команде действительно равноправие, нет раз и навсегда назначенного лида, скорее, в разные моменты времени под разные цели и задачи каждый может себя проявить, взять инициативу в свои руки и лидить команду. Наверное, это то, что называется распределённым лидерством. При этом степень свободы равна степени ответственности. Мне это понравилось. Например, мне очень не нравилась панель клиента. То, что видели те, кто нам приносит основной доход, выглядело ужасно: неудобная система статистики, непонятные графики и т.д. Я, никому не говоря, посидел на выходных и сверстал прототип нового дизайна, используя тот же twitter bootstrap. В понедельник представил, команде очень понравилось (по сравнению с тем, что было до этого, сделать хуже было просто невозможно), и мы получили 2 недели на внедрение и тестирование нового UI.

Был у нас в команде интересный персонаж на французской стороне — Кристофер. Очень подкованный технически разработчик, толковый, грамотный. Но была у него привычка уходить раз в полгода в отпуск, месяцев на 6-7 :) Дело в том, что во Франции есть такая интересная штука, как страхование работы (вернее, страхование на случай увольнения). Если ты теряешь работу, то первые 6 месяцев, будучи безработным, ты получаешь 75% своего ежемесячного заработка. Кристофер был одним из немногих разработчиков в нашей команде в Париже, кто имел университетский диплом, а не просто сертификат о прослушивании курсов. Это очень выгодно отличало его от большинства претендентов на любые технические вакансии. Дело в том, что во Франции высшее образование бесплатное и доступное, поступить нет никакой проблемы. Но вот окончить полный курс обучения в университете удаётся немногим. Французы учатся по много лет, совмещая учебу с работой и другими сферами жизни. В результате очень небольшой процент сотрудников в среднестатистической фирме во Франции имеет университетский диплом. Так что Кристоферу нечего было бояться в плане поиска работы.

Однако ему и этого было мало: он мечтал поселиться на границе со Швейцарией и найти там работу, чтобы получать швейцарскую зарплату (в 2-3 раза выше, чем во Франции), а налоги платить и тратить деньги во Франции, где всё дешевле. Вот такой был интересный разработчик :) На моей памяти, два раза уходил и возвращался в команду с перерывами в полгода. И его всегда брали назад, так как найти такого толкового разработчика в Париже — ещё та задачка. У нас в стране такое бы вряд ли терпели :)

— Какие качества разработчика наиболее критичны при работе с французскими заказчиками? Что определяет успех в сотрудничестве с коллегами, заказчиками из Франции?

—Как я уже и говорил, французы — очень открытые ребята. Экстраверты, любят общаться, причём не только в офисной обстановке. Они часто с коллегами тусуются в барах. Был у нас один коллега на французской стороне, он однажды обнял нашего технического директора Эдуарда и сказал, что наш босс такой классный парень, правда, после работы :) Они действительно очень открытые, эмоциональные в общении, для них очень важно не только как ты работаешь, но и как ты выстраиваешь отношения в команде, как ты общаешься. Могло быть ещё и так, что весь рабочий день технический директор может «наезжать» на команду, быть недовольным какими-то решениями и подходами, которые предлагает команда, а потом вечером вы идёте с ним пить пиво, ну прям как лучшие друзья.

Ещё с французами не нужно спешить, они ненавидят, когда ты от них чего-либо требуешь в жёсткие сроки. Один мой парижский коллега сказал однажды: «Ты посмотри на архитектуру Парижа, здесь всё строили медленно, не спеша, всё хорошо продумывая, и всё это стоит веками». Это действительно то, что отличает французов от других: они всё делают основательно и очень качественно. Во Франции очень много вековых семейных династий в бизнесе, особенно в малом: владельцы кафе, ресторанов и т.д. Иногда люди могут не знать, как зовут их президента, но при этом содержат кафе в центре Парижа уже в третьем поколении. Что бы ни происходило (войны, революции), их работа — кормить вкусно людей. Для меня это было удивительно.

— В чём суть бизнес-модели, по которой работала компания-клиент? Что в ней было оригинального, эксклюзивного?

— Мы разрабатывали e-mail retargeting system. Например, есть какой-то интернет-магазин, пользователь заходит в этот магазин, смотрит товары, но ничего не покупает и уходит. Система фиксирует, какие товары смотрел посетитель, что его интересовало, а затем присылает ему на почту письмо с предложением купить интересующие его товары, но уже со скидкой или с какими-то другими более привлекательными плюшками. Если пользователь переходит на сайт интернет-магазина с такого письма, то мы получаем за каждый переход комиссию.

Конечно же, для того, чтобы такая система работала, необходимо сначала каким-то образом собрать e-mail адреса потенциальных покупателей. И это вторая часть системы. Обычно фиксация пользователей (e-mail и id) происходила на различных порталах партнеров, где потенциальные покупатели заполняли формы регистрации для различных целей. В том случае, когда идентифицированный пользователь заходил в интернет-магазин наших клиентов, смотрел товар, ничего не покупал, уходил, а потом, получив письмо от нашей системы, возвращался на сайт магазина, все были в выигрыше: магазин получал заинтересованного покупателя, мы комиссию, которую делили с порталами-партнеров, где пользователи регистрировались и откуда мы получали возможность идентифицировать пользователей. Причём размер комиссии мог значительно отличаться в зависимости от того, каким товаром торгует интернет-магазин: если это пиво, например, то комиссия могла составлять десятки центов, а в случае с дорогими автомобилями — и десяток евро.

Процент «открытых» писем был достаточно высоким (порядка 60%). И около 70% пользователей, получив и открыв наши письма, возвращались на сайты интернет-магазинов. Система реально работала и приносила хороший доход. В сегменте такого рода систем (медиа-маркетинг, e-mail retargeting systems) наш клиент был первопроходцем на французском рынке. В итоге, нашей разработкой очень заинтересовалось крупнейшее маркетинговое агентство Франции, год велись переговоры, и в середине этого года систему выкупили за 21 миллион евро :)

— Было ли какое-то know-how в том, как вы технически реализовывали ваше приложение?

— Во-первых, система синхронизации данных: у нас было 5 баз данных, развёрнутых на разных серверах, и нужно было синхронизировать их структуру. Для целей синхронизации мы использовали Liquibase. Он нам очень помог. Это было одним из технических открытий для меня на проекте. Во-вторых, у нас был отлично выстроен процесс разработки, настоящий continuous integration, с unit-тестами и всеми другими атрибутами. Система производила обработку больших статистических данных, и, например, без unit-тестов я даже не представляю, как бы мы справились. Наверное, это были самые важные составляющие успеха технической реализации нашей системы. Ну, конечно же, ко всему этому ещё хорошая коммуникация и настоящая командная работа :)

подписка на главные новости 
недели != спам
# ит-новости
# анонсы событий
# вакансии
Обсуждение