Дослідження можливостей вбудованого рефакторингу у мові SWIFT

Автор(и)

  • Андрій Віталійович Ткачук Національний технічний інститут України «Київський політехнічний інститут ім. І. Сікорського», Україна https://orcid.org/0000-0002-9127-6381
  • Богдан Вікторович Булах Національний технічний інститут України «Київський політехнічний інститут ім. І. Сікорського», Україна https://orcid.org/0000-0001-5880-6101

DOI:

https://doi.org/10.15587/2706-5448.2022.266061

Ключові слова:

мова програмування Swift, рефакторинг, відкритий вихідний код, компонент sourcekit

Анотація

Об’єктом дослідження у роботі є вбудований механізм рефакторингу у мові програмування Swift. Swift набуває великої популярності за останній час, саме тому з’являється багато нових викликів, пов’язаних із необхідністю здійснювати підтримку та модифікацію вихідного коду, написаного цією мовою програмування. Існуюча проблема полягає в тому, що більш потужний механізм рефакторингу, який може бути застосований до мови Swift, є пропрієтарним і не може використовуватися іншими програмними засобами. Більше того, навіть програмні засоби рефакторингу із закритим вихідним кодом не здатні виконувати більш складні запити.

Для дослідження можливостей розширення вбудованого рефакторингу пропонується дослідити програмну реалізацію компонента sourcekit мови програмування Swift, що відповідає за роботу із «сирим» вихідним кодом, а також реалізувати додавання нової дії з рефакторингу з його використанням. Для виконання плану дослідження було обрано одну дію рефакторингу, що не була присутня в утилітах рефакторингу, а саме додавання реалізації протоколу Equatable. Було розроблено її програмну імплементацію за допомогою компонентів і ресурсів, що надаються в межах компоненту sourcekit. Для перевірки правильності та відповідності умовам розробки було створено та проведено ряд випробувань.

Встановлено, що обидва механізми рефакторингу, які підтримуються мовою програмування Swift, мають обмежений контекст і обмежену зону дії та застосування. Саме тому можливість розширення функціоналу має базуватись не на локальному рівні опрацювання коду, а на верхньому рівні, де можливо поєднати кілька вихідних файлів, що часто відбувається у проєктах. Робота була направлена на розробку власної дії рефакторингу для аналізу та отримання досконалого представлення про переваги та недоліки існуючого компоненту. Як результат, було запропоновано новий підхід до здійснення рефакторингу, що дозволить вирішити описані вище проблеми

Біографії авторів

Андрій Віталійович Ткачук, Національний технічний інститут України «Київський політехнічний інститут ім. І. Сікорського»

Аспірант

Кафедра системного проектування

Богдан Вікторович Булах, Національний технічний інститут України «Київський політехнічний інститут ім. І. Сікорського»

Кандидат технічних наук, доцент

Кафедра системного проектування

Посилання

  1. Sandoval Alcocer, J. P., Siles Antezana, A., Santos, G., Bergel, A. (2020). Improving the success rate of applying the extract method refactoring. Science of Computer Programming, 195, 102475. https://doi.org/10.1016/j.scico.2020.102475
  2. Kaur, G., Singh, B. (2017). Improving the quality of software by refactoring. 2017 International Conference on Intelligent Computing and Control Systems (ICICCS), 185–191.
  3. Saca, M. A. (2017). Refactoring improving the design of existing code. 2017 IEEE 37th Central America and Panama Convention (CONCAPAN XXXVII). doi: https://doi.org/10.1109/concapan.2017.8278488
  4. Simmonds, J. (2002). A Comparison of Software Refactoring Tools. Available at: https://www.researchgate.net/publication/2946408_A_Comparison_of_Software_Refactoring_Tools
  5. Chouchen, M., Olongo, J., Ouni, A., Mkaouer, M. W. (2021). Predicting Code Review Completion Time in Modern Code Review. ArXiv. doi: https://doi.org/10.48550/arXiv.2109.15141
  6. Inoue, K., Roy. C. K. (2021). Code Clone Analysis. Singapore: Springer. doi: https://doi.org/10.1007/978-981-16-1927-4
  7. Swift Issues. Available at: https://github.com/apple/swift/issues/
  8. Lacerda, G., Petrillo, F., Pimenta, M. S., Guéhéneuc, Y. (2020). Code Smells and Refactoring: A Tertiary Systematic Review of Challenges and Observations. ArXiv. doi: https://doi.org/10.48550/arXiv.2004.10777
  9. Swift Local Refactoring. Available at: https://swift.org/blog/swift-local-refactoring/
  10. Improving Swift Tools with libSyntax. Available at: https://academy.realm.io/posts/improving-swift-tools-with-libsyntax-try-swift-haskin-2017/
Research of possibilities of default refactoring actions in Swift language

##submission.downloads##

Опубліковано

2022-10-24

Як цитувати

Ткачук, А. В., & Булах, Б. В. (2022). Дослідження можливостей вбудованого рефакторингу у мові SWIFT. Technology Audit and Production Reserves, 5(2(67), 6–10. https://doi.org/10.15587/2706-5448.2022.266061

Номер

Розділ

Інформаційні технології: Звіт про науково-дослідну роботу