Мы постоянно слышим слухи о том, что компании ищут программиста-полиглота. Это гораздо ближе к реальности, чем мы думаем.
Уже недостаточно называть себя «Java-программистом» или «Python-экспертом». Конечно, всегда будет один язык программирования, который вы любите и в котором объявляете себя экспертом. Однако это еще не все, что требуется для выживания в сфере разработки программного обеспечения.
С появлением программных архитектур «одной ответственности» (кто-нибудь микросервисы?) требуется возможность создавать программное обеспечение более чем на одном языке.
Java может лучше всего подходить для службы, но node.js может быть лучшим выбором для другой. Больше нет «одного размера для всех». Ожидается, что программист не только сможет кодировать на нескольких языках, но и действительно знает, когда что использовать.
Испытания
Неудивительно, что есть проблемы в достижении этого. Чаще всего это не связано с техническими аспектами этого изменения. Разработчики в течение многих лет были страстными сторонниками, иногда агрессивно, языка, на котором они пишут программное обеспечение изо дня в день. Эта страсть иногда становится самым большим препятствием на пути перехода вашей команды к полиглотному мыслительному процессу. Что упускают разработчики, так это то, что программное обеспечение, которое пишется в настоящее время, должно быстро масштабироваться, обслуживать несколько вариантов использования и должно быстро создаваться (MVP?). Таким образом, хотя язык, который вам нравится, может отлично подойти для некоторых вариантов использования, для конкретного варианта использования может существовать лучший технический стек.
Эта независимость в выборе наиболее подходящего стека для службы действительно сослужит хорошую службу в долгосрочной перспективе.
Хотя с полиглотом не все зелено
Однако стоит отметить еще один аспект. Все не так зелено и гладко, что переходит в полиглотную среду. Если не обращаться должным образом, настройка полиглота может создать больше проблем, чем решить.
Программирование на полиглоте рискует столкнуться с ситуацией, когда будет сложно интегрировать сервисы из-за отсутствия ясности. Хотя это верно для любой интеграции, тем более важно, чтобы сервисные группы и команды очень четко отображали свои интерфейсы и не требовали помощи от команды, которая создала эту службу.
В однородной среде сравнительно проще копаться в коде других отрядов и находить способы интеграции. Однако в многоязычной среде это может привести к ситуации, когда интегрирующая группа не знает языка, на котором написан сервис.
Если нет четкого и стандартного способа предоставления интерфейсов для облегчения такой интеграции, это приводит к большему количеству проблем, которые он пытается решить.
StackCV – это экосистема подбора персонала, которая поможет вам найти следующую вакансию, подготовиться к ней, проверить свои навыки и поделиться своими первыми видеоинтервью с потенциальными работодателями.
Первоначально опубликовано на blog.stackcv.com 9 октября 2018 г.