Я выбираю тебя! Кто лучший из JavaScript-фреймворков


Оглавление (нажмите, чтобы открыть):

Как выбрать фреймворк для JavaScript

Мир JavaScript огромен, богат на всевозможные библиотеки, модули, среды разработки и фреймворки. Это огромный плюс языка, но и небольшая дилемма для новичка: что выбрать для работы. Один фреймворк принесёт моральное удовлетворение и прирост к производительности, другой изведёт все нервы. В этой статье мы пройдёмся по 5 параметрам, чтобы вы могли чётко понять, что идеально подходит именно вам. И далеко не факт, что выбор падёт на один из популярных фреймворков.

Доступность учебных ресурсов

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

Итак, проще всего в данном случае найти хорошие курсы или ментора. Если вы точно знаете, что придётся на стадии обучения работать с тем или иным фреймворком – не стоит мудрить. Тем более хорошо продуманный учебный курс, как правило, оградит вас от сторонних забот, вроде самостоятельного изучения фреймворков или IDE. Всё только на практике.

Конечно, одних курсов для знакомства с инструментов всё равно будет мало, потребуется литература, и не только официальная. Хотя есть исключения. К примеру, у EmberJS превосходная документация, с полезными примерами и внятным объяснением. В противовес этому Angular и React, где официальная часть сдержанная, зато имеется целая россыпь сторонних ресурсов, в том числе видеоуроков, где можно найти ответы на все вопросы.

Vue – что-то среднее: хорошая документация, и есть несколько классных сайтов и каналов на YouTube.

А вот для работы с Aurelia, молодым и мощным фреймворком, в большей степени потребуется удача, там всё сравнительно плохо и с документацией, и с ресурсами.

Лично для меня важнее возможность черпать информацию из разных источников. Разный подход позволяет взглянуть на картину полнее. Плюс, это гарантия того, что вы докопаетесь до истины, а не решите «забить» на проблему.

Популярность

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

  • Удобство для работодателя. Ограничения на используемые инструменты берутся не с потолка – здесь и финансовая сторона вопроса, и человеческая. Если каждый разработчик в команде будет работать со своим фреймворком – это отрицательно скажется на производительности и взаимозаменяемости. А зависимость от конкретного сотрудника – последнее, о чём мечтает любая компания. Поэтому выбор популярного фрейморка – это плюс как для соискателя, так и для работодателя.
  • Высокая масштабируемость. Работать над проектом в одиночку можно с любым фреймворком, но, если над ним работает целая команда – как минимум руководитель или тимлид должен в совершенстве знать все используемые инструменты. Использование редких фреймворков приведёт лишь к проблемам.
  • Количество профильных ресурсов и литературы. Как правило, этот параметр напрямую связан с популярность: чем больше поклонников – тем выше активность на форумах, тем больше появляется профильных сайтов, публикуется книг и т.д. К примеру, так выглядит статистика 4 ведущих фреймворков на GitHub и StackOverflow:

Таким образом, лидерами по популярности в JavaScript являются Angular и React. Они достаточно развиты, также их поддерживают корпорации вроде Google и Facebook. В спину лидерам дышат Ember и Vue, но они пока не стали мейнстримом в больших компаниях. Остальные больше подойдёт как инструмент для души или для частных разработок.

Особенности

От общих рассуждений перейдём к обзору основных функций. Откройте документацию, оцените структуру фреймворка, его возможности. Найдите следующие разделы:

  • Шаблонирование.
  • Маршрутизация.
  • Валидация и обработка форм.
  • Настройка связи с сервером.

Далеко не все фреймворки «из коробки» покрывают полный цикл разработки. Как правило, это незначительная проблема, которая решается с помощью сторонних библиотек, но это означает, что структура будет варьироваться от проекта к проекту.

Начнем с React и Vue. Они как раз покрывают только уровень представления приложения. Это означает, что все остальные функции (валидация форм, взаимодействие с сервером) – ваша забота. Не всегда это плохо, к примеру, у Vue многие надстройки куда приятнее, чем встроенные возможности Angular. Однако это отнимет у вас чуть больше времени, да и в плане обновления библиотек вы всегда будете находиться в подвешенном состоянии.

В противовес им, Ember охватывает почти все области, за исключением расширенной обработки формы. Но здесь есть более важный недостаток – отличная от популярных фреймворков структура. К примеру, здесь собственная объектная модель. Стандарт ES2015 здесь почти не внедрен, но эта проблема решается при помощи транспайлера Babel. Также здесь есть свой уровень данных – Ember Data, что-то вроде ORM для фронт-энда.

Angular – абсолютный лидер по встроенным возможностям. Фреймворк изначально предназначался для развертывания больших приложений, поэтому количество модулей и инструментов здесь покроет любые потребности.

Еще одна примечательная вещь – использование библиотеки Rx, предназначенной для обработки асинхронных событий. Обычно для этого приходится писать сложный малоэффективный код, так что решение по-настоящему полезное. К слову, библиотека Reactive Extensions также доступна для React, но в Angular – это встроенная возможность со всеми вытекающими.

Вкратце, возможности фреймворков выглядят так:

Удобство использования

Если вы ещё не определились с выбором, тогда вот исключительно вкусовой параметр. Никакие учебники и форумы не заменят личного опыта, поэтому прежде чем сделать судьбоносный выбор, есть смысл познакомиться с каждым фреймворком. Лучший способ – задействовать в каком-нибудь мини-проекте. Заодно познакомитесь с функциональностью.

Во время работы не спешите и немного поразмышляйте о продуктивности. Задайте себе несколько вопросов:

  • Насколько легко оказалось достичь желаемого результата?
  • Нужно ли искать внешние библиотеки? Как просто это сделать?
  • Насколько удобны расположены основные кнопки и функции?
  • Как часто вы обращались к документации и форумам?

Ember считается очень продуктивным фреймворком для базовых проектов. Он поставляется с CLI, что ускоряет процесс разработки. Данный инструмент в автоматическом режиме помогает создавать маршруты, контроллеры, компоненты и модели со своими собственными наборами тестов. Выполнение всего этого вручную — утомительная задача. При создании нового проекта Ember создаст базовую структуру папок, установит необходимые пакеты, инструменты сборки, среду тестирования и т. д. Если вы никогда ранее не сталкивались с CLI – будете приятно удивлены. Но, как уже было сказано выше, Ember «особенный» фреймворк, поэтому некоторые потенциально простые решения на поверку таковыми не являются.

Google также добавил CLI в четвертую версию Angular. Вы можете запустить его прямо из командной строки, после чего наслаждаться упрощённой разработкой. Также в помощь TypeScript – синтаксический сахар для JavaScript, упрощающий не только написание, но и проверку кода.

У React и Vue тоже есть свои CLI: называются create-react-app и vue-cli соответственно. Но их возможности сильно ограничены в сравнении с Ember или Angular. Это неудивительно, учитывая ограниченность фреймворков, но взамен вы получаете определённую гибкость.

