Информация об изменениях

Сообщение Re: Из кубиков от 26.09.2020 11:46

Изменено 26.09.2020 11:52 vsb

Re: Из кубиков
Минусы такого подхода:

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

2. Каждая библиотека это обязательство. Тебе нужно следить за её версиями. Тебе, возможно, нужно будет дорабатывать её, если автор решит прекратить выпускать обновления. Если тебе нужно внести изменения в код библиотеки, то тебе нужно будет либо работать с автором, чтобы перенести эти изменения в апстрим, либо поддерживать свою ветку со своим набором патчей, которые адаптировать после выхода новых версий.

3. Некоторые библиотеки написаны плохими программистами и несут с собой баги и ухудшение производительности.

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

Во многом это всё относится не только к непосредственно используемым библиотекам, но и к их зависимостям. Подтянул ты одну библиотеку, та подтянула вторую, а вторая подтянула древний asm, который не работает на какой-нибудь Java 15 и так просто не обновляется. И получается, что ты залочен на Java 14, пока вторую библиотеку не пофиксит автор. А автор ушёл в кругосветку и шатал все эти ваши джавы, у него просветление.

А так, конечно, в целом библиотеки нужны и полезны. Особенно хорошие библиотеки. Лично я люблю велосипедить, но рекомендовать, наверное, не буду. Но плюсы и минусы есть в любом подходе.
Re: Из кубиков
Минусы такого подхода:

1. В проекте будет огромное количество лишнего незадействованного кода. Это увеличивает число потенциальных уязвимостей. Простой пример: ты заюзал какую-нибудь XML-библиотеку, чтобы распарсить XML из трёх тегов. А XML-библиотека поддерживает миллиард возможностей, включая, например, скачивание DTD из внешних источников. И тебе подсовывают XML с DTD, который абузит это скачивание и закачивает тебе вирус на сервер. А ты про это вообще можешь не подозревать, ты библиотеку подключил, три строчки для парсинга написал и ушёл дальше.

2. Каждая библиотека это обязательство. Тебе нужно следить за её версиями. Тебе, возможно, нужно будет дорабатывать её, если автор решит прекратить выпускать обновления. Если тебе нужно внести изменения в код библиотеки, то тебе нужно будет либо работать с автором, чтобы перенести эти изменения в апстрим, либо поддерживать свою ветку со своим набором патчей, которые адаптировать после выхода новых версий.

3. Некоторые библиотеки написаны плохими программистами и несут с собой баги и ухудшение производительности.

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

Во многом это всё относится не только к непосредственно используемым библиотекам, но и к их зависимостям. Подтянул ты одну библиотеку, та подтянула вторую, а вторая подтянула древний asm, который не работает на какой-нибудь Java 15 и так просто не обновляется. И получается, что ты залочен на Java 14, пока вторую библиотеку не пофиксит автор. А автор ушёл в кругосветку и шатал все эти ваши джавы, у него просветление.

А так, конечно, в целом библиотеки нужны и полезны. Особенно хорошие библиотеки. Лично я люблю велосипедить, но рекомендовать, наверное, не буду. Но плюсы и минусы есть в любом подходе.

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