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

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

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

Горячие события

Конкурс EY Entrepreneur Of The Year 2020
31 мая — 31 мая

Конкурс EY Entrepreneur Of The Year 2020

GoWayFest 4.0
11 июля — 11 июля

GoWayFest 4.0

Минск

Читайте также

HR рассказала, как ввязываться в споры с начальством без последствий
HR рассказала, как ввязываться в споры с начальством без последствий

HR рассказала, как ввязываться в споры с начальством без последствий

Прошлый год был богат на истории, когда сотрудники ИТ-компаний делились своей болью публично. В этом году — их не становится меньше. Опасно ли «выносить сор из избы» для карьеры, почему у айтишников до сих пор нет официального профсоюза и почему деньги мешают ИТ-компаниям адекватно разруливать конфликты, — рассказывает HR-директор и бизнес-консультант Ирина Вишневская.
34 комментария
БДСМ года. Голосуем за тех, кто любит пожёстче
БДСМ года. Голосуем за тех, кто любит пожёстче

БДСМ года. Голосуем за тех, кто любит пожёстче

3 комментария
Состоялся релиз PHP 7.4
Состоялся релиз PHP 7.4

Состоялся релиз PHP 7.4

Уязвимость PHP7 подвергает сайты риску удалённого взлома
Уязвимость PHP7 подвергает сайты риску удалённого взлома

Уязвимость PHP7 подвергает сайты риску удалённого взлома

3 комментария

Обсуждение

-2

Facebook использует php только на front-end.

0

>Но на самом деле, уровень технических возможностей этой платформы нисколько не уступает .Net или Java.
:)

1

zeremit, PHP Facebook и какой-нибуть друпальчик - это две большие разницы. Просвещайтесь http://en.wikipedia.org/wiki/HipHop_for_PHP

1

тем более :) афтар упоминает именно PHP, а не HipHop PHP

1

SAP конечно лучше чем PHP

0

зеленое лучше чем квадрат? :))) фиерично :)

feedbee
feedbee Director of Engineering в IDT Belarus
2

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

ORM невозможно пользоваться без хорошего знания SQL — все будет тормозить из-за неправильной работы с ней. Эту штуку придумали для тех, кто не хочет тратить время на написание SQL-запросов, а не не знает его. К тому же ORM дает большой плюс при внесении изменений в систему. Это надо понять и прочувствовать. И научиться ее готовить.

1

Мой комментарий о том, что крайности - зло.

feedbee
feedbee Director of Engineering в IDT Belarus
0

Я только добавлю очевидное для меня, т.к. оно может оказаться неочевидным для некоторых других. ORM подходит в тех проектах, где она подходит. И не годится там, где она не годится. Ключевое слово с точки зрения контекста в аббревиатуре — Relation. Когда много связей, ORM приносит много пользы. Если у проект сильно высоконагруженный и все денормализовано, то ORM не принесет никакой пользы.

0

>>>ORM невозможно пользоваться без хорошего знания SQL — все будет тормозить из-за неправильной работы с ней. Эту штуку придумали для тех, кто не хочет тратить время на написание SQL-запросов, а не не знает его. К тому же ORM дает большой плюс при внесении изменений в систему. Это надо понять и прочувствовать. И научиться ее готовить.

Вот так и рождаются мифы о криворукости php разработчиков. большинство кто работал только через orm глубоко в sql не лазит, и либо только слышали либо нет, о простейших триггерах, хранимых процедурах, а уж в настройки mysql вообще боятся залезть.
Почему-то потом все узкие места приходится переписывать на чистом pdo,и даже многие разработчики на это жалуются типа yii. Не зря в zend 2 доктрина не идёт по умолчанию.

насчёт php скажу что я стал использовать функциональное программирование в php 2 года назад, когда мои коллеги java висты только в этом году перешли, так что не надо тут мяу-мяу.

Альтернативы лучшей php для веб разработки нет и не предвидится , другие языки уж очень специфически заточены.

1