Заключение

Закончим очевидным: ни один гид по выбору фреймворка не даст однозначного ответа для всех программистов. Но, надеемся, прочитанное упорядочит в вашей голове их по функциональности, соответствию ожиданиям и потребностям. А дальше, как уже было сказано, попробуйте каждый хотя бы из топ-4. Так вы точно не ошибётесь.

Мир JavaScript огромен, богат на всевозможные библиотеки, модули, среды разработки и фреймворки. Это огромный плюс языка, но и небольшая дилемма для новичка: что выбрать для работы. Один фреймворк принесёт моральное удовлетворение и прирост к производительности, другой изведёт все нервы. В этой статье мы пройдёмся по 5 параметрам, чтобы вы могли чётко понять, что идеально подходит именно вам. И далеко не факт, что выбор падёт на один из популярных фреймворков.

Доступность учебных ресурсов

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

Итак, проще всего в данном случае найти хорошие курсы или ментора. Если вы точно знаете, что придётся на стадии обучения работать с тем или иным фреймворком – не стоит мудрить. Тем более хорошо продуманный учебный курс, как правило, оградит вас от сторонних забот, вроде самостоятельного изучения фреймворков или IDE. Всё только на практике.

Конечно, одних курсов для знакомства с инструментов всё равно будет мало, потребуется литература, и не только официальная. Хотя есть исключения. К примеру, у EmberJS превосходная документация, с полезными примерами и внятным объяснением. В противовес этому Angular и React, где официальная часть сдержанная, зато имеется целая россыпь сторонних ресурсов, в том числе видеоуроков, где можно найти ответы на все вопросы.

Vue – что-то среднее: хорошая документация, и есть несколько классных сайтов и каналов на YouTube.

А вот для работы с Aurelia, молодым и мощным фреймворком, в большей степени потребуется удача, там всё сравнительно плохо и с документацией, и с ресурсами.

Лично для меня важнее возможность черпать информацию из разных источников. Разный подход позволяет взглянуть на картину полнее. Плюс, это гарантия того, что вы докопаетесь до истины, а не решите «забить» на проблему.

Популярность

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

  • Удобство для работодателя. Ограничения на используемые инструменты берутся не с потолка – здесь и финансовая сторона вопроса, и человеческая. Если каждый разработчик в команде будет работать со своим фреймворком – это отрицательно скажется на производительности и взаимозаменяемости. А зависимость от конкретного сотрудника – последнее, о чём мечтает любая компания. Поэтому выбор популярного фрейморка – это плюс как для соискателя, так и для работодателя.
  • Высокая масштабируемость. Работать над проектом в одиночку можно с любым фреймворком, но, если над ним работает целая команда – как минимум руководитель или тимлид должен в совершенстве знать все используемые инструменты. Использование редких фреймворков приведёт лишь к проблемам.
  • Количество профильных ресурсов и литературы. Как правило, этот параметр напрямую связан с популярность: чем больше поклонников – тем выше активность на форумах, тем больше появляется профильных сайтов, публикуется книг и т.д. К примеру, так выглядит статистика 4 ведущих фреймворков на GitHub и StackOverflow:

Таким образом, лидерами по популярности в JavaScript являются Angular и React. Они достаточно развиты, также их поддерживают корпорации вроде Google и Facebook. В спину лидерам дышат Ember и Vue, но они пока не стали мейнстримом в больших компаниях. Остальные больше подойдёт как инструмент для души или для частных разработок.

Особенности

От общих рассуждений перейдём к обзору основных функций. Откройте документацию, оцените структуру фреймворка, его возможности. Найдите следующие разделы:

  • Шаблонирование.
  • Маршрутизация.
  • Валидация и обработка форм.
  • Настройка связи с сервером.

Далеко не все фреймворки «из коробки» покрывают полный цикл разработки. Как правило, это незначительная проблема, которая решается с помощью сторонних библиотек, но это означает, что структура будет варьироваться от проекта к проекту.

Начнем с React и Vue. Они как раз покрывают только уровень представления приложения. Это означает, что все остальные функции (валидация форм, взаимодействие с сервером) – ваша забота. Не всегда это плохо, к примеру, у Vue многие надстройки куда приятнее, чем встроенные возможности Angular. Однако это отнимет у вас чуть больше времени, да и в плане обновления библиотек вы всегда будете находиться в подвешенном состоянии.

В противовес им, Ember охватывает почти все области, за исключением расширенной обработки формы. Но здесь есть более важный недостаток – отличная от популярных фреймворков структура. К примеру, здесь собственная объектная модель. Стандарт ES2015 здесь почти не внедрен, но эта проблема решается при помощи транспайлера Babel. Также здесь есть свой уровень данных – Ember Data, что-то вроде ORM для фронт-энда.

Angular – абсолютный лидер по встроенным возможностям. Фреймворк изначально предназначался для развертывания больших приложений, поэтому количество модулей и инструментов здесь покроет любые потребности.

Еще одна примечательная вещь – использование библиотеки Rx, предназначенной для обработки асинхронных событий. Обычно для этого приходится писать сложный малоэффективный код, так что решение по-настоящему полезное. К слову, библиотека Reactive Extensions также доступна для React, но в Angular – это встроенная возможность со всеми вытекающими.

Вкратце, возможности фреймворков выглядят так:

Удобство использования

Если вы ещё не определились с выбором, тогда вот исключительно вкусовой параметр. Никакие учебники и форумы не заменят личного опыта, поэтому прежде чем сделать судьбоносный выбор, есть смысл познакомиться с каждым фреймворком. Лучший способ – задействовать в каком-нибудь мини-проекте. Заодно познакомитесь с функциональностью.

Во время работы не спешите и немного поразмышляйте о продуктивности. Задайте себе несколько вопросов:

  • Насколько легко оказалось достичь желаемого результата?
  • Нужно ли искать внешние библиотеки? Как просто это сделать?
  • Насколько удобны расположены основные кнопки и функции?
  • Как часто вы обращались к документации и форумам?

Ember считается очень продуктивным фреймворком для базовых проектов. Он поставляется с CLI, что ускоряет процесс разработки. Данный инструмент в автоматическом режиме помогает создавать маршруты, контроллеры, компоненты и модели со своими собственными наборами тестов. Выполнение всего этого вручную — утомительная задача. При создании нового проекта Ember создаст базовую структуру папок, установит необходимые пакеты, инструменты сборки, среду тестирования и т. д. Если вы никогда ранее не сталкивались с CLI – будете приятно удивлены. Но, как уже было сказано выше, Ember «особенный» фреймворк, поэтому некоторые потенциально простые решения на поверку таковыми не являются.

Мастер Йода рекомендует:  Освой карринг и шаблоны TypeScript быстро и безболезненно

