Разве не в "ориентированном на данные дизайне" вся суть ECS (DOTS для UNITY) ? Вопрос не в "красоте кода", а в том, что при хранении экземпляров объектов с всеми их параметрами - выделяется память под каждый экземпляр и доступ через указатель объекта будет дольше, чем обращение к элементам массива с параметрами. Так как прирост производительности идет исключительно за счёт ускорения доступа к переменным, связанными с объектами - DOTS и ECS применим для случаев, когда каждая система делает очень маленькую простую операцию, без сложных алгоритмов и т.д, но делает для очень-очень большого количества объектов. Я так понимаю вообще всю задумку и идею ECS.
@hardlandingtac7 ай бұрын
Вопрос производительности спорный, и обсуждался ранее, я сделал плейлист на канале "ECS против ООП". Здесь же мы решили пообсуждать именно правильную организацию кода, и что называть правильным. С учетом того, что ECS противоречит ООП, это становится не так тривиально, как у Фаулера, когда он говорит о чистоте кода при рефакторинге. Вот как это охарактеризовал мой оппонент "по удобству написания\чтения\исправления кода - вряд ли. А это в большинстве случаев важнее скорости и потребления памяти". И тут я с ним согласен, вопросы производительности - это вторично (и на канале есть видео этому посвящённое). Но теперь мои оппоненты заявляют, что сам код при ECS чем то лучше структурно. Но это не так.
@hpw-dev7 ай бұрын
я уснул пока смотрел
@Bushido_Cat7 ай бұрын
Как можно обсуждать что лучше если ты даже не шаришь за ECS?