Что вы понимаете под "функциональным программированием"? Можно пример кода какой-нибудь?

feedbee
feedbee Director of Engineering в IDT Belarus
0

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

А вот про переписывание, тут я скажу просто — мне, почему-то, не нужно. Максимум, что нудно было, так это опускаться до уровня DQL (в Doctrine). А переписать запрос на SQL всегда проще, чем разобраться с возможностями ORM. В частности, Doctrine – это очень мощная штука и это больше чем ORM.

7

Ребята сделали сервис ценой 21 млн., а в комментах меряются у кого орм длиннее. Осталось дождаться когда придут гуру, которые перепишут всё на симфони с доктриной, покрыв всё на 100% unit и bdd тестами, набросают puppet конфигов с правильной конфигурацией.

Дело не в модности технологий, а в руках и удобстве для команды. А когда рассказывают историю успешного стартапа, то не нужно постфактум учить Папу Карло строгать Буратино.

-8

кто то покупает за 21 млн? сори - я просто не чилал статью саму.

0

Про ORM вы так зря.
Штука очень полезная: сильно упрощает жизнь когда движков несколько(ну вот у меня например MySql, MS SQL, SQLLite в такой ситуации либо мы используем ORM, либо у нас макароны в коде, либо у нас собственный велосипед).
ЗЫ сам знаю достаточно неплохо как и SQL MySQL, так и T-SQL, а вот синтаксис SQLLite изучить не сподобился(мне движок не нравится) .
ЗЫЫ Я не хочу вас обижать, но заявление не вполне зрелое.

0

Ты чо, главное стартап застартапить и изобретать велосипед каждый день.

0

Конечно, на таком проекте обязательно будут раз в неделю менять базу данных, чтоб врагов запутать. DBAL никакого отношения к ORM не имеет, да и абстракция сильно уж условная получается в реальности, например, в sqlite натыкаешься на лимиты в длине строки или количество элементов в IN, в mysql нужно подсказать индексы, да и отказываться от специфичных фич ради теоретической поддержки других баз - нафик надо.

ORM же просто биндинг связь между данными и объектами, данные могут быть хоть в sql базе, хоть в xml-файлах, хоть в монге. Никаких ограничений на извлечения этих данных нет, можно хоть руками писать sql запросы, а затем биндить результат на объекты.

2

А если у нас все крутилось только на mysql? Использование (неиспользование) ORM именно в данном проекте обуславливалось банальной экономией ресурсов - приходилось иметь дело с огромным количеством данных. да и запросы там были не в одну строку. Если бы мы занимались разработой интернет-магазинов или сайтов-визиток за 300 то, возможно, юзали бы средства максимально ускоряющие разработку

Но упомянул я про ORM скорее вскольз, но тут это сочли главной темой статьи. Просто буквально за пару дней до вью приходил человек на собеседование и на любой вопрос о БД отвечал примерно следующее: зачем мне это знать, все мол разруливается уже готовыми решениями и т.д.

0

Дело не в том, что вы не используйте ОРМ, дело в том что аргумент слабый.

1

dev.by решил разбавить застой с помощью вентилятора и холиварной статьи от ноунэйма?

5

но хватка вижно уже не та - нету епама, жилья для программистов, тема аутсорса тоже не раскрыта.

2

"Программирование с++ мне вообще не далось, сколько не пытался его в курить — ни как не получалось. Зато пхп очень понравился" - c хабра.

2

"Я Ruby не знаю, но это не мешает мне программировать на рельсах" (с ЛОРа - https://www.linux.org.ru/news/opensource/9735112/page2#comment-9736846)

2

"нас мучали лабораторными по WinAPI (технологии 96 года, которая фактически «умерла» в 98)" -- справедливости ради хочу заметить, что Win32/Win64 API практически в неизменном виде присутствует во всех операционных системах Microsoft вплоть до Windows 8. Заявить о смерти Win API -- то же самое, что объявить о кончине POSIX. И то и другое будет явным преувеличением.

В остальном статья интересная, спасибо.