UA / EN
Освіта

Каталог вибіркових навчальних дисциплін


Інтернет-програмування Node.JS

Кафедра, яка викладає навчальну дисципліну:
Кафедра комп'ютерних наук
Короткий опис навчальної дисципліни

Node.js — середовище виконання JavaScript та платформа, яке дає можливість розробникам створювати масштабовані та високопродуктивні застосунки мовою JavaScript. Під час вивчення курсу Ви навчитесь створювати різні типи веб-застосунків засобами NodeJS. Курс охоплює фундаментальні концепції та архітектуру NodeJS: характер керований подіями, неблокуюча модель вводу-виводу, особливості асинхронної однопоточної моделі архітектури платформи. Курс ставить акцент на практичній роботі. Вивчаються сучасні особливості розробки, тестування та неперервної доставки продукту, зокрема такі суміжні технології як Express, MongoDB, Mongoose, Mocha, socket.io тощо.

Цілі та задачі навчальної дисципліни

Мета вивчення дисципліни – засвоєння студентами знань про платформу NodeJS, концепцію асинхронної моделі платформи, принципи побудови додатків з сервісно-орієнтованою архітектурою.

Ціль дисципліни – набути навичок розробки, тестування та розгортання веб-додатків засобами NodeJS та суміжних технологій.

Завдання курсу Node.js, спрямовані на всебічне розуміння предмета:

  • Знайомство та загальне розуміння платформи NodeJS: розглянути призначення, ключові особливості; дослідити переваги платформи, варіанти використання, його переваги по відношенню до традиційних серверних технологій.
  • Здійснити огляд матеріалу курсу, окреслити навчальний план та навчальні матеріали, описати теми та обгрунтувати їх доцільність, визначити цілі навчання та структуру курсу.
  • Сформувати концептуальне розуміння NodeJS: основні поняття Node.js, керована подіями архітектура, неблокуюча модель введення-виведення та середовище виконання JavaScript. Зрозуміти, як Node.js забезпечує виконання JavaScript на стороні сервера, і його переваги для створення масштабованих програм.
  • Періодичне виконання практичних вправ: кодування, проекти, що мають вирішальне значення для застосування теоретичних знань і отримання практичного досвіду роботи з Node.js.
  • Ознайомлення і дослідження модулів та фреймворків, які використовуються в розробці Node.js: http, fs, path, а також такі фреймворки, як Express.js, Mongoose, Socket.io.
  • Створення реальних веб-застосунків за допомогою Node.js: створення веб-сервера, розробка RESTful API, інтеграція з базами даних, такими як MongoDB.
  • Ознайомлення з можливостями підключення і взаємодій з базами даних, дослідження і розуміння виконання CRUD-операцій засобами MongoDB.
  • Обробка помилок і відлагодження: отримання знань про ефективні методи обробки помилок і відлагодження в Node.js: як обробляти виключення, використовувати бібліотеки журналів та інструменти відлагодження для виявлення та вирішення проблем в застосунках.
  • Використання сучасних методів та механізмів для безпеки та автентифікації.
  • Знайомство з практиками тестування та розгортання: дослідження фреймворків Mocha та Jest для написання модульних тестів. Отримання уявлень про стратегії розгортання та інструменти, такі як Docker або хмарні платформи, такі як AWS або Heroku для розгортання застосунків в робочих режимах.
  • Формування навичок неперервного навчання, участь у форумах, знайомство з блогами та ресурсами спільноти Node.js, щоб бути в курсі нових функцій, найкращих практик і нових тенденцій.
Результати навчання

В результаті проходження курсу студент отримує знання, вміння та навички з розробки, тестування та розгортання веб-сайтів та RESTful API-застосунків на платформі NodeJS з використанням сучасних модулів, менеджера пакунків,  шаблонів проектування, засобів безпеки та швидкодії.

Перелік тем

Тема 1. Огляд платформи NodeJS: концепція, можливості, подійно-орієнтовна модель
Тема 2. Фреймворк Express: можливості сервера, маршрутизація запитів, middleware-конвеєр, використання шаблонізаторів
Тема 3. MongoDB, Mongoose: розробка моделей даних, проектування зв’язків між колекціями даних, методи виконання запитів, розробка REST API
Тема 4. Механізми автентифікації та авторизації
Тема 5. Протокол Websocket. Бібліотека Socket.io. Розробка застосунків з використанням протоколу WS.
Тема 6. Огляд мови TypeScript: базові та розширені можливості. Generic-типи, декоратори.
Тема 7. Огляд фреймворку NestJS.
Тема 8. Розробка функціональних тестів з використанням фреймворку Mocha.

Система оцінювання

За курс студент отримує максимальну оцінку -- 100 балів. З них 80 балів за лабораторні роботи, 10 балів за тест і 10 балів за активність та виконання завдань на лекціях.

Форма контролю
залік