Желє
Давно тут не писав, бо всьо робота. Проте з роботи виніс багато нового, чим хочу поділитись. Отож желє.
Jelly — це смачно
Наше желє має дуже приємний смак з самого початку використання. Після джанги мою голову не покидала думка про те, що моделі класно задавати по полях, що власне в желє і відбувається. Давайте для прикладу візьмемо модель категорії і попробуємо її розібрати. Думаю після цього по желє у вас питань не залишиться. Одразу скажу, що з використанням Jelly я вже підняв один доволі успішний проект, який функциклює і на нього не жаліються. Так що можете сміло і самі використовувати.
Як ви мабуть зрозуміли, ми маємо модель абстрактної категорії, яка реалізує в собі одразу дві моделі збереження ієрархічної інформації в двувимірній базі даних: Parent id та Materialized Path (пильний читач одразу зрозуміє загвоздку і побачить спільне між uri та materialized path). Так як категорії в нас обновляються не часто, то паттерн parent id цілком та повністю себе оправдовує, поставили в кеш та і ділов. Шось я відволікаюсь. В більшості ORM з parent_id мали б геморою на пару тижнів, а тут все вирішується льогко і непрінуждьонно: – parent_id стає поле BelongsTo (табличці має бути колонка, HasOne і HasMany потребують колонки в табличках, на йде зв’язок) – children власне наше HasMany, яке в’яжиться на ту ж табличку.parent_id. Вуалля, готово.
Jelly — це корисно
Розберемось з менш смачними, але дуже корисними деталями. Желєйка тісно співпрацює з рідним класом Validate, тому правила, фільтри і задаються просто в масиві, який йде аргументом до конструктора поля.
Також зверніть увагу на поля created_at і updated_at — вони проставляться ахтоматично на відповідних подіях. Не забудьте поставити format, бо можете напоротись на таку ж біду, як колись напоровся я.
Хорошою новиною є те, що наразі виявлених багів в бібліотеці немає, тому беріться до тестування, треба їх знайти.
Може вас стримати те, що не підтримується Primary Key, який би складався з двох полів, хоча поки мені така штука не траплялась. Так шо дєрзайте.
Набагато детальніше (проте не так весело) написано в Івана Броткіна. Також офіційна документація не відмінялась.
