Які JavaScript фреймворки варто освоїти в 2018?

294

Від автора: перш ніж говорити про JavaScript фреймворки, давайте визначимося, що я маю на увазі під словом «фреймворк», так як термін досить розмитий. Фреймворком я називаю бібліотеку, визначальну структуру всіх аспектів і рівнів додатки і полегшує розробку. Рівні, в даному випадку, це бази даних, моделі, контролери, відображаються елементи, подання, мережі і т. д.

Фреймворки допомагають вирішити більшість відомих проблем, які виникають при роботі з додатками. Вони містять готові рішення по дизайну, а також ретельно розроблені керівництва; в цьому плані вони не повинні викликати ніяких труднощів.

У хороших фреймворках задані відмінно продумані параметри за замовчуванням вони працюють за принципом «конвенція понад конфігурації». Одним із лідерів серед фреймворків є мій улюбленець — Ruby on Rails. У сфері JavaScript такими є Angular і Ember.

Тепер, коли ми все прояснили, я хотів би відповісти на запитання, поставлене в заголовку: Які JavaScript фреймворки варто освоїти в 2018?

Моя відповідь: Ніякі.

Зараз поясню, чому.

До тих пір, поки у роботі від вас не вимагається використання фреймворку, не потрібно освоювати його тільки для того, щоб освоїти. Я маю на увазі, не потрібно вчитися його використовувати. Це знання дуже швидко застаріє.

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

Вчіться використовувати фреймворк тільки коли виникне необхідність.

На мою думку, щоб стати затребуваним розробником, потрібно освоїти більш важливі навички:

Вивчіть все, що можна, про самому мові JavaScript: його сильні і слабкі сторони, нові фічі. Навчитеся створювати і застосовувати різні структури даних в JavaScript.

Вивчіть робочу середу JavaScript, наприклад, Node і браузери, і наскільки вони однопоточні. Дізнайтесь про їх API і обмеження, про цикл подій, стек викликів ОС. Переконайтеся, що в темі засобів розробки браузера ви відчуваєте себе впевнено.

Навчитеся передавати код від клієнта на сервер і виконувати предзагрузку вихідних даних. Навчіться мінімізувати завантаження JavaScript і виконувати синтаксичний аналіз браузерів, а також завантажувати JavaScript на вимогу.

Дізнайтеся про переваги функціонального програмування і використовуйте їх. По можливості намагайтеся пояснювати, а не вказувати.

Ознайомтеся з маленькими бібліотеками JavaScript, які роблять одну річ і роблять її добре. Вибирайте бібліотеки з найменшим API і не загострюйте увагу на API, краще зосередьтеся на тому, на що здатні ці бібліотеки.

Навчитеся створювати API з масштабованими даними (розгляньте GraphQL).

Ознайомтеся з роботою CSS і навчитеся мінімізувати з його допомогою JavaScript код додатків. Вивчіть новий Flexbox і Grid макети. Дізнайтеся більше про адаптивний дизайн UI.

Навчитеся додавати статичні типи JavaScript за допомогою TypeScript (або Flow) та дізнайтеся, де потрібно сфокусуватися на типи, а де на тестуванні.

Спасибі за ваш час.