Google также добавил CLI в четвертую версию Angular. Вы можете запустить его прямо из командной строки, после чего наслаждаться упрощённой разработкой. Также в помощь TypeScript – синтаксический сахар для JavaScript, упрощающий не только написание, но и проверку кода.

У React и Vue тоже есть свои CLI: называются create-react-app и vue-cli соответственно. Но их возможности сильно ограничены в сравнении с Ember или Angular. Это неудивительно, учитывая ограниченность фреймворков, но взамен вы получаете определённую гибкость.

Заключение

Закончим очевидным: ни один гид по выбору фреймворка не даст однозначного ответа для всех программистов. Но, надеемся, прочитанное упорядочит в вашей голове их по функциональности, соответствию ожиданиям и потребностям. А дальше, как уже было сказано, попробуйте каждый хотя бы из топ-4. Так вы точно не ошибётесь.

Форум

Справочник

Поиск по форуму
Расширенный поиск
К странице.


Страница 7 из 12 « Первая 7 8 9 > Последняя »

Я не рекламировал сейчас никакой метод )) Я писал про экономическую точку зрения.

сравни три вида заданий.

создание/совершенствование фреймворка/быстрые фрагменты кода — нативный js.
Создание красивостей на сайте. Слайдеры и т.п — jquery/prototype
Создание сложных бизнес приложений c кучей диалогов и форм. — dogo/extjs

Частота встречаемости заданий приблизительно совпадёт с популярностью фреймворков. Я в этом почти уверен.
Немного завышенное количество нативщиков, это бывалые кодеры работающие по энерции на чём им удобно. Думаю их доля в общей массе будет постепенно падать,(впрочем незначительно), а специализация программистов возрастать

Писать бизнес приложение с кучей форм на голом js- слишком напряжное и длительное занятие, а красивости на Ext.Js слишком тяжёлые, фреймворк на ext.js не напишеш (покрайней мере в классическом понимании)

x-yuri — не мне тебе доказывать что всемогущих подходов несуществует. И спор что лучше топор или пила сам понимаешь что неуместен, и то и то позволяет разделять дерево на части, но совершенно по разному, и используется разный инструмент в разных ситуациях.

Илья Кантор думаю поставил вопрос исходя из потребности выяснить какие темы следует освещать на сайте в целях увелечения его посещаемости, а 7 страниц спора это побочный эффект ))

Сообщение от DjDiablo Я не рекламировал «свой метод»,

возможно мне показалось.

Сообщение от DjDiablo Писать бизнес приложение с кучей форм на голом js- слишком напряжное и длительное занятие.

не знаю, чем тебя формы так пугают. Но экономический вопрос — это только один из факторов. Есть такой анекдот про студентов и столовые:
Неделя после стипендии. Действует правило правой руки — закрываются цены, выбираются блюда.
Две недели после стипендии. Действует правило левой руки — закрываются названия, выбор по цене.
Неделя до стипендии. Действует правило буравчика — покрутился, повертелся и ушел.
Если исходить из имеющихся средств, может получиться еще один никому не нужный сайт. Если еще один никому не нужный сайт писать на нативном js, это будет overkill. Если требования у клиента не высоки скорее всего подойдет и jquery. Если высоки — тебе надоест копаться в jquery. Если сайт делается исходя из наличия плагинов для jquery — это хороший выбор, если нет — ты должен хорошо знать нативный js, но тогда зачем тебе jquery? Если ты сам себе программист, дизайнер, клиент и пользователь, то естественно приходится упрощать/абстрагироваться. Или искать инвестора.

Но самое главное, меня не устраивают существующие фреймворки, они не абстрагируют меня от наличия разных браузеров, их плагины не покрывают спектр задач, с которыми мне приходится сталкиваться, поэтому моя цель — нативный js. Кстати, нативный js — это не обязательно jquery-style написания кода (внутренний).

JavaScript « Какой JavaScript-фреймворк выбрать или как их выбирать?

Друзья, давайте наконец поставим точки в неопределенности при выборе JavaScript-фреймворков!

Очень хочется услышать Ваше экспертное мнение по поводу использования отдельных, ведь даже у лучших есть подводные камни.

Ведь использование определенных фреймворков требует ресурсов или же познаний. Одни лучше других в размере и скорости. На дворе почти 2010 год, а мы до сих пор выбираем.

1 ответов

Очень интересный вопрос, жизненный) Могу только поблагодарить RayZ за такой вопрос)

В той или или иной степени, мне пришлось работать с достаточно большим количеством фреймворков, каждый из которых я изучал на основе исходного кода, а затем уже на документации. В результате этого могу не согласится с моими коллегами о сути вопроса) Самолет и вертолет? Какая разница — наша цель летать, средства конечно различаются, но в целом среда одна — земля, воздух, аппарат на котором мы летим. Кроме того, совершенно естественно, что большинство фреймворков в целом имеют идентичный функционал, который сравнивать в принципе не имеет смысла — сравнивать можно уже только реализацию. Ко всему этому можно добавить еще и то, что конкуренция также оказала влияние на фреймворки — если появиться что-то новенькое в одном фреймворке (или для одного фреймворка), то через короткое время подобное реализуется уже и в других.
В связи с этим бессмысленно сравнивать вилку десертную и вилку для рыбы, в том и другом случае функциональность одна. Но! Каждый из фреймворков имеет свои уникальные особенности, которые отражаются уже на качестве его применения в зависимости от масштабности и объема задачи, сроков и технических требований.

Выбирать нужно, действительно, исходя из задачи. Например, если у меня простенький сайт визитка (пусть даже с кучей красивеньких элементов, прокаченным юзабилити на основе js) логичнее использовать либо совсем простые фреймворки, либо собственные сборки, в которых будет только то, что нужно, но может быть и случай когда гораздо логичнее писать на чистом js (уникальный функционал, или незначительный функционал). Собственные сборки, вообще отдельный разговор, один из самых удачных сборщиков у dojo, с его помощью можно принципе любой фреймворк пересобирать как будет удобно.
В случае если у меня сложный проект, то логичнее выбрать фреймворк, предоставляющий различные паттерны проектирования на основе различных программных методологий.

И так, теперь конкретика о наиболее интересном:
1. jQuery — очень простой, весьма не плохо написанный фреймворк (по сравнению с большинством), вся мощь которого скорее в огромном количестве плагинов и надстроек. Очень выгоден для малых и средних проектов, но при разработке крупных проектов неуместен, так как приводит к дефициту проектирования, хотя весьма производителен благодаря простому содержанию и коду. Однако, при совершенно классическом для js исходном коде в нем есть весьма узкие места, которые приходилось либо переделывать, либо переписывать.
2. Prototype — фреймворк, которые до определенного момента был эталоном, правда код у него несколько специфический с явным влиянием не js. С точки зрения проектирования фреймворк очень удобен для средних проектов, так как предоставляет элементарный способ эмулирования классического ООП в добавок к простому функционалу. Производительность у него несколько нестабильна, то быстро работает, то не очень. При достаточно большом опыте работы с этим prorotype не приходилось переписывать код, однако были некоторые функциональные добавления.
3. Dojo — весьма правильный фреймворк), в последнее время стал весьма привлекательным с точки зрения проектирования и содержания, исходный код становится также все лучше и лучше) Распределенная модульность фреймворка позволяет существенно оптимизировать разработку. С точки зрения производительности еще год назад у меня были серьезные нарекания, но в последнее время все становится все лучше и лучше. Кроме того в добавок к исходным кодам существует очень удобная система сборки.
4. ExtJS — весьма и весьма грамотно спроектированный фреймворк, которые предоставляет весьма интересные возможности проектирования. В свое время спас меня от серьезного дефицита проектирования в крупном проекте. Производительность у него средняя, но правильность проектирования, которую он позволяет организовать в полной мере компенсирует это.

