Узнайте, почему использование простого "старого" JavaScript сделает вас лучшим инженером, сэкономит ваше время, деньги и привлечет больше пользователей и клиентов. Прежде чем комментировать, ознакомьтесь с правилами

Предыстория. В наши дни для создания практичного графического интерфейса пользователя (GUI) для приложений Web 2.0 необходимы три базовые технологии. Эти технологии являются строительными блоками всех без исключения платформ веб-приложений, используемых сегодня: HTML v5.0 (HTML5), CSS уровня 3 (CSS3) и ECMAScript 2020 Specification (JavaScript).

HTML5 предназначен для включения не только HTML v4.0, но также XHTML v1.0 и DOM, HTML уровня 2. CSS3 разделен на несколько отдельных документов, называемых «модулями». Каждый модуль добавляет новые возможности или расширяет функции, определенные в CSS 2, с сохранением обратной совместимости. Работа над уровнем CSS 3 началась примерно во время публикации исходной рекомендации CSS 2.

JavaScript - одна из основных технологий Интернета. Он обеспечивает динамическое взаимодействие и является неотъемлемой частью всех современных веб-приложений. Это обязательный компонент для поведения клиентского приложения; и все основные веб-браузеры имеют специальный встроенный движок JavaScript для его выполнения.

А теперь позвольте мне совершить поездку по переулку памяти: Если вы читали мою статью о том, что JA Cirez ненавидит фреймворки веб-приложений (находится здесь), вы вспомните определение фреймворков веб-приложений как абстракцию внутри какой код приложения, обеспечивающий общие функции, может быть выборочно изменен с помощью дополнительного кода, написанного пользователем, что обеспечивает функциональность, специфичную для конкретного приложения во время выполнения. Он представляет собой стандартизированный способ создания и развертывания приложений как универсальной, предсказуемой и многократно используемой программной среды; предоставление определенных (ориентированных на пользователя) функций как части гораздо более крупной программной платформы, которая сама по себе облегчает разработку других программных приложений, продуктов и решений. Я знаю, что это непросто, но стоит повторить.

Вы также можете вспомнить мое отвращение к использованию серверных фреймворков JavaScript, которые сводились к тому, что фреймворк, по сути, является слоем абстракции поверх нескольких уровней абстракции; что в конечном итоге приводит к тому, что сложное приложение представляет собой многослойный пирог раздутого кода и избыточной логики. Еще один момент, который я не смог добавить к приведенному выше аргументу, - это проблема стекирования фреймворков, то есть фреймворков, построенных поверх других фреймворков, и каскадных отказов, которые возникают, когда добавление, изменение и / или удаление критических фрагментов кода рендерит все другие фреймворки по цепочке непредсказуемы, уязвимы и непригодны для использования.

Лучшее понимание побочного элемента. Это не значит, что клиентским (или интерфейсным) фреймворкам JavaScript нет места в жизненном цикле разработки приложений (ADLC). Нисколько; если вы знакомы с концепцией быстрого прототипирования (в контексте разработки программного обеспечения и проектирования пользовательского интерфейса быстрое прототипирование - это процесс быстрого создания прототипов и моделирования будущего состояния программного приложения) использование Front-End Web Application Frameworks - очень ценный инструмент для общения и проверки новых дизайнов пользовательского интерфейса и логики приложений.

Я не игрок, я просто очень люблю: команда разработчиков может быстро протестировать и повторить несколько идей дизайна пользовательского интерфейса и рабочий процесс приложения; позволяя им использовать более интуитивно понятные и визуальные элементы дизайна во время разговоров, а не просто словесные описания. Это также гарантирует, что все участники имеют последовательное понимание и общую картину конечного продукта; снижение или даже избежание риска упустить важный аспект приложения и потребностей конечных пользователей. Как только команда или инженер перешли с этой стадии прототипирования; использование интерфейсных фреймворков JavaScript становится проблемой уменьшения отдачи. Фреймворки интерфейсных веб-приложений JavaScript - это побочный элемент для посвященных Супруг, к которому ты всегда приходишь домой.

Разгон по автостраде / Должен быть впереди. Одно из очевидных преимуществ использования ванильного JavaScript связано с производительностью и масштабируемостью. Потенциальный прирост производительности, связанный с превосходной скоростью выполнения простого JavaScript, имеет ощутимое измеримое влияние - конечно, скорость и дополнительная производительность могут не быть большой проблемой для относительно небольшого приложения с небольшой занимаемой площадью. Приложение, развернутое в корпоративной сети (например) и используемое относительно небольшим количеством пользователей. С другой стороны, масштабное развертывание приложения? Что ж, это в целом «другой уровень», дружище.

