На чём писать большой продукт?

Поделюсь своим опытом в одной из компаний, в которой я возглавлял разработку нескольких крупных проектов.

На момент моего прихода, в компании был неуверенно принят Go в качестве основного языка backend-разработки. Тем не менее сколь либо серьезных проектов на нем еще небыло реализовано, а использовался он буквально для нескольких небольших и разрозненных сервисов. Фундаментальных причин в этом выборе тоже не было, как и штата Go-разработчиков, скорее по принципу "стильно, модно, молодёжно".

А сформировать команду под большой проект было как раз моей задачей.

Я придерживаюсь позиции, что глобально не имеет значения на чем писать, главное, чтобы выбор стека был продиктован ключевыми требованиями продукта (функциональность, нагрузка, масштабируемость и т.д.), а не веянием моды. Тем более что микросервисная архитектура позволяет интегрировать сервисы, написанные даже на разных языках. При этом писать на разных языках один или несколько продуктов внутри одной компании (зависит от размера компании конечно же) что равнО держать штат разработчиков под каждый технологический стек, что для большинства является роскошью.

Задача была построить большую высоконагруженную систему, имеющую огромное количество внешних интеграций, сложной логики, массы атомарного функционала и сильно разветвленных последовательных и параллельных процессов и подпроцессов внутри.

Все-таки Go? Java? C# / Python, что-то еще?

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

В особенности языков, их сильные и слабые стороны я вдаваться не буду, материалов полно в открытых источниках.

И здесь же заодно оценил доступный лид-ресурс, который потенциально может быть вовлечен в разработку в той или иной степени и роли. C# / Python быстро сдали позиции, поскольку разработчиков много, а вот сеньоров, способных лидить команду разработчиков - нет. Таким образом Go и Java вышли в приоритет.

Вторым шагом было предметное исследование как будут решаться те или иные прикладные задачи и функционал

Продолжение в статье: https://m.vk.com/@ie_sorokin-na-chem-pisat-bolshoi-produkt-i-kak-vybirat-tehnologicheskii

На чём писать большой продукт? | Сетка — социальная сеть от hh.ru