В целом, как мне кажется, нельзя говорить о выборе постоянного фреймворка для всех проектов — это весьма затратный и не оптимизированный подход. Задача определяет интсрумент. Если у нас жареная рыба, то берем вилку для рыбы, а если у нас десерт, то десертную вилку)

Знаете, есть такая байка, мол, в юности один студент не смог разобраться в математике и тогда просто взял и придумал свою, другую математику (кажется, приписывают Лобачевскому, точно не помню).

Мое мнение: jQuery и Prototype — пионеры и долгожители js-фреймворкинга, дофигамного раз переписанные и переработанные, проверенные временем и огромным количеством сайтов. Все остальные, перечисленные в списке, родились по принципу, рассказанному выше. Это не значит, что они хуже, просто они другие.

Есть еще такая байка. В комнату, в центре которой горит костер, переходящий в пожар, впускают инженера, физика и математика.
— Инженер входит, видит огонь, засыпает песком и уходит.
— Физик входит, видит огонь, садится и начинает наблюдать.
— Математик входит, видит, что решение есть и уходит.

Не совсем в тему, да? Ну эт чтобы читать не скучно было.

Так вот, вопрос, заданный топикстартером, глубоко философский. Сродни вопросу, почему вы занимаетесь веб-программированием и не прикладным или системным. Каждый человек уникален, у каждого свои предпочтения, свои интересы, привычки.

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

Вы уверены, что та женщина (обращаюсь к мужчинам), которая рядом с вами, — та самая единственная и неповторимая? Хрен там. Вы бы нашли в миллионы раз более подходящую вам по всем параметрам и были бы с ней в миллиарды раз счастливее, но на это вам пришлось бы потратить не одну жизнь.

Надеюсь, я не донес свою мысль, но вы поняли.

Мое мнение не из первых рук, я смотрел на фреймворки скорее со стороны руководителя проекта.

Есть фреймворки для манипуляции с DOM, есть для создания визуального интерфейса. Для манипуляции с DOM мы выбрали jQuery. Достаточно легкий, быстрый, широко распространенный, возможность давать его закачивать с серверов Гугла. Хорошая документация и много сторонних примеров в сети. Много плагинов. Это и плюс и минус. Плагины нужно выбирать тщательно, ибо пишут их другие люди и контроль качества у них может быть не на высоте.

Для создания UI мы смотрели ExtJs и YUI (Yahoo UI).

ExtJs производит впечатление очень продуманного фреймворка и визуально тоже получается все красиво. Мог бы работать побыстрее, но это не очень критично. К сожалению мы не смогли им воспользоваться из-за проблемы с лицензией. Наш продукт (PHPRunner) генерит PHP/Js код и попадает под то, что у них описано как конкуренция с самим ExtJs. Для большинства проектов это не будет проблемой.

В итоге для визуальной части мы используем некоторые классы YUI. Весьма обширный фреймворк, за ним стоит мощная поддержка Yahoo. Несколько тяжеловат по размеру, но есть возможность выбирать нужные модули и большая вероятность того, что на машине у пользователя он уже есть. Заслуживает всяческого внимания.

Для новичка в любом случае будет полезно начинать с JQuery, он и прост и документации по этому фреймворку очень много. Он используется на абсолютно разных сайтах и успешно справляется с возлагаемыми на него задачами, думаю, что после изучения JQuery с другим фреймворком работать не понадобится.

Наличие широкого выбора качественных инструментов — необходимое условие создания качественных вещей, удобного окружения, разнообразия форм. Не существует «идеального комбайна»: у каждой попытки создать такой будет не менее одного минуса: например, скорость работы или тяжеловесность.

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

Это как вопрос, что купить: джип, смарт, или обычную легковушку? смотря для каких целей.

— Скажите, Вам бутерброд с колбасой, ветчиной, корейкой или грудинкой?
— А какой из них лучше?
Или
— Скажите, что лучше, самолет или вертолет?

Ваш вопрос примерно того же порядка. Каждый фреймфорк — это инструмент. Инструмент надо подбирать под задачу. Для забивания гвоздей использовать молоток, для закручивания шурупов — отвертку. Сделать описание в стиле «для задачи А подходит фреймворк Ф1 и Ф2» не представляется возможным — большей частью фреймворки объемные и представляют богатый функционал. Получится слишком общо. Единственное, что мне представляется возможным, так это описание того, что НЕ стоит делать на том или ином фреймворке. При этом, всегда найдутся люди, которые именно это «не» делали и будут доказывать, что именно так хорошо и правильно. 🙂

Но, все-таки, хочу внести немного конструктива. Так как вопрос очень общий, то позволю себе дать тоже несколько общих рекомендаций, про которые, по опыту, многие забывают:
1. Не стоит решать локальные задачи глобальными фреймворками. На фреймворке должно проектироваться все приложение изначально и использовать более 60% его функционала. Тянуть фреймворк ради использования одной-двух функций неоправданная роскошь.
2. Чем меньше распространен фреймворк, тем дороже стоимость разработки приложения с его использованием. Программист (верстальщик) обладающий уникальными знаниями мало того, что будет хотеть больше, чем «обычный», так еще при смене (дополнительном наборе) персонала компания будет терять время (сиречь, деньги) на подбор и обучение.
3. Наличие поддержки у фреймворка, постоянной команды, которая его разрабатывает — необходимое условие для крупного проекта. Идеальная схема, когда фреймворк бесплатен, а поддержка работает за деньги. В поддержке важны не только решение текущих проблем и багов, но и возможность узнать планы. В идеале — если можно на эти планы влиять. Например, нужна функция, которая не поддерживается (не полностью поддерживается) во фреймворке. Идеальный вариант — возможность узнать у поддержки, будет ли такая функция разрабатываться в ближайшее время, а если не будет, то можно ли добавить в план. Исходя из этого принимаем решение — ждать или писать самим. Это важно, ибо переход от самописной функции к функции фреймворка — это время, деньги и потенциальные ошибки. А значит, следует максимально избегать этого.

# Какой Javascript фреймворк выбрать?

