Один з підходів викладання курсу «Реактивне програмування»
DOI:
https://doi.org/10.33216/1998-7927-2023-280-4-101-106Ключові слова:
реактивне програмування, reactive extensions, ReactiveX, Rx, RxJS, RxJava, Angular, React, фреймворк, Observable, Observer, Sibscriber, Spring, TypeScript, JavaScript, високонавантажені додаткиАнотація
Сучасному бізнесу необхідні програмні системи нового типу, здатні залишатися чутливими при будь-яких навантаженнях. Цю потребу можна задовольнити, використовуючі прийоми реактивного програмування; однак розробка таких систем – складне завдання, яке потребує глибокого розуміння предметної галузі. Тому для бажаючих стати класичними програмістами-кодерами, вивчення основ використання реактивного підходу при створенні високонавантажених додатків є наразі актуальною задачею.
Дисципліна «Реактивне програмування» входить у комплекс наскрізної безперервної підготовки спеціалістів за освітньою програмою «Інженерія програмного забезпечення інформаційних систем» спеціальності 121 «Інженерія програмного забезпечення». У структурно-логічній схемі навчання дисципліна вивчається на етапі підготовки фахівців освітньо-кваліфікаційного рівня «бакалавр». Вивчення дисципліни базується на знаннях, навичках та уміннях, отриманих під час вивчення студентами дисциплін «Основи програмування», «Основи комп’ютерних систем і мереж», «Технології паралельних обчислень», «Функціональне програмування».
Однак існує багато підходів до вивчення реактивного програмування. Можна вивчати більш теоретичну базу, включаючи поведінкові патерни, такі як Observer та Iterator, які лежить в основі реактивності, а можна розглядати реактивність в практичній площині, вивчаючі готові інструментарії (реактивні розширення та фреймворки), завдяки яким створюються незалежні та високопродуктивні реактивні додатки.
В статті обгрунтовується один із підходів викладання дисципліни «Реактивне програмування» у вищих навчальних закладах, та наводиться інструментарій для більш ефективного розуміння слухачами основ реактивності. При вивченні дисципліни пропонується більш практичний підхід з використанням веб-фреймворка Angular, в основі якого лежить бібліотека RxJS з її можливістю створювати реактивний код. При цьому студенти навчаться обробляти асинхронні виклики за допомогою безлічі подій та створювати веб-додатки, використовуючі популярний фреймворк Angular від компанії Google.
Популярність фреймворку обумовлена декількома важливими аспектами, головним серед яких можна назвати зручність для розробника. Програми на Angular пишуться порівняно швидко, код має зрозумілу структуру. Angular підходить для написання додатків під різні платформи, має величезну навчальну базу та чималу спільноту, до нього можна підключати сторонні інструменти та модулі, розширюючи і без того великий функціонал.
Посилання
1. Lamis Chebbi "Reactive Patterns with RxJS for Angular", Published by Packt Publishing Ltd, 2022.
2. Sergi Mansilla "Reactive Programming with RxJS". The Pragmatic Programmers, 2015.
3. Дворецький М.Л., Дворецька С.В. Розробка односторінкових вебзастосунків та адаптивних інтерфейсів. Навчальний посібник – Миколаїв, Чорноморський університет імені Петра Могили, 2020 –69 с.
4. Praseed Pai, Peter Abraham «C++ Reactive Programming: Design concurrent and asynchronous applications using the RxCpp library and Modern C++17» // Packt Publishing, 2018. 348 pages.
5. Čukić, I. (2019). Functional Reactive Programming in C++. In: Zsók, V., Porkoláb, Z., Horváth, Z. (eds) Central European Functional Programming School. CEFP 2015. Lecture Notes in Computer Science(), vol 10094. Springer, Cham. https://doi.org/10.1007/978-3-030-28346-9_2.
6. Tomasz Nurkiewicz, Ben Christensen «Reactive Programming with RxJava: Creating Asynchronous, Event-Based Applications» 1st Edition // O'Reilly Publishing, 2016. 372 pages.
7. Guide of RxJS [Online] Available from: https://rxjs.dev/guide/overview [Accessed Dec 10, 2022].
8. BampakosA., DeelemanP. Learning Angular. Packt Publishing, 2020.
9. ChivukulaS.R., Iskandar A. «Web Development with Angular and Bootstrap» // Packt Publishing, 2019.
10. Doguhan Uluca «Angular for Enterprise-Ready Web Applications» // Packt Publishing, 2020.
11. Adam Freeman, «Pro Angular. Build Powerful and Dynamic Web Apps». Fifth Edition. Publisher: Apress Berkeley, CA. 2022, 880 pages. DOI: https://doi.org/10.1007/978-1-4842-8176-5.
12. Adam Freeman «Pro Angular 9. Build Powerful and Dynamic Web Apps» // Publisher: Apress Berkeley, CA. 2020, 784 pages. DOI: https://doi.org/10.1007/978-1-4842-5998-6.
13. Adam Freeman, «Pro Angular. Learn to harness the power of modern web browsers from within your application’s code» // Second Edition. Publisher: Apress Berkeley, CA. 2017, 788 pages. DOI: https://doi.org/ DOI 10.1007/978-1-4842-2307-9.
14. M. Holmes He «Creating Apps with React Native. Deliver Cross-Platform 0 Crash, 5 Star Apps» // Publisher: Apress Berkeley, CA. 2022, 436 pages. DOI: https://doi.org/10.1007/978-1-4842-8042-3.
15. Nabendu Biswas «Beginning React and Firebase. Create Four Beginner-Friendly Projects Using React and Firebase» // Publisher: Apress Berkeley, CA. 2022, 184 pages. DOI: https://doi.org/10.1007/978-1-4842-7812-3.
16. Hari Narayn «Just React! Learn React the React Way» // Publisher: Apress Berkeley, CA. 2022, 369 pages. DOI: https://doi.org/10.1007/978-1-4842-8294-6.
17. The web development framework for building the future [Online] Available from: https://angular.io [Accessed Oct 25, 2022].