AXForum  
Вернуться   AXForum > Блоги > CRM, SharePoint и Черная Магия
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

Добро пожаловать в мой блог! Изначально он не задумывался как блог CRM разработчика, но жизнь сама внесла нужные коррективы. Тут я публикою все свои наблюдения относительно обозначенных в заголовке систем. Если Вы найдете в нем что-то интересное для Вас, как для заказчика, то буду рад сотрудничать с Вами! В моей компетенции 100% задач по MS CRM 3.0/4.0/2011:
  • Консалтинг
  • Проектирование
  • Разработка
  • Обучение


MVP 2010, 2011
Оценить эту запись

Динозавр осваивает Modern Web - Часть третья

Запись от Артем Enot Грунин размещена 16.10.2017 в 14:36
Обновил(-а) Артем Enot Грунин 27.10.2017 в 13:35
Теги modernweb, react

Часть третья - Технологии

Предыдущая статья серии: Динозавр осваивает Modern Web - Часть вторая

Итак, в прошлый раз мы выяснили, что в современной веб разработке применяются три ключевых инструмента:
• Менеджер пакетов
• Рендер-препроцессор
• Сборщик

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

• NPM (Node Package Manager) это наш менеджер пакетов. Инструмент поставляется в составе дистрибутива Node и не требует дополнительной настройки. Все остальные инструменты мы будем устанавливать через него!
• Babel. Изначально нечто вроде библиотеки "полифилов" на js, которая реализует поддержку языковых конструкций js, которые еще не стали стандартом, или не имеют единогласной поддержки мультиполярным интернет сообществом. В настоящий момент - это расширяемый плагинами инструмент, задача которого "транслировать" расширенные версии веб-языков во что-то более поддерживаемое. Об этом позже
• WebPack. Монструозная система компоновки, сборки и даже запуска веб приложений! Умеет запускаться в режиме веб-сервера и прямо на ходу подгружать изменения без перезапуска. Инструмент, который реально впечатляет, однако чудовищно сложен в освоении в полной мере.

Разумеется, у них есть альтернативы! Немного погуглив, вы непременно узнаете, что NPM используют только лохи, а все крутые пацаны используют Bower и так далее. Тем не менее, указанные выше инструменты (возможно за исключением Babel) являются стандартом де-факто. Какой бы фреймворк для разработки вы не выбрали, в его документации вы непременно найдете инструкции как их использовать. Эти же инструменты Microsoft использует в шаблонах проектов ASP.NET Core, хотя поддерживает и другие средства.

Итак, со средой разработки мы определились. Теперь самое интересное - нужно выбрать язык и фреймворк. Вариантов множество, из популярных можно выделить React, Angular, Knokout и Aurelia. Кто-то из них моложе, кто-то мощнее, кто-то вообще-то не фреймворк, а так - библиотека. Это дело вкуса. Я для этой статьи выбрал React и вот почему:

• Религиозная неприязнь к продуктам Google (поисковик не считается!). Angular тяжелый, сложный и непонятный, к тому же развивается во все стороны сразу. Внутренние противоречия в ходе его разработки даже привели к тому, что один из ключевых членов команды ушел и создал Aurelia Кстати, теперь активно сотрудничает с Microsoft
• Как было сказано выше, React - это и не фреймворк вовсе, а библиотека. Иными словами, работать с ним как с JQuery - "приатач и хуяч"! Никто не заставляет сильно погружаться в идеологию
• Образцово показательная модульность. На React очень удобно писать UI компоненты, которые можно выделить в отдельную библиотеку и повторно использовать. Например, на разных формах
• Простота, быстрота, эффективность и пр. за что его любят
• По непроверенным слухам, Microsoft использует React в своем знаменитом Custom Control Framework, который вот-вот станет доступен сторонним разработчикам. В общем, и нам пора!

Теперь язык. Как я уже говорил, никто не пишет на JavaScript. Во всяком случае на текущей официально принятой (или поддерживаемой большинством браузеров) версии стандарта ESMAScript. Все мы знаем что JS - это жопоязык созданный, чтобы мы страдали, но это же самое можно сказать и про тот же С/С++! Чем же хуже него JS? Дело в том, что JS изначально скриптовый язык - считайте, что это язык командной строки. Его первоначальная задача - последовательно выполнять команды сценария, а не автоматизировать жизненный цикл приложений. Чтобы стало полегче, в следующих версиях стандарта вводят разные инновации, такие как модули, классы, стрелочные функции и так далее:
https://learn.javascript.ru/modules
https://learn.javascript.ru/es-class
http://jsraccoon.ru/es6-arrow-functions
http://jsraccoon.ru/es6-block-scoped-declarations
http://jsraccoon.ru/es6-interpolation

Но, модерн веб не был бы модерн, если бы ждал, пока все это станет доступным повсеместно! Вместо этого, синтаксис будущего можно использовать уже сейчас, но его придется прогнать через рендер, который преобразует его к синтаксису текущей версии. Разумеется, не без потерь в виде читаемости и производительности.

Вот здесь снова возникает выбор: использовать JS6, или другие транслируемые языки, такие как TypeScript, CoffeeScript, Dart и другие? Я для себя выбрал TypeScript и вот почему:

• Его любит даже команда Angular!
• Он был специально доработан для React!
• TypeScript обратно совместим с JS. Это значит, что код любой существующей JS библиотеки, например, Reract является корректным TypeScript кодом
• Язык разрабатывается Microsoft и по официальной версии заменит Script# в новых версиях CRM. Ну, вы поняли: значит и нам пора!

Итак, с инструментарием определились. Пора начинать кодировать! Об этом я расскажу в следующих постах этой серии:

Динозавр осваивает Modern Web - Часть четвертая
Размещено в CRM
Просмотров 315174 Комментарии 0
Всего комментариев 0

Комментарии

 


Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:50.