Один из вопросов, который мне очень часто задают, это какой javascript фреймворк стоит выбрать для изучения.

Мастер Йода рекомендует:  Управление рекламными кампаниями в Google AdWords стало еще более эффективным

Итак для начала нужно определится с задачей. Зачем вам вообще фреймворк? Я могу выделить 2 задачи:

  1. найти легче работу выучив какой-то популярный фреймворк
  2. выбрать подходящий фреймворк для проекта, который вы хотите написать

Какие фреймворки я бы выделил как подходящие? Backbone, Angular 1, Angular 2, React+Redux, Vue.

Давайте пройдемся по списку.

Backbone — достаточно старый фреймворк и для новых проектов его сейчас выбирают не часто. Так что можно сказать, что, в основом, вы будете поддерживать легаси код. Но он достаточно легкий для ознакомления и в качестве view слоя к нему часто добавляют Marionette.

Angular 1 — уже тоже не самый новый фреймворк. На нем написано огромное количество проектов и даже новые проекты часто пишут на нем. Также плюсом служит то, что в нем достаточно низкий порог входа. Я бы сказал, что это не стильно, модно, молодежно, но хороший стабильный выбор.

Angular 2 мне даже сложно сравнить с Angular 1. Разница в них огромная и это больше похоже на абсолютно новый фреймворк. Я бы сразу хотел предупредить новичков, что порог входа в angular 2 неоправдано высокий по сравнению с angular 1. И это не добавляет ему популярности. Также немного смущает при выборе количество вещей, которые разработчики любят в корне менять при выходе новых версий. Да и с версиями не все так понятно. Мне кажется, что когда команда Angular анонсировала, что следующей версией будет Angular 4, но это на самом деле, это все еще Angular 2, это оттолкнуло еще больше людей от этого фреймворка. Тем не менее все еще много компаний выбирает Angular 2 для разработки, особенно на волне прошлой популярности к Angular 1.

Следующий фреймворк — это React+Redux. Сейчас это очень популярная связка для многих проектов и найти работу на этом стеке не очень сложно. Порог входа в React очень низкий, что и делает его более популярным. Redux же помогает достаточно легко хранить состояние приложения. Также мое имхо, что для сервер сайд рендеринга у React самая простая и развитая екосистема. Также, если вы хотите писать мобильное приложение, вы можете использовать React-native. Из javascript фреймворков для мобильных приложений — этот явно по производительности и простоте самый популярный. Но естественно, как и у любого фреймворка, у React есть минусы. Для меня минус всего лишь один, но он огромный. Если Angular 1 и Angular 2 монолитные фреймворки, который дают 90% того, что нужно из коробки, то React — это только view слой. Соотвественно, чтобы cделать приложение на React, вам нужно играть в лего. Вы собираете приложение из кучи библиотек, которые нужно потом обновлять и это не всегда просто. Тем не менее, я сейчас выбираю именно этот стек.

Ну и на закуску Vue. Это достаточно новый фреймворк, который вобрал в себя много хорошего из Angular 1 и React. Он не такой раскрученый как предыдущие, но, обладая очень низким порогом входа, позволяет перейти на него достаточно легко. У него отличная документация и качественные сообщения об ошибках. Я бы пока не рассматривал его, как фреймворк, на котором просто найти работу, так как вакансий пока очень мало. Тем не менее я думаю, что именно в этом году его популярность вырастет. У него есть 2 минуса, которые я хотел бы отметить. Так как фреймворк новый, то екосистема вокруг него достаточно молодая и библиотеки, которые например для React найти легко, для Vue, если и написаны, то очены сырые. Также под vue пишется weex, как аналог React-native для мобильной разработки, но проект еще очень сырой и для продакшена явно не готов. Второй минус — этот фреймворк пишется на 90% одним человеком и для китайского рынка. Проект поддерживается и используется в Alibaba Group, который является большим игроком китайского рынка. И хоть это неплохо для старта, я бы хотел, чтобы больше компаний его поддерживало и разрабатывало.

А какой фреймворк выбираете вы? И почему? Пишите в комментариях прямо под этим видео.

Подборка из 15 лучших JavaScript-фреймворков для фронтенд-разработки

В этой подборке рассмотрены 15 удобных фреймворков для фронтенда. Кроме самых популярных платформ в списке есть несколько менее известных — надеемся, каждый сможет найти подходящее решение для своего проекта.

Angular

Этот фреймворк от Google, ставший очень популярным в последние годы, идеален для разработчиков, которые с большим вниманием относятся к последним новинкам отрасли. Angular представляет из себя набор современных функций для разработки и проектирования, обеспечивающих высокую скорость разработки. Компания Google даже создала специальный компонент Angular Material, позволяющий легко реализовать настоящий Material Design с помощью Angular.

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

React

Жемчужина веб-программирования: даже некоторые рьяные последователи Angular сделали свой выбор в пользу React. React смог то, с чем не справился Angular — он позволяет разрабатывать фронтенд, не погружаясь в дебри и сложности фреймворка. React — JavaScript-библиотека, созданная Facebook, и основная ее цель — обеспечить комфортную работу с Shadow DOM. Для этого используется Virtual DOM, модель, при каждом изменении генерирующая список операций, которые необходимо провести над DOM, чтобы привести его к новому состоянию.

Если вас заинтересовал этот фреймворк и вы решили начать его изучение, мы подготовили для вас перевод 9 полезных советов по этой теме. В апреле 2020 Facebook анонсировала перезапуск библиотеки, новый проект будет называться React Fiber.

Socket

Socket является одним из наиболее популярных инструментов для разработки реал-тайм проектов. Будучи фреймворком с событийно-ориентированной архитектурой, Socket поделен на серверную и клиентскую части с одинаковым API: такая архитектура позволяет без лишних телодвижений создавать самые разнообразные приложения: от браузерных игр, видео- и текстовых чатов до офисных приложений с функцией совместной работы над документом. Именно на основе Socket реализована аналогичная функция в Microsoft Office Online.

Ember

Ember — современный JavaScript-фреймворк для амбициозных разработчиков и проектов. Будучи невероятно мощным, он очень прост в освоении.

«Росбанк», Москва, до 60 000 ₽ (до налогов)

Одной из вещей, за которые любят Ember, является шаблонизатор Handlebars, который, по словам разработчиков, намного элегантней директив Angular. В целом Ember почти всё делает за программиста, поэтому вам останется только создавать свою бизнес-логику и наслаждаться процессом.

Polymer


Polymer — это проект Google, который не просто облегчает вам использование Material Design. Этот очаровательный фреймворк — воплощение скорости и удобства в работе над интерфейсом, позволяющий создавать и повторно использовать веб-компоненты. Проект много времени провел в стадии бета-теста, но сразу после выхода его популярность начала расти подобно снежному кому.

Meteor

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

