Цей розділ пояснює ключові архітектурні рішення, які були прийняті під час розробки модуля «Рейтинг», а також обґрунтовує їх з точки зору надійності, продуктивності, масштабованості та підтримуваності системи.


F.1. Принципи архітектури модуля

Архітектура модуля «Рейтинг» побудована на таких базових принципах:

  1. Функціональна сегментація
  2. Ідемпотентність обчислень
  3. Дельтова модель оновлень
  4. Стабільність структури даних
  5. Відокремлення сирих даних від оброблених
  6. Прозорість та відновлюваність
  7. Масштабованість на майбутні модулі

Кожен із цих принципів описано нижче.

 

F.2. Функціональна сегментація

Рішення

Кожен лист модуля відповідає за свою чітку функцію:

Обгрунтування

  • Дані не змішуються між собою.
  • Легко відстежувати джерело кожної метрики.
  • Зміни в одному модулі не впливають на інші.
  • Забезпечується прозорість логіки для Замовника.


F.3. Ідемпотентність обчислень

Рішення

Функції transferProposalData() та transferPrimeriesToResults() побудовані так, що повторний запуск не змінює результатів.

Обгрунтування

  • Уникнення дублювання даних.
  • Можливість запускати функції кілька разів без ризику.
  • Стабільність при інтеграції з зовнішніми системами (ZAPIER).
  • Спрощення тестування та підтримки.

***

 

F.5. Стабільність структури даних

Рішення

Структура листів фіксована і не змінюється.

Обґрунтування

  • Код працює стабільно при будь-яких обсягах даних.
  • Зміна структури може призвести до критичних помилок.
  • Замовник отримує передбачувану модель даних.
  • Легко документувати та підтримувати.

***

 

F.7. Прозорість та відновлюваність

Рішення

Усі дані можна відновити:

  • з ZAPIER‑листів,
  • з операційних листів,
  • з дельт,
  • з архівів.

Обгрунтування

  • Система не залежить від одного джерела.
  • Можна відновити будь-який модуль без втрати інформації.
  • Підтримка стає простою та передбачуваною.

 

F.8. Масштабованість на майбутні модулі

Рішення

Архітектура дозволяє додавати нові листи, метрики та модулі без зміни базової логіки.

Обгрунтування

  • Можна додати нові типи голосувань.
  • Можна додати нові KR‑метрики.
  • Можна інтегрувати зовнішні системи.
  • Можна розширити аналітику без переписування коду.

***

 

F.11. Обґрунтування логіки оновлення Рейтингу

Рішення

Оновлення виконується через:

  • читання всіх листів,
  • формування дельт,
  • додавання дельт до Рейтингу.

Обгрунтування

  • забезпечує точність,
  • дозволяє відновити систему,
  • гарантує стабільність при великих обсягах даних,
  • дозволяє легко розширювати модель.

 

PolitRate — цифрова платформа громадянського самоврядування

Разом ми, люди, досягнемо більшого, ніж будь-яка людина могла б зробити поодинці.

Користувач

Підписка

Наш телеграм-канал t.me/politrate_net

© 2025, Otcheem. All Rights Reserved.