Существуют ли библиотеки JavaScript, которые не требуют обновления при выходе новых версий браузера?
В своей работе я использую dojo, и мой опыт показывает, что при значительном обновлении браузера некоторые части старой версии dojo выходят из строя. Для того чтобы веб-приложение работало в последних версиях браузера, вам действительно необходимо постоянно обновляться до последней версии Dojo.
Я хотел бы знать, так ли это для всех библиотек javascript, потому что сейчас я работаю над проектом мастера, который представляет собой веб-приложение, которое мой проф уже использовал. Я хотел бы использовать некоторые приятные функциональные возможности библиотеки, но я не ожидаю, что буду продолжать поддерживать этот проект навсегда. Я бы не хотел, чтобы приложение перестало работать после выхода обновлений браузера.
В любом случае, если у кого-то есть информация или совет по этой теме, я был бы очень признателен.
4 ответа
Это намного шире, чем JavaScript. Когда выходят новые версии ОС, нативные приложения нуждаются в доработке. Когда выходят новые версии программного обеспечения, плагины требуют некоторой настройки. Все, что зависит от чего-то вне себя, вероятно, нуждается в некотором обслуживании, когда это "что-то" изменится. Это, как правило, хуже для JavaScript, хотя....
Это не значит, что это абсолютно безнадежно. Вы можете минимизировать проблемы, следуя некоторым рекомендациям:
Прочитайте документацию о вещах, на которые вы полагаетесь, и придерживайтесь документированного поведения. Вещи, которые вы просто бьете, пока они "кажутся работающими", с большей вероятностью сломаются позже, потому что они более склонны полагаться на недокументированную функциональность. Чем больше вы правильно кодируете вещи (например, как того ожидают от вас провайдеры фреймворка), тем больше вероятность того, что оно останется стабильным.
Сохраняйте количество вещей, на которые вы полагаетесь, как можно меньше. Если вы полагаетесь на шесть вещей, одна из них сломается. Если вы полагаетесь на две вещи, это может занять намного больше времени, прежде чем возникнет проблема.
Ищите фреймворки с долгим послужным списком и посмотрите, как они вели себя во время обновлений. Если у команды разработчиков нет четкого заявления о том, что они изменили свой подход, вы должны ожидать, что будущее будет выглядеть как прошлое.
Держите вещи, на которые вы полагаетесь, просто. Чем больше и более всеобъемлющая структура, тем больше вероятность того, что в некоторых ее частях возникнут проблемы, когда произойдут базовые изменения. Следствием этого является то, что делать то, что вы делаете, просто. Чем сложнее ваша программа, тем больше вероятность возникновения проблем.
Если требуется сложность, то обычно лучше быть в фреймворке, чем в вашем коде. Более вероятно, что широко используемая среда будет тщательно написана, чтобы попытаться избежать будущих разрывов, чем что-то случайное, что вы пишете с аналогичной сложностью.
В итоге сложные требования приводят к сложным функциям, ведут к сложным зависимостям, ведут к хрупким обновлениям. Сохраняйте ваши требования простыми, и ваши обновления будут более плавными. Существует компромисс между броским / модным и долгосрочным устойчивым. Если долгосрочное обслуживание обходится вам дорого, сохраняйте простоту.
Конечно, это относится ко всем библиотекам JavaScript.
Браузеры выпускают новые функции или ломают функции, которые работали со старыми версиями. Единственное, что может сделать библиотека, это выпустить обновленную версию, которая имеет дело с поломками.
Если код работает и должен продолжать работать, это все, что вы можете сделать.
Единственный способ избежать этого - придерживаться стандартов и использовать только общие функциональные возможности, которые не являются взломом браузера в выбранной библиотеке (что сильно ограничивает вас и не гарантирует помощь).
Библиотеки Javascript не зависят от браузера, было бы невозможно управлять библиотеками, если бы это было так.
Лучше всего идти с JQuery... вам может потребоваться обновить его, не для совместимости, но, по крайней мере, для новых улучшенных функций. Но он будет обновляться достаточно часто, чтобы поддерживать совместимость. Помните, что обновление библиотеки не обязательно означает обновление кода благодаря обратной совместимости.