С появлением облачного хостинга Galaxy, созданного специально для Meteor-приложений, Meteor сделал фронтенд и бэкенд неразрывными компонентами, для работы с которыми не нужен огромный опыт. Meteor — full-stack фреймворк, который поможет вам на одном JS создать современное, хорошо масштабируемое приложение для веба и мобильных устройств. Публичный репозиторий Atmosphere хранит тысячи пакетов, которые помогут вам создавать такие приложения на лету.

Backbone

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

Backbone — один из самых популярных фреймворков для веб-разработки, в основном благодаря двум причинам: принцип применения модулей очень прост для понимания, а значит, просто и обучение использованию самого фреймворка.

Vue — это простой в использовании и при этом очень мощный фреймворк. Начинающие по достоинству оценят документацию. Vue берёт всё лучшее от других фреймворков и соединяет в один удобный инструмент. Так же, как и React, Vue работает с однофайловыми компонентами и однонаправленными связями между ними, но работать с ним проще благодаря CLI-инструменту vue-cli . Внутри Vue-компонентов можно использовать препроцессоры (Jade, Stylus и др.)

Knockout

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

LiquidLava

Фреймворк для создания пользовательских интерфейсов с возможностью масштабирования от простых интерактивных элементов на странице до многофункциональных приложений. К основным особенностям можно отнести прозрачный дизайн (вы всегда понимаете, что происходит внутри фреймворка), уникальную систему классов и использование шаблонов проектирования вместо внедрения зависимостей.

dhtmlxSuite

Библиотека для создания кроссбраузерных мобильных и веб-приложений, которая содержит большой набор готовых к использованию компонентов пользовательского интерфейса, которые могут быть скомбинированы или использованы по отдельности. Виджеты совместимы с любой серверной технологией: PHP, Java, ASP.NET, Ruby, Grails, ColdFusion, Python и т.д. В новой версии 5.1 добавлена поддержка TypeScript, JSON и Promise API.

PureMVC

Простой фреймворк с поддержкой модульного программирования и эмуляции классов. В репозитории на GitHub можно обнаружить, что последние обновления производились очень давно, но создатели сами упоминают об этом на основном сайте и говорят, что придерживаются позиции «достаточно один раз сделать очень хорошо». Что ж, предлагаем к рассмотрению.

Sencha Ext JS

Данный фреймворк позволяет создавать информационно емкие кроссплатформенные веб-приложения для десктопа, планшетов и смартфонов. Ext JS содержит большую коллекцию готовых, протестированных компонентов интерфейса и множество полезных инструментов, в том числе для анализа и визуализации данных.

Spine

Крайне легковесный фреймворк с подробной структурированной документацией и доступным исходным кодом. Из отличительных черт — асинхронное соединение с сервером, минимальное число зависимостей, адаптеры для локальных хранилищ AJAX и HTML5. Совместим со всеми современными браузерами.

Фреймворк или чистый JavaScript?

06.11.2010, 13:04

Код JQuery на чистый JavaScript
Здравстуйте. Столкнулся с проблемой начинающего Веб-программиста. Нашел рабочий скрипт написанный.

Как используя чистый JavaScript присвоить элементу нужный ID
Здравствуйте друзья! Столкнулся с проблемой, что не знаю, как элементу присвоить id. Классы.

Возможно ли на javascript написать MVC фреймворк на js-файлах?
Возможно ли на javascript написать MVC фреймворк на js-файлах? Т.е. чтобы была model.js.

легкий JS шаблонизатор или фреймворк совместимый с jquery
Добрый день! Можете ли подсказать подобное. На сервере у нас просто php самописный код, хотя в.

стоит ли писать проект полностью на библиотеках, или лучше использовать чистый JS?
Всем доброе время суток. Я пишу на языке JS. Сейчас у меня встал вопрос. Стоит ли доверять.

06.11.2010, 13:10 2 07.11.2010, 00:38 3 07.11.2010, 10:53 4

Нынешние фреймворки новичков отпугивают либо сложностью либо «диковинным» синтаксисом (как jQuery). Я думаю, что именно поэтому новички избегают их использовать, предпочитая «старый» и «добрый» JS и создавая не менее сложный и не всегда кроссбраузерный код.

Я использую и то, и то — в зависимости от конкретной ситуации.

07.11.2010, 10:53
07.11.2010, 22:38 5
08.11.2010, 03:39 6

Я использую ExtJs. И очень доволен. Когда взялся за него, то JavaScript`ом владел на уровне обработки событий мыши. Так что пришлось изучать сразу же и сам язык одновременно. Почти 3 месяца я занимаюсь этим уже. Возможно кто-то уже знает, на данный момент пишу один бесплатный онлайн сервис(пока на локале). Дело близится к концу.
Как таковой JS конечно же нужно знать, если работаем с фреймворками для него. Было время даже хотел свой написать(были трудности с ajax`ом), и все вроде получалось, а потом разобрался как следует с фрейморком и пошло поехало.

О применении, могу сказать что, подключать фреймворки абы где не следует. Плохой стиль это.

08.11.2010, 22:00 7
02.02.2014, 15:13 8

Предлагая поднять вопрос снова.

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

Вот например мнение с сайта http://habrahabr.ru/post/202086/ автор пишет:
«Эпоха старых браузеров уходит в небытие, вряд ли сейчас найдется сознательный человек, использующий ie6,7,8, на зло разработчикам и вопреки техническому прогрессу. Возможно, только по необходимости, например корпоративная система написана под IE6, или лентяи админы издеваются над пользователями и не хотят обновлять/устанавливать новые версии. Тем не менее, статистика использования этих браузеров неумолимо стремится к нулю. Собственно и новая версия jQuery 2.0, отказалась поддерживать устаревшие браузеры(IE 6-8). И тут с релизом jQuery возник вопрос, а для чего же тогда нужен jQuery?»

В итоге по мне так лучше понимать суть бытия чем верить в ложный jQuery и т.п. И только потом когда ты прошел пусть мастера можешь позволить себе вредны для здоровья, но такой вкусный фреймворк. 🙂

Какой выбрать js-фреймворк для разработки?

В последнее время, я все чаще задумываюсь прекратить использование JQuery, и посмотреть в сторону какого-нибудь js фреймворка. Много читал, что JQuery потихоньку переходит в прошлое. В связи с этим несколько вопросов:

в1. Стоит ли уходить от jquery?
в2. Если в1 = true, то какой фреймворк лучше использовать?

Спасибо всем за ваши ответы!

3 ответа 3

JQuery

Большая часть функциональности которая в своё время была прорывом и очень нужна, сейчас есть в чистом javascript. Поэтому всё больше программистов, и я тоже, уходят с JQuery на чистый Javascript.

Приведу пару примеров.

Селекторы — основа JQuery сейчас нативно поддерживаются Javascript.

jquery.ajax — сейчас появилась функция fetch, которая очень удобно умеет работать асинхронно на основе промисов, и в ней так же учтены многие другие пожелания программистов, а некоторые фичи ещё ждут своей имплементации внутри неё.