Я знаю, чего хочу, и хочу этого сейчас: публичное приложение или веб-сервис, развернутое в большом масштабе, не имеет такой роскоши. По мере увеличения пользовательской базы эти миллисекундные задержки будут быстро накапливаться и станут величайшим препятствием на пути конечных пользователей к принятию вашего приложения или службы.

Помните, что мы поколение мгновенного удовлетворения; мы не ждем ни человека, ни приложения. Помимо скорости и масштабируемости, вы получаете дополнительное преимущество в виде полной зависимости от собственной кодовой базы.

Забудьте о своем карточном домике / А я сделаю свой: если часто используемый, но непонятный фрагмент кода, который составляет важную часть популярного фреймворка или модуля, будет изменен, обновлен или удален, вам не придется беспокоиться об этом, так как ваш код полностью самодостаточен.

О, ты думаешь, этого не могло быть? Вы помните все дело Азера Кочулу в марте 2016 года? Один блок кода (17 строк) по сути сломал Интернет. К счастью, сообщество разработчиков ПО с открытым исходным кодом, как известно, сверхэффективно в устранении критических сбоев в веб-инфраструктуре, и в этом конкретном случае - в течение 10 минут после обнаружения - кто-то опубликовал функционально идентичную версию отсутствующего кода, которая исправила несколько из проблемы, но не все.

(Демон скорости) Я просто ... остановлю мальчика и получу ваш билет: В дополнение к прививке вашей кодовой базы прихотям других разработчиков - какими бы благими намерениями они ни были - вы в конечном итоге создаете полностью настраиваемый код; код, который чаще всего проще для понимания; легче отлаживать и поддерживать; и, следовательно, дешевле или почти бесплатно в собственность.

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

О, о, старое ушло, новое пришло / И я новое творение: Вы также должны учитывать, что многие веб-фреймворки Front-End JavaScript были созданы и выпущены в то время, когда JavaScript не поддерживал (в своей собственной реализации) многие из предоставляемых ими функций; Таким образом, эти структуры были уровнями абстракции, созданными для преодоления разрыва. В настоящее время ванильный JavaScript предоставляет большую часть функций веб-фреймворков в своей собственной реализации.

Это основная причина того, что одна из самых популярных платформ интерфейсных веб-приложений (Bootstrap) перешла с jQuery на то, что они называют Native JavaScript for Bootstrap. Вы должны осознать тот факт, что большинство фреймворков интерфейсных веб-приложений JavaScript эфемерны по своей природе: некоторые из них, возможно, были горячими новинками три, пять много лет назад; но к настоящему времени все они исчезли.

Я проснулся сегодня утром с рассветом: Адам Шварц написал замечательную статью о том, сколько удобных ярлыков, предлагаемых jQuery, уже довольно давно доступны в их исходных формах (вы можете найти его статью "здесь"). Я лично считаю, что для того, чтобы стать компетентным инженером в конкретном языке программирования - или грамотным инженером, период - нужно хорошо понимать суть самого языка. Так же, как вам нужно выучить отдельные ноты и элементарные ключи, прежде чем вы сможете понять такие концепции, как мажорные / минорные гаммы, аккорды и относительные мажоры.

Кроме того, все языковые фреймворки и библиотеки неизбежно основаны на ядре языка. Как только вы хорошо понимаете язык; вы начинаете понимать, что фреймворк - это просто новый синтаксис. Стандартный JavaScript дает вам свободу выбирать все, что вам нужно, и ничего лишнего - нет необходимости включать в свой проект библиотеку от 50 до 120 КБ, если то, что вам нужно, может быть достигнуто с помощью 20 строк простого ванильного кода.

Если это чистота, если она чистая / Если эта истинная праведность не является непристойной / Тогда я чист: Точно так же, как поддержание чистоты в вашей комнате дома облегчило поддержание чистоты в вашей квартире при переезде. вне дома родителей; использование простого ванильного JavaScript сделает ваш код скудным и скудным. Является ли это небольшим однопользовательским приложением; или крупное и сложное корпоративное приложение, экономичное, среднее и чистое - победа.

Хлопайте (не скупитесь, вы получите 50 аплодисментов за каждую статью) и поделитесь, если вам понравилась эта статья!
Подписывайтесь на меня (и я буду следовать за вами) в
Medium | Twitter | Facebook | Instagram | YouTube