Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
ontofractal
6 лет назад

Изучение программирования для блокчейн приложений: фронтенд и JavaScript

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

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

Когда я только начинал изучать программирование несколько лет назад, я столкнулся с такими же трудностями.

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

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

Еще совсем недавно фронтенд разработка могла вестись только на JavaScript или языках транспилирующихся (компилирующихся) в джаваскрипт, таких как TypeScript или Pure Script. В следующих постах я расскажу об альтернативе - WASM. Но пока только о JS.

На уровне языка значимых отличий в использовании JavaScript для "обычного" программирования и для взаимодействия с блокчейнами - нет. Поэтому в этом посте каких-либо упоминаний блокчейна не будет.

JavaScript

Главный язык фронтенда – джаваскрипт.

Эволюция JavaScript зависела от несколько необычного фактора (ключевого для понимания направления развития) – строгой необходимости поддержки обратной совместимости.

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

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

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

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

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

Образовательные ресурсы:

Introduction To JavaScript

JavaScript для начинающих

Intro to JavaScript

JavaScript Introduction

Front End Web Development

Современный JavaScript или Ecmascript 2018

Техническое название JavaScript – EcmaScript. Названия обновлений версий языков следует за названиями годов, в которых были приняты эти изменения, например, ecmascript 2015 или ecmascript 2017. Они также были известны под сокращениями ES6 или ES7.

Со временем JavaScript программы превратились из простых jQuery скриптов в большие сложные приложения, где парадигма асинхронного программирования JavaScript приводила к появлению "ада коллбеков".

"Ад коллбеков" делал код нечитаемым, усложнял понимание сути программы.

Для решения этой проблемы сообщество JS разработчиков начало использовать так называемые Promises, которые позже вошли в стандартную библиотеку, а ещё позже их использование стало значительно удобней, благодаря новому примитиву асинхронного программирования – async / await.

JavaScript – объектно ориентированный язык программирования с особенностями, использующий прототипы в качестве системы наследования.

В современном джаваскрипте были добавлены классы, широко использующиеся, к примеру, при создании React компонентов.

Как классы, так и async/await в JS – синтаксический сахар, функционал языка, который улучшает внешний вид, облегчает читабельность, улучшает понимание синтаксиса, но не меняет суть работы программных конструктов.

Async/await и классы – только два из многих дополнений, которые облегчают жизнь JS разработчика.

Образовательные ресурсы:

Транспиляция

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

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

Отличие транспиляции от компиляции

при транспиляции язык, на котором пишут программисты, превращается в другой язык, на котором пишут программисты

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

Текущий индустриальный стандарт инструмента для транспиляции JS кода – Babel.js

Образовательные ресурсы:

Главные советы

  • Сразу учите современный JavaScript: ES2016, ES2017, ES2018
  • Внимательно следите за тем, что получается, а что нет
  • Если есть такая возможность, изучайте материалы сразу на русском и английском языках
  • Не обращайте внимания на эти советы, если вы осознанны и видите, что у вас работает другой подход

В следующем посте – про изучение JavaScript в контексте Document Object Model и node.js

6
475.272 GOLOS
Комментарии (5)
Сортировать по:
Сначала старые