Найти в Дзене
Snobs prohibited

Почему не стоит бояться легаси?

Доброго времени суток, друзья. На прошлой неделе наш тимлид провел презентацию, в которой осветил известную для энтерпрайза проблему. Легаси-код и нежелание джуниоров с ним работать. Это опасная тема. Когда она поднимается, высока вероятность, что всё превратится в банальный срач. Но у меня по этому поводу есть кое-какие комментарии, которыми хочется поделиться. Итак, понять джунов, конечно же, можно. Никто не откажется писать проект с нуля на самом современном стеке, востребованном на рынке труда, вместо поддержки спагетти из старого чужого кода и освоения фреймворков, которые некоторыми диванными экспертами считаются мертворождёнными. Но есть один нюанс... Был у меня в проекте один парень, который жаловался на то, что пишет мало Java-кода. Вроде как он шёл на позицию джависта, а приходится много ковыряться в каких-то хранимых процедурах, PL/SQL, а также изучать, не к столу будет сказано, JSF. При любой удобной возможности он говорил, что знает, как тот или иной функционал реализоват

Доброго времени суток, друзья.

На прошлой неделе наш тимлид провел презентацию, в которой осветил известную для энтерпрайза проблему. Легаси-код и нежелание джуниоров с ним работать. Это опасная тема. Когда она поднимается, высока вероятность, что всё превратится в банальный срач. Но у меня по этому поводу есть кое-какие комментарии, которыми хочется поделиться.

Итак, понять джунов, конечно же, можно. Никто не откажется писать проект с нуля на самом современном стеке, востребованном на рынке труда, вместо поддержки спагетти из старого чужого кода и освоения фреймворков, которые некоторыми диванными экспертами считаются мертворождёнными. Но есть один нюанс...

Был у меня в проекте один парень, который жаловался на то, что пишет мало Java-кода. Вроде как он шёл на позицию джависта, а приходится много ковыряться в каких-то хранимых процедурах, PL/SQL, а также изучать, не к столу будет сказано, JSF. При любой удобной возможности он говорил, что знает, как тот или иной функционал реализовать на Spring'е, и что было бы очень круто перевести на него весь проект. В итоге он уволился через полгода, т.к. не сумел дойти до стадии принятия.

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

  • Во-первых, как по мне, программирование - это не просто писанина кучи шаблонного кода на любимом языке, а в первую очередь решение задач. Языки и фреймворки - это лишь инструменты, при помощи которых это делается. В самом деле, если ты электрик, то не станешь жаловаться, что приходится иметь дело с какой-нибудь легаси-люстрой времен СССР. Ты просто возьмёшь и починишь её, чёрт возьми!
  • Во-вторых, существует фундамент, который вообще не зависит от используемых технологий. И мыслить фундаментально - гораздо лучше, чем какими-то конкретными реализациями. К примеру, что такое DTO и DAO, объектно-реляционное отображение, MVC и прочие ништяки, я познал на легаси-коде. И какая, собственно, разница, если понимая суть, можно реализовать всё это на любом фреймворке, вместо того, чтобы ныть, что ты можешь сделать работу с БД на Hibernate, но никогда в жизни не сделаешь с использованием Toplink или нативного JPA.
  • В-третьих, как бы банально это не прозвучало, программирование - это работа. Я понимаю, что многие люди этого не осознают, но само слово "работа" как бы намекает, что здесь нужно делать не только то, от чего тебя прёт. В общем, здесь какие-либо комментарии излишни. Уверен, что если бы у меня была куча подписчиков, эту крамольную мысль заминусовали бы в пух и прах. Но у меня на этот счет другие взгляды, за свою жизнь я успел осознать, что выбор есть не всегда и время от времени делать не то, что хочется, вовсе не западло.

Наверняка я что-то забыл и вспомню позже, как это обычно бывает, но в целом трёх озвученных причин уже вполне достаточно, чтобы не бояться легаси. А что вы думаете на этот счёт? Холиварить в комментах не только можно, но и нужно :-)

Auf wiedersehen.