Receipt date: 
24.05.2023
Bibliographic description of the article: 

Abrikosov C., Popova V.A. Static type-checking in web applications on Node.js: integration process and identification of type mismatch errors // Informacionnye tehnologii i matematicheskoe modelirovanie v upravlenii slozhnymi sistemami: elektronnyj nauchnyj zhurnal [Information technology and mathematical modeling in the management of complex systems: electronic scientific journal], 2023. No. 2(18). P. 23-32. DOI: 10.26731/2658‑3704.2023.2(18).23-32 [Accessed 17/06/23]

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

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

Article File: 
Pages: 
23
32
Abstract: 

Quality software development that has a high degree of fault tolerance under various factors is not an easy task for developers. One of the problems that significantly affects the program's quality is the type mismatch of constructs in dynamically typed programming languages. In this regard, there are tools being created and implemented that allow you to eliminate a considerable number of typing errors at the development stage. The problem of type mismatch is also relevant for web applications that are widely used to solve everyday tasks of users in various fields of activity. At the moment, JavaScript is a particularly popular programming language for creating both server-side and client-side web applications. Despite the ease of use and high development speed due to this programming language, the dynamic typing problems that are present, which the developer cannot always track, make it very difficult to use the created web applications. This is due to the high probability of errors occurring during the operation of the program, which can violate the integrity of data and stop workflows. This paper describes the process of implementing the Nest.js framework, which supports the statically typed TypeScript programming language, into the backend of a web application, which is implemented on the Node.js platform. Lists the types of errors that were found as a result of implementing 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 September 2021. Irkutsk, 2021. pp. 101–111.
  2. Karpunin A. A., Ganev YU. M., CHernov M. M. Metody obespecheniya kachestva pri proektirovanii slozhnyh programmnyh sistem [Methods of quality assurance in the design of complex software systems] Nadezhnost' i kachestvo slozhnyh sistem [Reliability and quality of complex systems]. 2015, no. 2 (10), pp. 78–84.
  3. Makkonnell S. Sovershennyj kod [Complete Code]. Moscow, «Russkaya redakciya», 2010, 896 p.
  4. Popova V. А. Primenenie metodiki staticheskogo analiza dlya vyyavleniya oshibok v programmah na dinamicheskih yazykah programmirovaniya [Application of static analysis techniques to identify errors in programs in dynamic programming languages]. Informacionnye tekhnologii. Problemy i resheniya [Information technology problems and solutions] 2022.  no. 2 (19). pp. 26–31.
  5. Popova V. А. Proektirovanie mekhanizma staticheskogo analiza dlya vyyavleniya oshibok nesootvetstviya tipov v programmah na dinamicheskih yazykah programmirovaniya [Designing a static analysis mechanism to detect type mismatch errors in programs in dynamic programming languages]. Dinamicheskie sistemy i komp'yuternye nauki: teoriya i prilozheniya (DYSC 2022) : Materialy 4-j Mezhdunarodnoj konferencii, Irkutsk, 19–22 sentyabrya 2022 goda [Dynamic Systems and Computer Science: Theory and Applications (DYSC 2022) : Proceedings of the 4th International Conference, Irkutsk, September 19-22, 2022] Irkutsk: Irkutsk State University, 2022. pp. 142–145.
  6. JSLint, The JavaScript Code Quality and Coverage Tool. URL: https://www.jslint.com/ (access date: 20.03.2023).
  7. Closure Compiler. Google Developers. URL: https:// developers .google.com/closure/compiler (access date: 20.03.2023).
  8. Node.js® is an open-source, cross-platform JavaScript runtime environment. URL: https://nodejs.org (access date: 20.03.2023).
  9. JSHint, a JavaScript Code Quality Tool. URL: https://jshint.com (access date: 20.03.2023).
  10. NestJS – A progressive Node.js framework. URL: https://docs.nestjs.com (access date: 21.03.2023).
  11. Demashov D., Gosudarev I. Node.js Frameworks Performance Comparison. The Majorov International Conference on Software Engineering and Computer Systems, December 12-13, 2019. Federal State Autonomous Educational Institution of Higher Education "ITMO National Research University", 2020. vol. 11. pp. 24–28.
  12. Popova V. А., Garmaeva D. A., Kazimirov A. S. Sozdanie informacionnoj sistemy dlya predstavleniya raspisaniya zanyatij vysshego uchebnogo uchrezhdeniya [Creating an information system for presenting the schedule of classes of a higher educational institution] Molodezhnyj vestnik IrGTU [Youth Bulletin of IrSTU] 2021. vol. 11, no. 1. pp. 21–28.
  13. Integraciya Swagger v frejmvork Nest.js [Integration of Swagger into the framework Nest.js]. URL: https://github.com/nestjs/swagger#readme (дата обращения: 22.03.2023).
  14. Biblioteka sequelize-typescript [Sequelize-typescript library]. URL: https://github.com/sequelize/sequelize-typescript#readme (access date: 22.03.2023).
  15. Dokumentaciya Passport.js [Documentation Passport.js]. URL: https://github.com/typestack/class-validator#readme (access date: 22.03.2023).
  16. Biblioteka class-validator [Class-validator library]. URL: https://github.com/typestack/class-validator#readme (access date: 22.03.2023).