#angular #architecture #software-design #angular-gridster2
#angular #архитектура #программное обеспечение-дизайн #angular-gridster2
Вопрос:
Я только начал работать над проектом, и настраиваемые панели мониторинга являются его основной функциональностью. Панели мониторинга состоят из полей с возможностью перетаскивания и изменения размера.
Теперь, когда мы решили, что IE11 также будет поддерживаться, оказалось, что производительность функции перетаскивания в IE11 чрезвычайно низкая, и это внутренняя проблема библиотеки, которую мы используем.
https://github.com/tiberiuzuld/angular-gridster2
Об этой библиотеке:
- всего 20 вопросов об этом в stack overflow.
- 494 звезды github
- Один активный участник
- 7 тыс. загрузок npmjs в неделю, что не так много
- Я открыл проблему на странице Github этой библиотеки 16 дней назад, и к ней не было никаких действий или комментариев.
- Мы используем Angular Framework, и каждый раз, когда обновляется версия Angular, эту версию библиотеки необходимо обновлять, что станет проблемой, когда эта библиотека больше не будет поддерживаться
Вопрос в том, что правильно делать:
- Реализуем наше собственное решение для этого с нуля
- Продолжайте использовать такого рода библиотеки для критически важной функции приложения и будьте готовы к форку кода при необходимости
Комментарии:
1. Нет правильного решения, это зависит только от вашего выбора. Лично я, когда оказываюсь в такой ситуации, стараюсь реализовать что-то свое, потому что это дает мне больше контроля над этим. Обычно я устанавливаю только uber-библиотеки, такие как flex layout или material, и в противном случае реализую свои собственные (я имею в виду библиотеки Angular)
Ответ №1:
Ну, это называется открытым исходным кодом не просто так, как насчет того, чтобы помочь улучшить библиотеку? Если создатели не согласятся с вашими изменениями, вы все равно можете разветвить репозиторий и настроить его по своему усмотрению.
Создать что-то подобное с нуля, безусловно, выполнимо, для меня это больше похоже на изобретение колеса, но если у вас есть ресурсы, сделайте это.
Комментарии:
1. PS: перечитывая ваш вопрос, у меня такое чувство, что вы хотите создать функцию самостоятельно, и вы пытаетесь убедить кого-то сделать это, спрашивая здесь, так ли это? (Просто любопытно, не осуждаю)
2. Я не обязательно хочу убеждать кого-то, что необходимо создавать это с нуля. Это может показаться предвзятым, потому что я упомянул все недостатки библиотеки, но это просто для того, чтобы можно было полностью понять вопрос. Также потому, что все уже знают недостатки создания этой вещи с нуля. Эта библиотека продемонстрировала неожиданное нежелательное поведение в нескольких сценариях, вот почему я искренне хочу знать, каково наилучшее решение этой проблемы.
3. Я согласен с @gfels, что здесь нет правильного решения. Вы должны принять решение, основанное на имеющихся у вас ресурсах и опыте. Честно говоря, я бы не стал ее переписывать, есть и другие (возможно, лучшие) библиотеки, которые предоставляют ту же функциональность. Возможно, вы захотите попробовать это раньше.