Другие фреймворки

Они нужны, но их использование зависит от задачи. Что бы понять изучать их или нет, стоит хотя бы кратко посмотреть, почитать что они могут делать, про каждый в отдельности. И, конечно не обязательно все сразу, для начала можно наиболее популярные.

И да, например React рассматривать как замену JQuery никак нельзя этот фреймворк совсем с другими задачами, другие фреймворки тоже. То есть их надо рассматривать не как замену, но зависит от задачи, например в случае React это может быть платформа для приложения + стиль программирования, кодирования.

Сарай не заменяет баню, а баня не заменяет дом. Нужно знать зачем они нужны, и исходя из этого принимать решение.

Стоит стоит, если не хотите быть выброшенным с корабля фронтенд вебдева. Также, я уверен, что в скором времени писать нетипизированный js станет плохим тоном. В выборе между flow и typescript последний определённо далеко впереди.

Относительно реакта.. реакт меняет мышление и подход к разработке приложения и сближает нас с концепциями функционального программирования. Реакт — это захватывающее путешествие через джунгли современного джаваскрипта. В том числе и потому, что Реакт по сути только рендерит функции в dom, и не предлагает ничего более. Вот здесь я привёл список основных вкусностей, которые превращают разработку проекта с реактом в прогулку по осеннему лесу: Что может крутого сделать React.js чего не может jQuery

Все современные фреймворки/библиотеки (angular, vue, react, svetle, riot, polymer, aurelia), все являются компонентно-ориентированными и именно компонентно-ориентированный подход становится (или уже стал?) стандартом в разработке веб-приложений. Поэтому императивный стиль jquery (в духе «выберем ноду из дома по id, зададим ей класс, приаттачим ещё пару нод, запустим анимацию через встроенную функцию animate и в конце сделаем .show() если выполняется условие и всё это назовём function showNewComment()», к счастью, остаётся в прошлом.

Через какое-то время создание функционального веб-приложения будет возможно путём накидывания изолированных компонентов в визуальном редакторе. Компонентом будет всё от лэйоута сайта до формы регистрации.

Конечно, для того, что принято называть «сайт-визитка», никакой фреймворк не нужен. Но мы же говорим про что-то более сложное, да?

И в качестве ещё одного доказательства, что стоит учить реакт (или ангуляр): какая прорывная технология для фронтеда за последние несколько лет не имеет реакт- или ангуляр-библиотеки или не связана с ними компонентно-ориентированным базисом?

Форум

Справочник

Поиск по форуму
Расширенный поиск
К странице.
Страница 7 из 12 « Первая 7 8 9 > Последняя »

Я не рекламировал сейчас никакой метод )) Я писал про экономическую точку зрения.

сравни три вида заданий.

создание/совершенствование фреймворка/быстрые фрагменты кода — нативный js.
Создание красивостей на сайте. Слайдеры и т.п — jquery/prototype
Создание сложных бизнес приложений c кучей диалогов и форм. — dogo/extjs


Частота встречаемости заданий приблизительно совпадёт с популярностью фреймворков. Я в этом почти уверен.
Немного завышенное количество нативщиков, это бывалые кодеры работающие по энерции на чём им удобно. Думаю их доля в общей массе будет постепенно падать,(впрочем незначительно), а специализация программистов возрастать

Писать бизнес приложение с кучей форм на голом js- слишком напряжное и длительное занятие, а красивости на Ext.Js слишком тяжёлые, фреймворк на ext.js не напишеш (покрайней мере в классическом понимании)

x-yuri — не мне тебе доказывать что всемогущих подходов несуществует. И спор что лучше топор или пила сам понимаешь что неуместен, и то и то позволяет разделять дерево на части, но совершенно по разному, и используется разный инструмент в разных ситуациях.

Илья Кантор думаю поставил вопрос исходя из потребности выяснить какие темы следует освещать на сайте в целях увелечения его посещаемости, а 7 страниц спора это побочный эффект ))

Сообщение от DjDiablo
Я не рекламировал «свой метод»,
Мастер Йода рекомендует:  Наглядно объясняем операцию свертки в моделях глубокого обучения

возможно мне показалось.

Сообщение от DjDiablo Писать бизнес приложение с кучей форм на голом js- слишком напряжное и длительное занятие.

не знаю, чем тебя формы так пугают. Но экономический вопрос — это только один из факторов. Есть такой анекдот про студентов и столовые:
Неделя после стипендии. Действует правило правой руки — закрываются цены, выбираются блюда.
Две недели после стипендии. Действует правило левой руки — закрываются названия, выбор по цене.
Неделя до стипендии. Действует правило буравчика — покрутился, повертелся и ушел.
Если исходить из имеющихся средств, может получиться еще один никому не нужный сайт. Если еще один никому не нужный сайт писать на нативном js, это будет overkill. Если требования у клиента не высоки скорее всего подойдет и jquery. Если высоки — тебе надоест копаться в jquery. Если сайт делается исходя из наличия плагинов для jquery — это хороший выбор, если нет — ты должен хорошо знать нативный js, но тогда зачем тебе jquery? Если ты сам себе программист, дизайнер, клиент и пользователь, то естественно приходится упрощать/абстрагироваться. Или искать инвестора.

Но самое главное, меня не устраивают существующие фреймворки, они не абстрагируют меня от наличия разных браузеров, их плагины не покрывают спектр задач, с которыми мне приходится сталкиваться, поэтому моя цель — нативный js. Кстати, нативный js — это не обязательно jquery-style написания кода (внутренний).

Может ли кто-нибудь перечислить общие фреймворки/библиотеки javascript и плюсы/минусы каждого из них?

Так что у меня есть много проектов, которые могут использовать небольшой dhtml pizzaz, и я не знаю, какой фреймворк использовать для какого проекта, и любая помощь будет оценена.

4 ответа

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

В самом деле, вы будете в порядке с любым из основных, потому что все они могут выполнять в основном те же самые вещи, и у большинства есть много плагинов и скриптов, которые перекрываются. Тем не менее, я бы порекомендовал либо jQuery или же MooTools.

jQuery — большое сообщество. Очень быстро с последним обновлением. Очень легко для начинающих. Много плагинов.

MooTools — немного сложнее для начинающих, но мне очень нравится его классовая структура и модульность. Вы можете выбрать, какие части фреймворка вам нужны, а остальные не учитывать Сообщество не так хорошо, как JQuery. Много плагинов.

Тебе тоже будет хорошо Прототип/Scriptaculous, YUI, школа дзюдо, и несколько других, хотя я не так хорошо знаком с их плюсами и минусами.

Однако важно помнить, что нельзя использовать более одной библиотеки одновременно. Вы не можете использовать Mootools и Prototype вместе, но вы не должны использовать другие вместе, потому что вы просто излишне увеличиваете размер страницы. Если вы найдете скрипт, который вам действительно нравится, в одной библиотеке, скорее всего, он существует в другой.

