Преимущества и опасности использования библиотек и фреймворков Java с открытым исходным кодом
По всей видимости, каждый в мире Java использует разные библиотеки с открытым исходным кодом и фреймворки… и почему нет, есть сотни доступных программ, покрывающих большинство проблем, с которыми Вы можете столкнуться в повседневной разработке. В этом посте дано быстрое описание причин использования библиотек с открытым исходным кодом и рассмотрены возможные неполадки.
Первой причиной их использования является снижение стоимости, так как вашему проекту дешевле использовать библиотеки с открытым исходным кодом, чем написать тоже самое себе.
Вторая причина использования библиотек с открытым исходным кодом — это поддержка от способных и заинтересованных разработчиков, обычно в виде большого количества документации и форумов.
Третья причина — это бесплатные обновления и улучшения от сообщества, а также бесплатное исправление ошибок, но Вы не можете выбрать какие улучшения будут добавлены в проект. Некоторые проекты, такие как Tomcat, имеют механизм голосования о том, какие улучшения нужно сделать, и в итоге всё это зависит от того, что действительно интересует разработчиков.
Также есть несколько не упомянутых причин использования популярных библиотек с открытым исходным кодом и фреймворков: во первых, они улучшают Ваше резюме. Если Вы пополнили свое резюме популярным проектом с открытым исходным кодом, то Ваши шансы получить повышение заработной платы или лучшую работу возрастают. Во вторых, если Вы работаете на проекте с открытым исходным кодом, то, зачастую, Вы изучаете популярную технологию, что в целом делает Вас более востребованным разработчиком.
Существует очевидная обратная сторона использования библиотек с открытым исходным кодом и это то, что все проекты имеют конечный жизненный цикл. Выпускаются новые версии библиотек, старые библиотеки устаревают, перестают использоваться, разработчики потеряли интерес или перешли, или остальная часть сообщества нашла что-то получше и занялась ей.
Поэтому проблемы отказа от устаревших библиотек с открытым исходным кодом в первую очередь являются дополнительными затратами: отсутствие поддержки, форума и исправления ошибок. Вы сами по себе. Бывает Вам удается самостоятельно осуществлять поддержку, но это не точно и стоит денег.
Вторая проблема использования устаревшего кода — это устаревшая архитектуру и шаблоны, которые содержат известные недостатки и проблемы, по которым они и устарели. Использование устаревших шаблонов и архитектуры способствует, а иногда и заставляет разработчиков писать плохой код. Например, есть некоторые очень устаревшие теги JSP, которые смешивают вызов базы данных с бизнес-логикой и логикой представлений, что является известным способом создания плохого, не поддерживаемого кода спагетти.
Есть также скрытые издержки: никто в здравом уме не хочет работать над устаревшим спагетти кодом — это наносит моральный ущерб и в тоже время ущерб способностям нахождения следующей, более высокооплачиваемой работы. Отсюда следуют и дополнительные расходы на нахождение и подготовку новых сотрудников. Лучшие люди уйдут первыми, останутся менее опытные разработчиками.
Таким образом, что можно сделать, когда сталкиваешься с устаревшими библиотеками и фреймворками с открытым исходным кодом:
- Ничего не делать, продолжать использовать устаревшие библиотеки и надеяться, что всё будет хорошо.
- Скипнуть весь проект и начать его заново.
- Удалять устаревающий код.
Из выше перечисленного, я считаю правильным третий вариант. Первый вариант слишком рискованный, но грозит вторым вариантом: начинать с нуля, тратить время, и оставаться без продукта. Третий вариант можно рассмотреть, как путь изменения архитектуры приложения, обновление практики программирования команды и улучшение кода всего проекта.