кафедра залізничного, автомобільного транспорту та підйомно-транспортних машин
Permanent URI for this community
Browse
Browsing кафедра залізничного, автомобільного транспорту та підйомно-транспортних машин by Author "Domin, M. K."
Now showing 1 - 2 of 2
Results Per Page
Sort Options
Item Аналіз методів представлення ієрархічної інформації в документо-орієнтованих базах даних.(СНУ ім. В. Даля, 2025) Дьомін, М. К.; Полупан, Ю. В.; Domin, M. K.; Polupan, Yu. V.Вибір ефективного методу представлення ієрархічної інформації у базах даних є важливим завданням при проєктуванні програмних систем, оскільки ієрархічні структури даних використовуються в багатьох сферах, зокрема у системах рекомендацій, управлінні ланцюгами поставок та аналітичних рішеннях. У статті аналізуються різні методи зберігання ієрархічних структур у документо-орієнтованих базах даних на прикладі MongoDB та порівнюється їх ефективність. При роботі з невеликою кількістю ієрархічних даних майже будь-який метод буде функціонувати з прийнятною швидкістю. Однак у випадках, коли система працює з сотнями і навіть тисячами ієрархій, неправильний вибір способу їх зберігання може суттєво вплинути на продуктивність системи, збільшити операційні витрати та ускладнити обробку даних. У рамках дослідження проаналізувані методи представлення ієрархічних структур у документо-орієнтованих базах даних, виявлені їх переваги, недоліки та визначена їх швидкодія у реальних сценаріях використання. Документо-орієнтовані бази даних, такі як MongoDB, надають гнучкі можливості для зберігання ієрархічних даних. У MongoDB можна використовувати кілька підходів до представлення ієрархій: метод збереження матриці суміжності, метод матеріалізованих маршрутів та метод вкладених множин. У статі наведені результати тестування швидкодії зазначених методів для двох сценаріїв, а саме при використанні бази даних, встановленої на власний сервер, а також при використанні бази даних хмарного сервісу Microsoft Azure. Вибір методу залежить від конкретних вимог до швидкості вибірки, задіяних операцій з ієрархіями та складності реалізації. Метод збереження матриці суміжності показав себе набагато краще, ніж при роботі з реляційними базами даних і може використовуватися в багатьох сценаріях, оскільки він є найпростішим в реалізації. Але якщо для програмної системи характерні часті вибірки ієрархії або їх частин, то можна рекомендувати використання методу матеріалізованого маршруту оскільки він працює значно швидше, хоча і є більш складним у реалізації, та потребує більше пам’яті для збереження ієрархічної інформації. Метод вкладених множин не надає відчутних переваг для найбільш типових сценаріїв роботи. Дослідження є корисним для розробників, які проєктують системи, що працюють з великими обсягами ієрархічної інформації.Item Порівняння двох підходів до Unit-тестування Angular-додатків.(СНУ ім. В. Даля, 2024) Полупан, Ю. В.; Родіонов, П. Ю.; Дьомін, М. К.; Polupan, Yu. V.; Rodionov, P. Yu.; Domin, M. K.В сучасному світі реактивні системи набирають все більшої популярності, при цьому в основі реактивно-сті є робота з асинхронними потоками даних. Тестування реактивних систем стоїть окремою задачею, в якій є низка відкритих питань, наприклад, вимірювання ефективності тестів, використовуючи той чи інший підхід до тестування. Для тестування Angular-додатків в роботі було об-рано два підходи: 1) з використанням зв’язки Jasmine+ Karma, що встановлюється за замовчуванням при створенні додатку; 2) з використанням Jest. В статті тестується Angular-додаток, який має 7тестів, 3 з яких – тести синхронних блоків коду і 4 –для асинхронних блоків. При тестуванні використовувались інструменти, що пропонує Angular із коробки та фреймворк Jest. Для вимірювання ефективності Unit-тестів, як правило, використовуються чотири критерії [2, 4]: за-хист від помилок (protection against bugs); стійкість до рефакторингу (resilience to refactoring); швидкість зворотнього зв’язку (fast feedback); простота підтримки (maintain ability). Порівнюючи різні підходи до тестування можна визначити як той чи інший підхід впливає на конкретний критерій ефективності Unit-тестів, підвищуючи його, або навпаки зменшуючи. Як відомо, на сьогодні не існує автоматичного способу вимірювання ефективності з отриманням значень для кожного критерію і тому кожен тест потрібно оцінювати окремо. Для отримання значення по критерію «швидкість зворотнього зв’язку» будемо використовувати час виконання тестів, в тому числі з визначенням відсотка покриття коду тестами при допомозі команди coverage. Цей критерій показує, що чим швидше виконується тест на етапі розробки, тим меньше часу витрачається на усунення знайдених помилок, тим самим, значно підвищуючи ефективність Unit-тестів. В результаті порівняння роботи двох фреймворків для тестування, можна зробити висновок, що при використанні Jest тести виконуються в середньому на 60% швидше за рахунок того, що система відстежує зміни файлів та не виконує непотрібних дій. При тестуванні асинхронного коду така ж тенденція (збільшення швидкості тестування на 60%) зберігається, тому Jest відмінно підходить для виконання тестування Angular-проектів, які містять багато асинхронного коду. Так як ефективність Unit-тестів залежить від швидкості зворотнього зв’язку (fast feedback), то, використовуючи Jest, ми, тим самим, значно підвищуємо ефективність Unit-тестування та всього проекту в цілому.