Курс NT-WebAppDev Курс NT-WebAppDev. Розробка web-додатків. JavaScript та TypeScript, бібліотека jQuery, платформа NodeJS та фреймворк Angular

Курс надає знання та навички для самостійного розгортання інфраструктури NodeJS, фреймворка Angular та створення фронтальних додатків за допомогою JavaScript та TypeScript. Він починається з детального вивчення мови JavaScript, сучасних механізмів та конструкцій мови, а також способів управління пам'яттю. Далі вивчається класична бібліотека jQuery та її рішення для роботи з технологіями АЈАХ та NodeJS. Для вивчення серверної частини фронтальних web-додатків розробляється сервер для доступу до бази даних та інших сервісів підприємства. Також розглядаються механізми шаблонізації. І нарешті, фіналом курсу є вивчення фреймворка Angular. Цей інструмент посідає одну з перших позицій в рейтингах розробників web-додатків.

Таким чином, слухачі отримають повний стек сучасних інструментів для web-розробки на мові JavaScript. ReactJS в цьому курсі не розглядається, це окрема тема.


Аудиторія
  • Розробники та персонал, які супроводжують та розробляють корпоративні web-додатки для серверів баз даних PostgreSQL, Oracle та інших сховищ.
  • Тестувальники web-додатків.
  • Керівники проектів, які бажають поширювати корпоративну інформацію через web-платформи.

Для ефективного навчання на курсі, слухачі повинні володіти такими знаннями і навичками:
  • Незначний досвід програмування на мовах SQL/PLSQL, Java або на будь-якій об'єктно-орієнтованій мові.
  • Знання основ розробки web-додатків на рівні HTML-сторінок.
  • Бажаний початковий досвід роботи з скриптовими мовами програмування, наприклад, JavaScript, Python, РНР, VBScript.
  1. JavaScript, TypeScript, бібліотека jQuery
    • JavaScript (JS), огляд середовища виконання, розподіл пам'яті, стек викликів, «купа», механізми зворотного виклику. Механізм V8 (рушій) - загальне уявлення і механізми часу виконання. JS - однопотоковий, цикл подій та паралельне виконання.
    • Рушій V8 - внутрішня будова, робочі потоки, вбудовування коду, приховані класи. Елементи OOП в JS. Рекомендації щодо оптимізації.
    • Управління пам'яттю JS, виділення та вивільнення пам'яті, прибирання сміття, циклічні посилання. Алгоритм складання сміття «познач та викинь». Як боротися з витоком пам'яті в JS.
    • Асинхронне виконання JS, setTimeout(...), виконання подій в черзі, функції async/await.
    • TypeScript-механізм типізації для JavaScript, налаштування робочого місця для використання TypeScript, анотації типів, інтерфейси, необов'язкові властивості інтерфейсів, стрілкові функції (лямбда-вирази), модифікатор private, наслідування. Компіляція TypeScript в JavaScript.
    • jQuery - бібліотека web-розробки. Інсталяція бібліотеки, підключення бібліотеки до проекту. Правила ефективного використання jQuery.
    • Селектори, способи отримання доступу до моделі документа, вибір елементів, піделементів за властивостями, ідентифікаторами, класами. Використання декількох селекторів. Фільтри за вмістом, дочірніми елементами та за елементами форм.
    • Маніпуляції зі станом та вмістом елементів DOM. Робота з атрибутами, параметрами та стилями. Видалення, додавання та зміна вмісту елементів. Клонування.
    • Події бібліотеки jQuery. Базові події, події миші та клавіатури. Події форми, сторінки, браузера.
    • Технологія AJAX. Функції високого рівня, обробка AJAX-подій, синхронне та асинхронне виконання AJAX. Перетворення даних форми в рядок - серіалізація форм.
    • Практична робота щодо створення Ajax-сторінки для взаємодії з сервером WildFly, з розміщеними на ньому REST-сервісом. Виконання POST і GET-запитів. Обробка помилок на стороні клієнта, на html-сторінці.
  2. NodeJS - середовище виконання JavaScript на стороні сервера.
    • Створення та робота з серверними додатками. Порівняння NodeJS з технологіями JEE на прикладі сервера додатків WildFly. Установка та налаштування NodeJS, інструментарій розробника.
    • Порядок створення серверного додатка, відсутність ключових об'єктів JS - window та document. Робота з консоллю операційної системи з NodeJS.
    • Модулі як основний будівельний блок середовища виконання. Утиліта інсталяції нових модулів - npm, файл package.json, управління конфігурацією пакетів, видалення пакетів, підключення модуля до додатка та експорт модулів. Глобальний об'єкт global, аналог клієнтського window. Передача параметрів серверному додатку за допомогою масиву process.argv. Утиліта nodemon для відстеження змін в проекті.
    • Асинхронні механізми при виконанні NodeJS-додатків, setTimeout та механізми async/await.
    • Робота з файловою системою - модуль fs. Робота з файловими атрибутами, файлові потоки - читання та запис в файл. Канали (pipe) для зв'язування потоків. Модуль zlib для упаковки та розпаковування потоків.
    • Обробка подій в NodeJS - модуль events, передача параметрів в подію, перевизначення подій.
    • Створення http-сервера - модуль http. Request та Response. Реалізація найпростішої маршрутизації. Взаємодія http-сервера з файлами операційної системи. Використання плейсхолдерів {name} для заміни вмісту в статичних файлах на динамічний вміст.
    • Модуль express. Завантаження та доступ до модуля, конвеєрна обробка запитів та надсилання відповіді, відповідь із статичного файлу, передача параметрів express-додатку. POST і GET методи при обробці запитів. Прийом та надсилання даних в форматі JSON.
    • Використання шаблонізатора. Рушій представлень pug. Інсталяція. Теги виразів #{...}, підключення часткових представлень.
    • Взаємодія NodeJS з базою даних PostgreSQL (Oracle). Інсталяція модулів. Підключення до бази даних через параметри операційної системи та через об'єкти NodeJS. Створення пулів підключень. Виконання команди SELECT та отримання опису метаданих з бази даних. Основи транзакційних механізмів в базі даних, виконання транзакційних запитів через пул з'єднань. Обробка розподілених транзакцій. Типи даних бази даних та їх мапування на NodeJS. Робота з JSON-типом даних та з BLOB-об'єктами.
    • Організація маршрутів в NodeJS-додатках. Шаблон MVC. Побудова контролерів як окремих модулів.
    • Практична робота щодо створення серверного та клієнтського додатків в технології NodeJS з редагуванням даних в базі даних Oracle або PostgreSQL.
  3. Angular4 - фреймворк розробки
    • Встановлення Angular, утиліта CLI, попереднє встановлення NodeJS. Створення проекту, конфігураційний файл package.json, запуск проекту на різних мережевих інтерфейсах та портах, переклад проекту з розробки в продуктивний режим та навпаки. Структура папок додатку.
    • Структура програми, модулі, компоненти, сервіси та директиви.
    • Два види компіляції модулів та компонент JIT і AOT, прапор запуску prod. Переваги JIT-компіляції на етапі розробки.
    • Шаблони Angular, інтерполяція, однобічне зв'язування, обробка подій, двобічне зв'язування. Декоратори, getters та setters. Взаємодія між компонентами, передача даних з одного компонента в інший.
    • Директиви для зміни зовнішнього вигляду додатків, структури DOM. Фільтри для перетворення html-шаблонів.
    • Стандартні та реактивні форми. Приклад створення стандартної форми. Валідація форми.
    • HTTP-клієнт та надсилання запитів, обробка помилок, надсилання даних в запиті методами GET та POST.
    • Визначення маршрутизації в Angular, створення посилань, параметри маршруту, параметри рядка запиту, програмна навігація, дочірні маршрути.
    • Практична робота щодо створення динамічного додатку для роботи з базою даних. Формування відношення «майстер-деталь» між двома таблицями в базі даних з можливістю редагування даних.
    • Авторизація доступу, стандартна авторизація засобами JEE, LDAP. Доступ до зовнішніх серверів авторизації та автентифікації.
    • Компоненти повторного використання ng2-smart-table, nebular@theme, eva-icons та інші, принципи використання. Інсталяція, доступ, архітектура, налаштування компоненти та її використання на сторінці, зв'язок через сервіси з базою даних. Компоненти, які визначають зовнішній вигляд додатків, інсталяція, настроювання.

