Мы расспросили нескольких сотрудников компании: одних об их личном опыте Java-разработки в T-Systems, других — о компании в целом. Нашими собеседниками стали:
- Кирилл Чернин — HR бизнес-партнёр
- Дмитрий Александров — ведущий эксперт-программист (спикер Joker)
- Вячеслав Круглов — Java-разработчик, team lead (спикер Joker)
- Мария Зернова — специалист по внутренним коммуникациям
Кирилл Чернин
— Что даёт вам участие в Joker?
— Мы решаем две задачи. С одной стороны, это обмен опытом между нашими сотрудниками и сотрудниками других компаний. Комьюнити для любого специалиста — очень важный момент с точки зрения новых идей и свежего взгляда. С другой стороны, мы рекламируем себя как работодателя в профессиональном сообществе, а для большой компании с более чем ста проектами это принципиально важно для дальнейшего успеха.
— Какую роль играет Java в вашей компании, и почему в этих случаях предпочтение отдаётся ей?
— Это основной язык разработки для большого количества проектов. Проекты в основном распределённые, и часть команды находится в другом подразделении T-Systems — например, в Бразилии, Словакии или Германии. А предпочтение Java получила, так как это мощный инструмент создания сложных корпоративных многомодульных систем.
— Какие сейчас есть интересные проекты на Java?
— У нас их много. Один из наших флагманских проектов — для компании «Швейцарские железные дороги». Мы разрабатываем с нуля единую систему управления продажами проездных билетов на все виды транспорта Швейцарии, объединяющую более 200 транспортных компаний. Большое количество проектов делается для нашей головной компании Deutsche Telekom — например, бизнес-портал GK-Portale, портал для клиентов компании.
Недавно мы запустили проект для компании BMW — онлайн-систему продаж. Это новый проект, который мы будем делать с нуля в российском офисе, в тесном сотрудничестве с BMW Германия.
Дмитрий Александров
— Вы интересуетесь и Java EE, и Spring — а с чем из этого вам чаще приходится работать в T-Systems?
— У нас есть множество проектов на обеих платформах. Я примерно одинаковое время работал на обеих технологиях. Конкретно сейчас я работаю в Java EE-проекте, и мне очень нравится именно стандартизация, которую предлагает эта платформа. Один и тот же код работает на нескольких Java EE 7-серверах без каких-либо дополнительных настроек. На мой взгляд, это одно из критических преимуществ Java EE. Spring, со своей стороны, часто является «инкубатором» отличных идей, которые впоследствии стандартизуются и в Java EE.
— А что вы думаете о будущем Java EE и «застое», с которым Oracle теперь обещает бороться? Насколько на вашей работе в T-Systems скажутся выход обещанных EE 8 и EE 9?
— Да, в последнее время было много дискуссий и даже панических настроений. Я лично считаю, что ЕЕ в ближайшем будущем точно не умрёт, и, более того, будет неплохо развиваться. Слишком много бизнеса на нём завязано. Следует учитывать и то, что, помимо Oracle, существует сильное комьюнити вокруг этой технологии, которое очень активно. На JavaOne нам показали новый roadmap. Хотелось бы, чтобы не опаздывали с новыми сроками. Что касается влияния новых версий Java EE на наши проекты, я думаю оно будет только положительным. В настоящем моём проекте мы очень активно внедрили многие нововведения EE 7, уверен, так же будет и с EE 8 в новых проектах.
— Вы организовываете в Болгарии конференцию jPrime. Как соотносятся опыт участия в чужой конференции и организации собственной?
— Да, так получается, что у меня есть возможность увидеть «что такое технологическая конференция» и глазами докладчика, и глазами организатора, и глазами зрителя. Это, безусловно, здорово, потому что тем самым мы можем сделать нашу конференцию ещё лучше для всех сторон. Конференция jPrime, хоть и очень молодая, уже смогла стать крупнейшей в регионе. В нашей группе организаторов из 5 человек все программисты, у нас нет профессиональных организаторов событий. Поэтому многому нам пришлось учиться самим с нуля, и участие в других конференциях нам очень помогло.
— Помимо этого, вы ещё и лидер болгарской Java User Group — можете рассказать о деятельности комьюнити?
— Задача нашего комьюнити довольно проста: мы хотим максимально хорошо знать Java. Мы даже ставим себе более амбициозную задачу — напрямую поучаствовать в развитии этого языка и всей платформы. Мы делаем workshop’ы по нововведениям, которые или только появились (например, MVC 1.0), или ещё находятся в стадии разработки и исследований (например, Valhalla project). Для этого, помимо общения между собой, мы всегда стремимся пригласить к нам и самых крупных профессионалов в этой области, в том числе из-за рубежа. Более того, стараемся делать это регулярно. А конференции и митапы являются прекрасным средством для выполнения наших идей.
— О чём вы будете рассказывать на Joker?
— Мой доклад называется «JBatch, или не самые большие данные». Я расскажу про относительно новый JSR-352, задача которого — стандартизовать и оптимизировать подходы к батчевым (или пакетным) обработкам данных в Java. Данный язык прочно зарекомендовал себя в энтерпрайзе, где задачи именно пакетных обработок встречаются довольно часто, а стандартизованных решений, на удивление, до недавнего времени не было.
Вячеслав Круглов
— В T-Systems вы Java-разработчик и team lead — а какую команду возглавляете, над чем работаете?
— Наш проект называется SBB, мы разрабатываем софт для продажи билетов на общественный транспорт Швейцарии. Команда порядка 40 человек, и мы всю разработку ведём в России. Заказчик предоставляет только требования. По сути, являемся продуктовой командой.
— У вас на прошлогоднем Joker был доклад о работе с различными базами данных с помощью Hibernate — а с какими базами данных работают в T-Systems?
— Очень сильно зависит от проекта. Проектов много, у них свои требования. Самое распространённое — это, конечно, Oracle. Встречается MySQL. Некоторые проекты используют MariaDB, кто-то NoSQL.
— Недавно появился материал «5 причин использовать JPA / Hibernate» — а что, по вашему опыту работы, является главной причиной их использования?
— Я как раз тоже прочитал эту статью, больше всего там мне понравился пункт «увеличение производительности разработки». Действительно, Hibernate позволяет очень быстро написать нужный код, не заботясь о каких-то рутинных запросах.
— Появился и противоположный по духу текст «Hibernate разрушил мою карьеру» о том, как он делал проекту хуже, а не лучше — вы с таким в T-Systems сталкивались?
— В тех проектах, где я работал, такого не было, у нас Hibernate оказывался полезен. Да, было много проблем, и их решение занимало некоторое время, но в целом он приносил облегчение. Но я не сомневаюсь, что есть задачи, в которых это не нужно. Это достаточно серьёзный фреймворк, несущий в себе много функциональности, и где-то он не требуется.
— У вас есть опыт обучения молодёжи и у нас на Joker University Day, и в формате Java-школы — а сами в процессе такого обучения тоже образовываетесь? Обнаруживали ли в итоге доклада, что чему-то научились сами?
— Да, конечно. В процессе подготовки, поиска материала находились очень интересные моменты, которые по работе не доводилось находить. В том числе и такие, которые можно потом в работе применить.
И в «нетехническом» плане тоже учишься. При подготовке к Joker оказался очень полезен тренинг от JUG.ru Group: он помог структурировать знания по ведению доклада, перестроить его. Это в итоге очень помогло, в том числе и в Java-школе.
Мария Зернова
— Компания использует разные способы коммуникации — чем конференция для вас отличается от других?
Дистанционное общение подразумевает большое количество формализма — стандартные формулировки о преимуществах компании, достижениях и клиентах. Живое общение на мероприятии дает возможность посетителям получить гораздо больше интересующей информации. Вы можете задать вопросы о конкретных проектах, в которые набираются команды, и пообщаться с их представителями о деталях.
— Joker проходит в Петербурге — для T-Systems это лишь один из городов, или место проведения важно?
Петербургский офис является центральным офисом нашей компании в России, здесь находится большая часть команды. Java-проекты в основном делаются здесь: в Петербурге, например, мы разрабатываем внутренние системы для нашей головной компании Deutsche Telekom или проекты для заказчиков из автомобильной индустрии — очень крупный проект BMW Online Sales Master (OSM). Это уже третий проект для BMW, стартовавший в нашем центре разработки ПО в 2016 году.
Поэтому, как правило, мы принимаем очное участие на конференциях, которые проходят в Петербурге. Но, конечно, это не ограничивает наших докладчиков — они выступают на профильных конференциях независимо от города их проведения. А мы приглашаем к себе сотрудников из разных городов, и готовы помочь с переездом.
— Какой отклик компания обычно получает после докладов ваших спикеров?
Обычно после выступления спикеров сильно возрастает поток посетителей стенда, желающих узнать подробности о нашей компании, проектах. И дело, скорее, не в самой теме доклада, а в общем положительном впечатлении, которое складывается о компании благодаря выступлению. Это особенно заметно после докладов руководителей Java и Test-школ на мероприятиях для тех, кто только начинает карьеру: они узнают о возможностях обучения «изнутри», а не из брошюр, и это вызывает интерес. С другой стороны, доклад опытного специалиста позволяет обсудить сложную проектную задачу и поделиться найденным решением.
— Спасибо за ответы, будем ждать в октябре новый доклад Дмитрия. А пока можно вспомнить доклады спикеров T-Systems с предыдущего Joker: Дмитрия про Nashorn и Вячеслава про Hibernate.
Комментарии (11)
eXTreMeHawk
27.09.2016 08:382016 год. Уже на всех углах было сказано, доказано и написано тысячи раз, что Hibernate — это адский анти паттерн, который нигде и никогда… Но, нет, оказывается, не первелись у нас ещё «герои» наступания на грабли.
mystdeim
27.09.2016 08:55Вы пишете все sql-запросы в ручную? Поясните, что вы имеете ввиду когда называете Hibernate — антипаттерном
eXTreMeHawk
27.09.2016 10:24Сейчас уже для всех языков есть библиотеки, предоставляющие QueryDsl вида:
select .from(Order as o) .where .eq(o.productId, 123) .and .isNotNull(o.orderedAt)
которые работают быстро и, что самое главное, абсолютно ПРОЗРАЧНО, — вы всегда получите отображение на SQL как 1 к 1. И не надо тратить время на борьбу с фреймворком, молиться, чтобы в след версии что-нибудь не отломали и т. п.mystdeim
27.09.2016 10:38После active record из rails действительно hibernate кажется неповоротливым монстром, какие альтернативы вы можете привести для java?
eXTreMeHawk
27.09.2016 11:07Например, для java точно есть Jooq. Для scala, например, есть ScalikeJDBC (и многие другие)
На худой конец, можно свои обёртки вокруг JDBC написать, — всё равно будет прозрачнее и проще чем Hibernate.
semeiskii
27.09.2016 08:59+1Долго пытался угадать: кто, из изображенных на КДПВ, Мария Зернова.
phillennium
27.09.2016 08:59Да, неочевидно получилось) На фотографии — стенд T-Systems на Joker 2015.
Throwable
Человек, однако, лукавит, не стесняясь. Все дополнительные настройки (DataSources, JMS Connection Factories, аутентификацию, etc...) придется делать ручками для каждого сервера по-своему. Ну и как бы дополнительные дескрипторы тоже приходится добавлять, начиная от меппинга jndi, если у вас не "hello world". В стандарте задуман только неинтересный джентльменский набор фич, все остальное — vendor-specific расширения. Процесс разработка просто ужасен. Единственно удобоваримый вариант — обернуть весь проект в Spring.
advbg
Ка ни странно, но все действительно неплохо работает с минимальной конфигурацией. Понятно, что датасорсы пришлось прописывать по-своему на каждом сервере. Больше пришлось повозиться разве что с JAAS, но и тут я лично жду унификации. А а так у нас ни одной вендор специфик аннотации, и этого нам вполне хватает при данных требованиях.
Throwable
У нас вот очень жесткие требования клиента по стандартизации, поэтому заставляют нас, несчастных, сидеть на голом JEE. Даже завернуть в Spring не дают. За последние 10 лет столько настрадавшись при разработке JEE и всевозможных аккуратно расставленных граблей, что у меня единственное желание — чтоб он поскорее, наконец, сдох, ибо суть тормоз в разработке и зло в чистом виде.