Матриця Рамсфелда як ефективний інструмент в процесі приняття рішень
Під час брифінгу, присвяченого війні в Іраку, Дональд Рамсфелд поділив інформацію на 4 категорії: відоме знане, відоме незнане, невідоме знане, невідо...
Компанія Qlik є одним із лідерів серед провайдерів BI-систем. Його головні продукти – QlikView та Qlik Sense (інструменти для аналізу та візуалізації даних, що надають можливість отримувати та досліджувати дані з різних джерел). Користувачі Qlik можуть самостійно розробляти об’єкти візуалізації (звіти, моделі даних, аналітичні програми тощо) без участі IT-фахівців. Рішення Qlik є доцільними для різних сценаріїв використання, наприклад:
Однак, цьому передує ємний процес розробки Qlik-додатка з урахуванням індивідуальних потреб і запитів бізнесу. Консольний інструмент QOps, розроблений компанією DataLabs, призначений для вирішення ряду завдань у процесі розробки, контролю версій та подальшого розгортання Qlik-додатків.
Розробка
Головною перевагою QOps для розробників є можливість використовувати раніше розроблені компоненти в одному проєкті та впроваджувати їх в інший. Розробники часто працюють паралельно на кількох проєктах і актуальною є необхідність перенесення готових фіч з одного проєкту до іншого. Традиційний підхід передбачає деякі складності, дії та значні витрати часу для реалізації перенесення. Тобто, розробник повинен зайти в попередній проєкт, який може бути на іншому сервері, знайти відповідні опорні точки, де можуть бути зміни (у скрипті, чартах, змінних тощо). QOps дозволяє дуже швидко вирішити це завдання. За допомогою цього інструменту з’являється можливість зберегти компонент, розроблений в одному проєкті, як окремий коміт і, обравши його безпосередньо в репозиторії, побачити всі необхідні зміни, а потім перенести в необхідний проєкт. Тобто, QOps є допоміжним інструментом, що дозволяє вилучати вихідні коди з додатків Qlik.
Також QOps дозволяє скоротити рутинну ручну роботу розробників під час розгортання та пошуку помилок. Наприклад, кілька розробників працюють над одним додатком, кожен із яких розробляє свою частину. Тоді для створення одного цілого проєкту розробникам необхідно домовлятися, як будуть внесені зміни від кожного розробника. Проблема також полягає в тому, що 2 окремі готові частини можуть не працювати разом. QOps автоматизує цей процес за допомогою репозиторіїв GitLab, GitHub або Bitbucket, де відбувається злиття, перевірка на наявність конфліктів та, у разі потреби, їх вирішення. Таким чином, у розробника немає необхідності тримати всі зміни в голові, щоб реалізувати певне завдання чи функціонал. Важливо, що розробник – це звичайна людина, якій властиво іноді припускатися помилок. Будь-який ручний процес, зокрема розгортання, підвищує ризик допущення помилок. QOps, зі свого боку, допомагає не допустити цього.
Ще однією перевагою QOps є можливість перенесення проєкту з одного середовища до іншого. Наразі багато організацій переходять у хмару, що дає змогу працювати з будь-якої точки. Проте, існують компанії, які передбачають роботу розробника із певного ізольованого пристрою. QOps дозволяє отримати вихідний код з одного оточення і працювати в іншому. Справедливо може виникнути питання щодо дотримання вимог безпеки. Оскільки QOps отримує лише вихідний код, а не самі дані, то порушення вимог безпеки не відбувається.
Розгортання
Завдяки QOps можливе спрощення процесу розгортання і навіть розгортання додатків без детальних знань особливостей його розробки. Це зможе виконати тімлід або проєкт-менеджер або девопс. Користувач також може використовувати плейсхолдери у вихідному коді, які будуть автоматично підставлені під час міграції вихідних кодів між середовищами або клієнтами. Це гарантує коректне автоматичне розгортання без будь-яких особливостей та змін вручну. Зі свого боку, це скорочує витрати часу на розгортання та відкриває можливість для пошуку нових ідей та/або створення нового продукту.
Контроль версій
Основним завданням системи контролю версій є запис змін у файлі або наборі файлів у певний період часу. Це дозволяє користувачеві в будь-який момент повернутися до певної версії, повернути вибрані файли або весь проєкт у попередній стан, відстежити зміни та його автора, за необхідності виправити помилки. Система контролю версій дозволяє розділити вихідний код на гілки (окремі частини розвитку продукту). У процесі розробки вони можуть зливатись (Development →Master), відокремлюватися в окремий продукт, що забезпечує повну свободу дій кожного розробника та кожної версії. Важливо, що контроль має за основу певну версію і фіксує лише зміни, а не цілу версію. QOps дозволяє отримувати код з розроблених Qlik-додатків, поміщати в репозиторій у якусь гілку, накопичувати зміни та досліджувати їх (відстежити зміни, помилки, автора змін тощо). QOps є проміжним інструментом між Qlik та сучасними системами контролю версій на основі Git.
Процедура установки QOps досить проста, проте передбачає деякі вимоги:
Приклад злиття спільної розробки Qlik Sense додатку
Створимо новий додаток в Qlik Sense. В якості моделі даних використовуємо синтетичний набір значень, який заданий у вигляді таблиці за допомогою оператора INLINE.
В частині візуалізації створюємо чернетку майбутнього дизайну листа.
Збережемо додаток і за допомогою QOps вилучимо вихідний код нового додатку та розмістимо його у GIT-репозиторій в основній гілці. Розділимо подальшу розробку додатку на 2 розробників. Їм відповідають гілки dev1 та dev2. Перший розробник займається лівою частиною листа, де він оформив стовпчасту діаграму та таблицю під нею.
У цей час другий розробник займається оформленням правої частини листа, де дані візуалізовані за допомогою кругової діаграми у форматі «пончик» та діаграми розкиду.
Після закінчення роботи кожний з розробників зробив відповідні коміти у свої гілки. Тепер по черзі виконуємо злиття основної гілки репозиторію з dev1 та dev2.
Нижче цей процес у середовищі розробки Visual Studio Code. Використання чернетки з запланованих візуальних компонентів забезпечує відсутність конфліктів та автоматичне виконання злиття.
Після злиття та подальшого складання повністю оформлений лист додатку відображатиме результати роботи обох розробників.
Більше інформації про QOps тут