Увага! При корпоративному навчанні тема «Angular4» може бути замінена на тему «ReactJS».

  1. Основи роботи з бібліотекою ReactJS
    • ReactJS - бібліотека для інтерфейсів користувача з компонентним підходом.
    • Що таке компоненти в ReactJS. Компонентний підхід до розробки програми з використанням JavaScript. ReactJS - все є JavaScript.
    • Підключення бібліотеки React. Сайт Reactjs.org. Все дуже просто, з JavaScript-додатка робимо React-додаток. Створення повноцінного React-компонента. Використання Babel-компілятора. Анатомія додатка та компонента користувача.
    • JSX - це препроцесор, який додає синтаксис XML до JavaScript. Вирази в JSX. Визначення тегів та їх атрибутів в JSX, дочірніх елементів. Неможливість вбудовування коду в JSX-елемент (атака ін'єкцій). Babel та перетворення елементів у JS-об'єкти. Вбудовування JS в JSX-компоненти, атрибут key унікально визначає об'єкт JSX. Реалізація методів в JSX-об'єктах. Функція React.createElement замінює html на JS.
    • Створення подій, передача подій в компоненти, робота з динамічними класами. Метод bind. Визначення логіки на рівні додатку.
    • Використання умовних операторів для відображення динамічних компонентів.
    • Використання стану state та життєвий цикл компонента. Асинхронні запити.
    • JSX - як синтаксичний цукор, тип React-компонента та область видимості, правила іменування, властивості props в JSX, spred-атрибут (...), перевірка типів з PropTypes.
    • Робота з формами, валідація форми, відправка параметрів форми REST-сервісу
    • Посилання ref і DOM, коли використовувати посилання ref, доступ до посилань, додавання посилання ref на DOM-елемент, посилання ref та функціональні компоненти, неконтрольований компонент DOM на основі тега input типу file.
    • Створення продуктивного додатка з оптимізацією продуктивності, додавання плагінів в додаток, профілювання компонентів в chrome.
    • Протягом курсу створюється web-додаток для відображення та редагування даних з бази даних Oracle або PostgreSQL, які передаються в додаток через REST-сервіси, розміщені на сервері додатка WildFly.

Реєстрація на найближчий курс

Код курсу

NT-WebAppDev

Тривалість, днів

5

Найближчі дати

Ціна, грн