Skip to content
  • Home
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Lux)
  • No Skin
Collapse
Ukraine Tryzub and Canada Leaf
  1. UKRAINIANS ON THE CANADA MAP
  2. Categories
  3. Вільне спілкування
  4. (UA) IT/Tech Ukrainians in Canada

(UA) IT/Tech Ukrainians in Canada

Scheduled Pinned Locked Moved Вільне спілкування
647.4k Posts 3.6k Posters 377.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • t335448128T Offline
    t335448128T Offline
    Duck
    wrote on last edited by
    #594998
    У нас роковини голодомору, тому поляки вирішили долучитися 👍
    1 Reply Last reply
    0
  • t335448128T Offline
    t335448128T Offline
    Duck
    wrote on last edited by
    #594999
    suspilne.media/886629-pid-cas-udariv-raketami-storm-shadow-u-kurskij-oblasti-rf-zaginuli-piv-tisaci-vijskovih-kndr-ta-oficeri-rf/
    1 Reply Last reply
    0
  • t335448128T Offline
    t335448128T Offline
    Duck
    wrote on last edited by
    #595000
    Так, посилання у них всіх одне. Але Вітя казав, що це тільки Інсайдер постив, а воно уже багато де рознесли. Хоча очевидно, що фейк
    1 Reply Last reply
    0
  • T Offline
    T Offline
    Alex
    wrote on last edited by
    #595001
    это да. но суть в том, как это сделать лучше с помощью DDD. кстати апдейт. пообщавшись с коллегой выяснил как оно работать должно. у вас есть энтити - это фактически объект представляющий строку таблицы. все действия с ним производятся в специальных сервисах aggregateRoot/aggregate. запись в бд через пропихивание этого объекта в метод репозитория. работа с зависимостями - храним зависимости этого энтити внутри него самого, доступ к этим объектам через него же. например: у нас есть таблицы User и Rights, User имеет поле Rights, соотношение через rightsId (да, через джоин таблицу лучше, это для примера). Чтобы достучаться до таблицы Rights этого юзера, нужно дернуть репозиторий юзеров и взять этого юзера со всеми его зависимостями. меняем свойства объекта, кидаем в repo.save(User) и метод сам разрулит как сохранить то что мы там наменяли во всех энтити. есть проблема, что имея много внутренних зависимостей, будет потенциально много обновлений. и плохой перформанс при батч обновлениях 100-200-300 строк. мы будем исследовать перформанс, бо нам в целом важнее раскидать бизнес логику чтобы она была понятной, чем экономить пару select/update.
    1 Reply Last reply
    0
  • t130861475T Offline
    t130861475T Offline
    Dmitry
    wrote on last edited by
    #595002
    Телеграмм канал досье шпиона
    1 Reply Last reply
    0
  • T Offline
    T Offline
    Alex
    wrote on last edited by
    #595003
    замороченные методы с кодом типа того что я скинул пока что будет хранить как есть, конвертируя работу с данными в плоскость ООП больше и унося логику создания строки внутрь конструктора. есть идея юзать команды для сайд эффектов внутри конструктора энтити, бо по принципам DDD энтити не может общаться с бд напрямую.
    1 Reply Last reply
    0
  • T Offline
    T Offline
    Alex
    wrote on last edited by
    #595004
    пермишны обычно гораздо сложнее и решаются через мени ту мени.
    1 Reply Last reply
    0
  • t379434605T Offline
    t379434605T Offline
    Gwyn Bleidd 🇺🇦
    wrote on last edited by
    #595005
    Ти щойно описав деякі фундаментальні принципи ORM 😁 Lazy loading solves the 'too many queries' problem Pivot table не "краще" і не гірше, відносини через id коли one to many, через pivot table коли many to many
    1 Reply Last reply
    0
  • T Offline
    T Offline
    Alex
    wrote on last edited by
    #595006
    так никто и не сказал, что это какое то чудо и мир перевернули. фактически, мы active record делаем, только без active + привязываем все к бизнес логике нашего проекта. я больше хотел показать, как имплементация DDD выглядит. ты этого нигде не прочитаешь, все описывают лишь какая это классная идея. А вот такие подводные камни сам решай как разруливать. за лейзи лоадинг. а как это будет работать? сам объект не может обратиться потом за данными к бд. вся информация должна быть сразу передана ему на этапе конструктора.
    1 Reply Last reply
    0
  • T Offline
    T Offline
    Alex
    wrote on last edited by
    #595007
    в этом и идея DDD. типа все что происходит с бд это репо и репу можно смыкнуть только из сервиса. Энтити умеет только в бизнес логику без участия бд
    1 Reply Last reply
    0
  • T Offline
    T Offline
    Alex
    wrote on last edited by
    #595008
    хм. а что делает getPermissions()? мы не можем изнутри энтити User сделать запрос к бд.
    1 Reply Last reply
    0
  • t379434605T Offline
    t379434605T Offline
    Gwyn Bleidd 🇺🇦
    wrote on last edited by
    #595009
    я хз шо там і як можна реалізувати в js (not without looking further anyway) User entity [Many-to-Many] $permissions getPermissions() addPermission(Permission $permission) removePermission(Permission $permission) $user = $this->userRepository->find($id) або ->findOneBy([conditions]) або кастом запит there's no query to the related permissions table until $user->getPermissions() is called When/if that happens, it does SELECT * from user_permission where user_id = ... = lazy loading Є ще extra lazy loading, але мені треба бігти
    1 Reply Last reply
    0
  • t1989050175T Offline
    t1989050175T Offline
    Vladyslav Mazurak
    wrote on last edited by
    #595010
    Дякую ;)
    1 Reply Last reply
    0
  • t405219064T Offline
    t405219064T Offline
    Не Бэд Трип
    wrote on last edited by
    #595011
    Вообще можно каждый раз в аэропорту 3к просить - infinity money glitch
    1 Reply Last reply
    0
  • t1989050175T Offline
    t1989050175T Offline
    Vladyslav Mazurak
    wrote on last edited by
    #595012
    Як приїжав в Канаду за 3000 доларів, рік тому, чи можу я приїхати знову і отримати гроші?
    1 Reply Last reply
    0
  • T Offline
    T Offline
    Alex
    wrote on last edited by
    #595013
    ага, было б круто 👍
    1 Reply Last reply
    0
  • t379434605T Offline
    t379434605T Offline
    Gwyn Bleidd 🇺🇦
    wrote on last edited by
    #595014
    Можу пізніше показати повний приклад якщо цікаво, але це все стандартні штуки
    1 Reply Last reply
    0
  • t379434605T Offline
    t379434605T Offline
    Gwyn Bleidd 🇺🇦
    wrote on last edited by
    #595015
    Нічого не робить) return $this->permissions Цей конкретний приклад - теж не active record, це doctrine (data mapper orm). Entity просто описує відносини, db queries are handled by EntityManager
    1 Reply Last reply
    0
  • T Offline
    T Offline
    Serg
    wrote on last edited by
    #595016
    А що по цінам? )
    1 Reply Last reply
    0
  • T Offline
    T Offline
    Alex
    wrote on last edited by
    #595017
    глянул пример в доктрин - не знал что в пхп завезли декораторы #[...]
    1 Reply Last reply
    0

  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • Home
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups