solovyov.net

Встрягли у трішечки геморну технічно ситуацію, коли ми хочемо зробити нормальну адмінку до всяких маркетингових штук, які вміє сайт — на жаль, ми його різному навчили, але інтерфейсів не зробили і різні штуки вмикаються переписками та лайкою. :) Геморна вона у тому, що ми заюзали rule engine (“двигун правил” поки що мені не звучить нормально як термін) для вмикання, тож треба не тільки формат конфігурації придумати, а ще й компілятор того формату у власне правила для двигуна.

Ну ми й влаштували парне програмування, і вдвох — честно, я не використав це як нагоду пописати код замість складних зустрічей — зробили той компілятор. На початку в мене розуміння того, що відбувається, було на рівні “магія”. Ми використовуємо Clara Rules, і я не можу сказати, що я зара прям критично добре усе розумію, але базовий принцип наче засвоїв.

Ідея така — ти збираєш до купи відомі тобі:

• факти: id товару такий, постачальник такий, ціна така, властивості такі, користувач з Києва, вибрав оплату картою, вибрав доставку у відділення НП, і т.п. • правила: доставка на кастапост безкоштовна, якщо ти чоловік з трьома дітьми у Києві і платиш карткою Андорри • питання: чи доставка безкоштовна? чи може треба хінт для сторінки товару про те, що доставка для оплат карткою безкоштовна?

І потім у потрібних тобі місцях ти дивишся — чи є відповіді на твої питання? Воно наче обіцяє працювати швидко, плюс в нас не дуже багато фактів, тож думаю, що повинно бути доволі ефективним, тому що раніше ми схожі речі робили через купу руками написанної бізнес-логіки.

Я ще не дуже розумію, чи може DataScript + запроси туди були б достатньо ефективними та простішими для усвідомлення, чи ні. Але поки що вся ця конструкція виглядає так, що мені боляче за витрачені роки. :)

(@ tg)