Про Meteor докладно: чому це майбутнє веб-розробки

Що таке Meteor?

Це не черговий javascript фреймворк. Ставити його в один ряд з derby, sails, angular або backbone некоректно. Meteor — це платформа для створення модульних высокоинтерактивных клієнт-серверних додатків. Нехай це звучить трохи пихато і нагадує маркетинговий булщит слоган, але по суті дуже точно відображає місію і поточний стан Meteor. Буквально кілька днів тому Meteor API випустив першу стабільну версію (1.0).

Офіційну інформацію можете почитати на порталі www.meteor.com, а я ж хочу розповісти про особливо гаряче улюблених мною фичах.

  1. Пишемо логіку на одній мові — результат працює на всіх платформах: сервер, браузер, cordova (Android, IOS). Природно, без особливостей не обходиться, але це — дрібниці життя. Apple і Google бачать в cordov'е великий потенціал і займаються розвитком підтримки цієї технології: Apple allows hot code push in mobile apps; Новий Chromium WebView тепер оновлюється через Google Play і підтримує Web Components.

  2. В керівництві проекту — розумні і досвідчені розробники, які розуміють цінність спільноти, робота з яким побудована на тверду п'ятірку. Щомісячні devshop-події в штаб-квартирі в SF, підтримка через stackoverflow, відмінне і завжди актуальне опис API. Окремо хочу відзначити грандіозна подія — Worldwide Meteor Day, присвячений виходу першої версії. В Росії, до речі, подія проводиться в 2 містах: Москві і Курську.

  3. Зручне асинхронне серверне програмування завдяки вбудованому Fibers. У 99% випадків при роботі з Meteor ви пишете звичайний синхронний код, і він працює асинхронно! Дивно? Нічого дивного: кожен виклик серверного методу працює у своєму Fiber'e і не впливає на роботу інших викликів. Це нереально спрощує структуру коду: будь-які звернення до БД та інших зовнішніх ресурсів пишуться в синхронному стилі. Нещодавно дивився на шматочок коду добре написаного звичайного асинхронного node.js-програми, — і у мене на очі навернулися сльози. Якщо хтось ще не знайомий з Fibers, — настоятельнейшим чином рекомендую!

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

  5. Не менш крута абстракція для виклику серверних методів, виглядає як виклик асинхронної функції з callback'ом. Забудьте про серверні шляху, xhr і складну структуру коду! У Meteor все робиться дуже просто.

  6. Зручний деплой додатків. Особливо якщо ви тільки починаєте свій проект: однією командою з консолі ваш проект публікується на домені .meteor.com; після деплоя можете переналаштувати на ваш_домен.сом. Якщо проект виріс і його потрібно перенести на професійний хостинг, то, знову ж таки, однією командою проект збирається в node.js-додаток з єдиною залежністю — npm.

  7. Всі рутинні оптимізації (минификация коду, збірка в один файл) і перекомпіляції (less -> css, coffeescript -> js та ін.) здійснюються автоматично і практично без налаштування (прощай новонароджений gulp і потворний grunt). Для деяких операцій потрібно встановити пакет (package), що теж досягається одноразовим введенням консольної команди.

  8. Протокол DDP, покликаний замінити REST API. Це дуже простий, але потужний протокол, заснований на EJSON (розширений JSON). DDP підтримує RPC і двосторонню передачу даних (туди і звідти), працює поверх WebSockets і SockJS. А ще його легко читати, що може знадобитися у випадку особливо глибоких дебагов. До речі, якщо потрібен REST API, то ніхто не забороняє його використовувати. Навіть навпаки, є підходи на будь-який смак. Просто вже не захочеться крокувати назад.

  9. Best practices enforcement. Html, css, less і coffeescript повинні бути валідними (інакше проект не відбудеться створення), чіткий поділ між шаблонами (spacebars — спадкоємець handlebars), css і js. Чітке розділення між тільки серверним, тільки клієнтським і розшарені кодом. Система пакетів з явними залежностями (Meteor, npm, cordova), явним експортом API і повною ізоляцією пакетів — мрія для node.js програмістів!


І ще багато плюшок, реалізованих без дивних дизайнерських рішень. У підсумку отримуємо інструмент, який дозволить вирішувати завдання не відволікаючись на рутину. Якщо ви зараз вибираєте node.js фреймворк для вашого майбутнього проекту, без коливань зупиняйтеся на Meteor — ваші муки припиняться, а волосся стануть м'якими і шовковистим.

Література



Для тих, хто не витримав і перегорнув до кінця: Meteor — наикрутейшая річ. Для розробників: починайте працювати з ним зараз, бо завтра Meteor-розробники стануть дуже затребуваними. Для бізнесменів: один Meteor-розробник замінить frontend, backend, IOS і Android розробника; ні, це не жарт: приклади успішних проінвестованих і навіть (деяких) проданих проектів: https://respond.ly/, http://versoapp.com/#verso, http://www.classcraft.com/, http://blonk.co/, https://lookback.io/.

Boo!

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.