Тільки якісний код
Відкриті ринки програмного забезпечення (такі як Odoo S.A) з великою кількістю фрілансерів та сторонніх компаній мають спільну проблему вкрай неякісного вихідного коду продуктів. З нашого досвіду встановлення програмного забезпечення з Odoo market, більшість спричиняє помилки і конфліктує з іншими модулями Odoo, не працює взагалі, або навіть може нашкодити вашій базі даних через низькі стандарти коду розробників та відсутність систем перевірки. Нижче ми описали наш процес розробки як приклад правильно налаштованої системи. Ми також пропонуємо професійне налаштування процесу розробки для вашої компанії для покращення якості вашого коду, побудові кращих відносин з вашими клієнтами та підвищення загального іміджу вашої компанії.
Наша компанія гарантує якість програмного коду принципами побудови нашого процесу розробки. Ми використовуємо систему безперервної інтеграції (Continuous Integration, CI), побудовану за допомогою GitLab. Модель розробки, яку ми використовуємо, дозволяє мати безпечні та стабільні виробничі гілки. Для того, щоб новий фрагмент коду міг бути злитий до виробничої гілки, він має спочатку пройти серію автоматичних та ручних тестів. Ці перевірки заощаджують загальний час розробки, дозволяючи виявити баги та помилки на початкових стадіях, та забезпечують високу якість коду.
У розробці ми дотримуємось Odoo Guidelines та OCA Guidelines. Весь процес розробки відбувається на гілках розробки. Кожен розробник в нашій команді працює на своїй окремій гілці. Злиття змін безпосередньо у стабільні гілки заборонено. Всі оновлення стабільних гілок відбуваються через пул реквест та потребують проходження всіх тестів і перегляду коду. Тому туди потрапляє тільки стабільний і добре перевірений код. Загальне покриття тестами у нас складає більше 90%.
Будь-які зміни мають пройти наступні стадії перед тим як вони будуть злиті до основної гілки:
1. Автоматичний статичний аналіз коду
Цей аналіз забезпечує відповідність коду стандартам і виявлення помилок на ранніх стадіях розробки.
Ми використовуємо наступні аналізатори коду:
-
bandit - знаходить загальні проблеми безпеки в коді Python
-
pylint, flake8 - проводять серію перевірок, в основному синтаксису, для забезпечення відповідності вашого коду стандартам PEP8 . Ці перевірки покращують загальну читабельність коду та полегшують співпрацю між розробниками, спонукаючи їх до написання більш стандартизованого коду.
-
stylelint - допомагає уникнути помилок і дотримуватись конвенцій в стилях
-
check-versions - допомагає не забувати змінювати версію додатка при внесенні змін до головних гілок
2. Автоматичні тести
Ці тести запускаються в двох режимах:
-
тести на чистій базі
-
тести зі зробленими змінами (міграційні тести)
Автоматичні тести дозволяють бути впевненим, що модифікований код працює правильно в чистому середовищі.
Міграційні тести перевіряють чи не викликають зміни до коду помилок.
3. Автоматична перевірка покриття перекладів
Перевіряє покриття перекладів для мов, з якими ви працюєте. Ця перевірка дозволяє підтримувати високий рівень перекладів, роблячи невеликі частини роботи протягом всього процесу розробки замість того, щоб робити повний переклад одразу.
4. Автоматичне розгортання превʼю
Після проходження тестів автоматично запускається превʼю. Це дозволяє вашим клієнтам та не розробникам побачити та потестувати зміни на реальному продукті. На цьому етапі також відбувається ручне тестування.
5. Ручне тестування та перегляд коду
Тестувальники переглядають збірку вручну. Якщо в них не виникло зауважень щодо коду або функціональності, ця гілка буде злита у стабільну.
Наші клієнти можуть вільно зайти у будь-який час на нашу інстанцію GitLab та оцінити процес розробки, включаючи зміни в коді, CI pipelines, переглянути превʼю та іншу розробницьку діяльність.
Вам потрібно організувати професійну розробку програмного забезпечення?
Ми вам допоможемо
30
Професійна консультація досвідчених розробників Odoo з будь-яких питань, повʼязаних з кодом
500 EUR
- Базове налаштування (500 EUR)
- На нашій інфраструктурі (15 EUR / місяць)
- Доступ до пакувальника Odoo (15 EUR / місяць)