Вы также получите лучшее сжатие, распаковывая файлы, когда отправляете их в браузер.

Прототип: Плюсы: очень мощный, маленький, простой в интеграции, отличный API минусы: ограниченные встроенные виджеты (см. scriptaculous)

Dojo: плюсы: множество виджетов, достойные форумы поддержки, отличный API минусы: нарушает веб-стандарты, виджеты загружаются после загрузки

Лично я широко использовал MooTools, Prototype, Scriptaculous и jQuery, и я люблю jQuery. Это действительно зависит от ваших потребностей в проекте и ваших личных вкусов. Там нет «лучших».

Наиболее популярные Javascript фреймворки для быстрой веб разработки: что выбрать?

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

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

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

Перед началом реализации проекта, чаще всего, необходимо предварительно провести анализ, чтобы выбрать именно ту технологию, которая подойдет вам. Для этого мы создали это руководство, которое вы сможете использовать в качестве справочного материала по выбору наиболее подходящего фреймворка.

Преимущества фреймворков

Говоря простым языком, Javascript фреймворк — это набор методов и функций, которые написаны на языке Javascript и готовы к использованию разработчиками. Эти функции упрощают взаимодействие веб-приложения с сервером и ускоряют манипулирование элементами на веб-странице или в приложении.

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

Такой подход сейчас используют социальные сети, например, Facebook. Если вы находитесь на странице «Новости» и переходите на страницу «Сообщения», перезагрузки страницы не происходит, вместо этого меняется несколько блоков на сайте.

Ниже упомянуты некоторые из наиболее примечательных преимуществ использования фреймворков:

  • Стоимость.Стоимость разработки приложений для веб-сайтов снижается благодаря Javascript фреймворкам, поскольку они бесплатны и имеют открытый исходный код.
  • Скорость разработки. У Javascript фреймворков хорошая документация (описание работы функций со своеобразной «книгой рецептов»), множество форумов и групп поддержки. Некоторые из Javascript-фреймворков поддерживаются такими известными компаниями, как Google или Facebook. Благодаря такому количеству информации увеличивается скорость разработки.
  • Эффективность. Использование предварительно созданных функций и шаблонов позволяет реализовывать проекты более качественно. Разработчики в конечном итоге пишут меньше кода, что приводит к более быстрому и эффективному выполнению проектов.

Популярные фреймворки

Javascript фреймворки являются одной из наиболее предпочтительных платформ для создания современных одностраничных веб-приложений (SPA), социальных сетей, eCommerce продуктов, SaaS платформ и многого другого.

В итоге, разработка современного веба стала практически невозможна без использования фреймворков. Конечно, еще остались компании, которые используют классический Javascript, но в таких случаях скорость и стоимость разработки увеличивается в разы.

Как следствие сложности классического JS, на рынке появились сотни фреймворков. Но уверенное лидерство на рынке разработки заняла тройка: Angular, React и Vue. О них и пойдет речь далее.

Angular

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

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

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

Сильные стороны Angular: отличная документация, поддержка компанией Google, огромнейший набор инструментов для разработки (Material UI, CLI и т.д.)

Одной из слабых сторон является высокий порог вхождения в проекты для разработчиков, потому что, например, нужно знать TypeScript. Следовательно, это усложняет разработку проектов, особенно если проект передается от одной команды к другой.

Вторая проблема Angular — очень частый релиз новых версий. В июне 2020 года вышла уже 8-я версия фреймворка. Этот факт также говорит о том, что проекты на Angular сложнее поддерживать.

Трафик Angular Docs только что перевалил за 1,5 млн. посетителей в месяц

React.js

React — это JavaScript библиотека с открытым исходным кодом для разработки пользовательских интерфейсов. Впервые React был использован в 2011 году в ленте Facebook, затем в 2012 в ленте Instagram.

React до сих пор разрабатывается и поддерживается Facebook и Instagram. React может использоваться не только для браузерных веб-приложений, но также для мобильных приложений. Цель React — предоставить высокую скорость, простоту и работоспособность приложений на разных платформах.

Но React — это не полноценный фреймворк, а библиотека функций. Чтобы использовать его как фреймворк, нужно дополнительно подключать сторонние библиотеки.

Сильные стороны React: скорость работы, легковесность, кроссплатформенность и большое комьюнити.

Слабой стороной является тот факт, что для полноценной работы нужны сторонние Javascript-библиотеки, что усложняет процесс разработки. Второй минус библиотеки — это отсутствие следования стандартам в написании кода на HTML и CSS, какое есть, например, у Angular и Vue.js.

SMN с выпущенным компонентом React

Vue.js

Vue — это прогрессивный фреймворк для создания пользовательских интерфейсов. Vue создан пригодным для постепенного внедрения, в отличие от Angular или React. Это значит, что внедрять этот фреймворк можно поэтапно начиная с определенных страниц, что значительно упрощает разработку.

Создателем Vue.js является Иван Йу. Vue широко используется среди китайских компаний, например, Alibaba, Baidu, Xiaomi и др. Недавно система управления репозиториями GitLab тоже перешла на Vue.js.

Vue в первую очередь решает задачи уровня представления (view), что упрощает интеграцию с другими библиотеками и существующими проектами.

Vue вобрал в себя лучшие стороны Angular и React: скорость, легковесность, возможность поддержки таких технологий, как TypeScript и JSX. Но, при этом, Vue остался верен стандартам написания кода на HTML и CSS, что облегчает процесс разработки и поддержки проекта.

Таким образом, для любых разработчиков, которые знают основы фронтенд-технологий не будет проблемой разработать или взять на поддержку проекты на Vue.

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

Что же выбрать?

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

Скорость и легкость разработки и поддержки проекта

Скорость разработки зависит от технологий, используемых на вашем проекте. Если в вашем проекте уже используются такие технологии, как TypeScript или JSX, то вам лучше подойдут Angular и React соответственно.

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

Тренды

Все три фреймворка являются популярными и в ближайшие годы будут занимать ведущие места на рынке разработки. Однако Vue стремительно набирает популярность, за ним следует React. Поэтому, выбрав любой из них, вы не ошибетесь. Ниже представлен график популярности фреймворков на Гитхабе по количеству лайков за последние несколько лет:

Популярность фреймворков на Github

Мобильность и масштабируемость

Допустим, вы выбрали один фреймворк, но затем решили перевести проект на другой. В этом случае вам лучше всего подойдет Vue.js. Потому что если вы захотите переписать проекты, созданные на Angular или React, то разработчикам, скорее всего, понадобится переносить TypeScript или JSX кода на классический Javascript и HTML соответственно.

Еще один важный момент — это частота обновлений фреймворков. Angular серьезно обновляется каждые 6 месяцев. React немного реже — примерно раз в год. Vue в этом плане максимально стабилен и серьезные обновления бывают раз в несколько лет.

Добавить комментарий