Receipt date: 
24.05.2023
Bibliographic description of the article: 

Абрикосов К., Попова В.А. Статическая типизация в веб-приложениях на Node.js: процесс внедрения и выявление ошибок несоответствия типов // «Информационные технологии и математическое моделирование в управлении сложными системами»: электрон. науч. журн. – 2023. – №2(18). – С.23-32 – DOI: 10.26731/2658‑3704.2023.2(18).23-32 – Режим доступа: http://ismm-irgups.ru/toma/218-2023, свободный. – Загл. с экрана. – Яз. рус., англ. (дата обращения: 17.06.2023)

Year: 
2023
Journal number: 
УДК: 
004.043
DOI: 

10.26731/2658‑3704.2023.2(18).23-32 

Article File: 
Pages: 
23
32
Abstract: 

Создание качественного программного обеспечения, которое обладает высокой степенью отказоустойчивости при различных факторах, является непростой задачей для разработчиков. К одной из проблем, которая существенно влияет на качество программ, относится несоответствие типов конструкций в динамически типизированных языках программирования. В связи с этим создаются и внедряются инструменты, которые позволяют устранять немалое количество ошибок типизации на этапе разработки.  Проблема несоответствия типов также актуальна для веб-приложений, которые нашли широкое применение для решения повседневных задач пользователей в различных сферах деятельности. На текущий момент особо популярным языком программирования для создания как серверной, так и клиентской части веб-приложений является JavaScript. Несмотря на удобство использования и высокую скорость разработки благодаря этому языку программирования, присутствующие проблемы динамической типизации, которые не всегда может отследить разработчик, существенно затрудняют использование созданных веб-приложений. Это связано с высокой вероятностью возникновения ошибок во время работы программы, что способно нарушить целостность данных и остановить рабочие процессы. В данной работе описывается процесс внедрения фреймворка Nest.js, поддерживающего статически типизированных язык программирования TypeScript, в серверную часть веб-приложения, которая реализована на платформе Node.js. Перечисляются виды ошибок, которые были найдены в результате внедрения Nest.js. 

List of references: 
  1. Balyuk A. S., Popova V. A. Static type-checking for programs developed on the platform 1C:Enterprise // CEUR Workshop Proceedings : 4, Irkutsk, 14 сентября 2021 года. Irkutsk, 2021. P. 101–111.
  2. Карпунин А. А., Ганев Ю. М., Чернов М. М. Методы обеспечения качества при проектировании сложных программных систем // Надежность и качество сложных систем. 2015. № 2 (10). С. 78–84.
  3. Макконнелл С. Совершенный код. М. : Издательство  «Русская редакция», 2010. 896 с.
  4. Попова В. А. Применение методики статического анализа для выявления ошибок в программах на динамических языках программирования // Информационные технологии. Проблемы и решения. 2022. № 2 (19). С. 26–31.
  5. Попова В. А. Проектирование механизма статического анализа для выявления ошибок несоответствия типов в программах на динамических языках программирования // Динамические системы и компьютерные науки: теория и приложения (DYSC 2022) : Материалы 4-й Международной конференции, Иркутск, 19–22 сентября 2022 года / Иркутск: Иркутский государственный университет, 2022. С. 142–145.
  6. JSLint, The JavaScript Code Quality and Coverage Tool [Электронный ресурс]. – URL: https://www.jslint.com/ (дата обращения: 20.03.2023).
  7. Closure Compiler. Google Developers [Электронный ресурс]. – URL: https:// developers .google.com/closure/compiler (дата обращения: 20.03.2023).
  8. Node.js® is an open-source, cross-platform JavaScript runtime environment. [Электронный ресурс]. – URL: https://nodejs.org (дата обращения: 20.03.2023).
  9. JSHint, a JavaScript Code Quality Tool [Электронный ресурс]. – URL: https://jshint.com (дата обращения: 20.03.2023).
  10. NestJS – A progressive Node.js framework [Электронный ресурс]. – URL: https://docs.nestjs.com (дата обращения: 21.03.2023).
  11. Demashov, D. Node.js Frameworks Performance Comparison / D. Demashov, I. Gosudarev // The Majorov International Conference on Software Engineering and Computer Systems, 12–13 декабря 2019 года. Vol. Выпуск 11. – Федеральное государственное автономное образовательное учреждение высшего образования «Национальный исследовательский университет ИТМО», 2020. P. 24–28.
  12. Попова В. А., Гармаева Д. А., Казимиров А. С. Создание информационной системы для представления расписания занятий высшего учебного учреждения // Молодежный вестник ИрГТУ. 2021. Т. 11, № 1. С. 21–28.
  13. Интеграция Swagger в фреймворк Nest.js [Электронный ресурс]. – URL: https://github.com/nestjs/swagger#readme (дата обращения: 22.03.2023).
  14. Библиотека sequelize-typescript [Электронный ресурс]. – URL: https://github.com/sequelize/sequelize-typescript#readme (дата обращения: 22.03.2023).
  15. Документация Passport.js – URL: https://github.com/typestack/class-validator#readme (дата обращения: 22.03.2023).
  16. Библиотека class-validator [Электронный ресурс]. – URL: https://github.com/typestack/class-validator#readme (дата обращения: 22.03.2023).