|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
hVosttНапример, добавили 50 сущностей, с логикой, валидацией, формочками, со сложной безопасностью, с проверками, с полноценной историей с откатами, и... не написали ни строчки кода, ничего не компилировали, не перевыкладывали.крутотень. только с формочками непонятно. я как бы делал архитектуры, где формочки рисуются по заданным правилам, но все случаи не предусмотришь, типа логической компоновки элементов, зависимости свойств элементов от значений и состояний друг друга. "по умолчанию" частенько это выглядело коряво. поэтому сейчас исповедую половинчатый подход - компоненты генерируются автоматически, а компонуются в форму вручную, json-описанием, например. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 11:56 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
hVostt Например, добавили 50 сущностей... ни строчки кода... 50 сущностей уже тянет на отраслевое решение, пускай некрупное. А такое решение без кода не обойдется, иначе это просто тупые справочники. Так что цифра 50 - для эффекта. ))) И какая разница - на каком уровне абстракции вы создаете свои сущности, все равно этим занимаются _it-шники_, на откуп пользователю вы же это не отдаете. А IT-шнику как бы все равно - где жать кнопки, в VS или в "кем-то-разработанном-решении". И потом - вы в NoSQL все эти сущности храните? Не верится, что вы перестраиваете реляционную БД в согласно вашим метаданным. Вот генерация форм - это да. Если еще и по взрослому... Но "по взрослому" предполагает такой "промышленный клей" к какому-либо фронтенд-фреймоворку, что отдирание потом от оного может вылиться в очень большие затраты. Да и вообще - генерация форм ИМХО нивелируется набивкой руки в верстке. И... И как бы получается, что сложно оправдать целесообразность такого жирного слоя абстракции. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 13:31 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
hVosttНе противоречиво, EF отлично справляется со своими задачами. Но у нас уровень задач вырос, и EF уже не подходит. если ты это: hVosttВсе таблицы в SQL полностью динамические, т.е. изначально там вообще нет ни одной таблицы. то я против динамики в Модели. Это тебе не JS в динамике дерево DOM строить. Т.е. я за СУБД_First программирование. Antonariyне понял, в нем нужно пейсать текстовый sql-говнокод? У вас ведь это бизнес логика (БЛ)? Значит три варианта: - EM и уже в коллекциях без SQL вы вставляте объект (INSERT). Потом ОРМ делает insert - так и пишите как у вас в шарп коде. Там вроде нет ничего лишнего) - пишите БЛ в БД в хранимках и на клиенте её вызываете. Всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 14:23 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
упс Petro123- EM EF и уже ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 14:26 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
hVosttдля реализации Read Model. мы отошли от темы топика ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 14:28 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
hVosttViPRosну значит либо система мало должна писать, либо будет работать медленно Вообще-то пофигу сколько она будет писать. Скорость чтения у нас максимально возможная в принципе. Скорость записи тоже быстрая, так как пишутся события. Но это всё не даётся бесплатно. За всё приходится платить избыточностью, но никого это не парит. Это вообще -- последнее, что кого-то парит. 1. За счет чего скорость то у чтения? Ведь как я понимаю - при записи пишутся не данные, а команды для изменения данных? Тут возможны варианты - 1. При чтении все команды кто то исполняет. 2. На фоне кто то постоянно их исполняет и меняет данные. Если все это так, то как же разрешаются онлайн конфликты? Если не так то объясни немного - что же все таки пишется - команды - данные, только в другой области (возможно в цепочке) - .... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 14:52 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
hVosttНет никакого громадного лупапирующего типа. Это простая возможность, мы её не планировали, просто получили нахаляву :) Инфо-тип у нас тоже агрегат. 1. Такая Халява бывает только в EAV. 2. А как целостность этих агрегатов обеспечиваются? 3. Как организован лукап агрегата? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 15:04 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
Antonariyтолько с формочками непонятно. я как бы делал архитектуры, где формочки рисуются по заданным правилам, но все случаи не предусмотришь, типа логической компоновки элементов, зависимости свойств элементов от значений и состояний друг друга. "по умолчанию" частенько это выглядело коряво. поэтому сейчас исповедую половинчатый подход - компоненты генерируются автоматически, а компонуются в форму вручную, json-описанием, например. Формочки мы не рисуем, делаем генераторы формочек на основе развитой системы мета-данных. Даже JS валидация на клиенте генерируется из мета-данных, и поведение, типа поля скрываются в зависимости от других полей, или меняют своё поведение. Не на все 100% подходит, а когда не подходит, расширяем модель мета-данных и дорабатываем генераторы, или вообще другой генератор делаем. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 16:19 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
Агнец за бортом0 сущностей уже тянет на отраслевое решение, пускай некрупное. А такое решение без кода не обойдется, иначе это просто тупые справочники. Так что цифра 50 - для эффекта. ))) Код есть, но это высокоуровневый код логики в терминах бизнеса. DSL. Агнец за бортомИ какая разница - на каком уровне абстракции вы создаете свои сущности, все равно этим занимаются _it-шники_, на откуп пользователю вы же это не отдаете. А IT-шнику как бы все равно - где жать кнопки, в VS или в "кем-то-разработанном-решении". Разница колоссальная. Вот ты программист. Чтобы писать бизнес-логику, тебе надо разобраться в предметке досконально. Бросаешь свой C#, идёшь на 3 месяца к бухгалтерам, например. Или к энергетикам. Норм? Агнец за бортомИ потом - вы в NoSQL все эти сущности храните? Не верится, что вы перестраиваете реляционную БД в согласно вашим метаданным. Мы в NoSQL храним события. Всё остальное перестраивается из событий. Мета-данные тоже хранятся в событиях. Всё там хранится. Агнец за бортомВот генерация форм - это да. Если еще и по взрослому... Но "по взрослому" предполагает такой "промышленный клей" к какому-либо фронтенд-фреймоворку, что отдирание потом от оного может вылиться в очень большие затраты. Мы не делаем универсальный продукт на продажу под все возможные задачи. Мы делаем решение, соответственно реализуем только то, что нужно сейчас. Когда нужно что-то ещё, добавляем. Агнец за бортомДа и вообще - генерация форм ИМХО нивелируется набивкой руки в верстке. Зачастую это мартышкин труд. Агнец за бортомИ... И как бы получается, что сложно оправдать целесообразность такого жирного слоя абстракции. Мы к этому пришли, поэтому ничего не оправдываем :) Если бы не получали очевидного выхлопа, то и не заморачивались бы. А выхлоп есть колоссальный. Никто не хочет назад. Абсолютно никто из команды и тем более из начальства. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 16:27 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
Petro123то я против динамики в Модели. Это тебе не JS в динамике дерево DOM строить. Т.е. я за СУБД_First программирование. Я посмотрю как ты будешь ~100 таблиц создавать, и протаскивать изменения каждый день в своём СУБД first. 24 часа на работе сидеть? Окей :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 16:29 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
ViPRos1. За счет чего скорость то у чтения? За счёт того, что: 1. в SQL только актуальные данные, никаких типа помеченных как удалённые 2. в SQL данные лежат в таком виде, каком они нужны для запросов, например для некоторых случаев не надо делать JOIN, данные сразу кладутся так, чтобы не делать JOIN 3. по возможности используются индексы в ElasticSearch ViPRosВедь как я понимаю - при записи пишутся не данные, а команды для изменения данных? При записи пишутся события. События отправляются в шину событий, откуда вычитываются теми, кто в них заинтересован. SQL заинтересован обновлять и актуализировать свою БД. ViPRosЕсли все это так, то как же разрешаются онлайн конфликты? Оптимистичная блокировка. Никаких конфликтов быть не может, все события пишутся строго друг за другом. НЕ может быть ситуации когда одна и та же сущность меняется параллельно, кто-то в этой ситуации подождёт, пока не завершится первая операция. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 16:39 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
ViPRos1. Такая Халява бывает только в EAV. Или в CQRS/ES. ViPRos2. А как целостность этих агрегатов обеспечиваются? Каждый агрегат за это отвечает самостоятельно. Операции над агрегатами атомарны. ViPRos3. Как организован лукап агрегата? Достать агрегат по ID. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 16:40 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
hVosttViPRos3. Как организован лукап агрегата? Достать агрегат по ID. Агрегаты хранятся в общем хранилище агрегатов, в одной куче. Поэтому это не какой-то специальный лукап, это стандартное действие. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 16:42 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
hVosttАгнец за бортом0 сущностей уже тянет на отраслевое решение, пускай некрупное. А такое решение без кода не обойдется, иначе это просто тупые справочники. Так что цифра 50 - для эффекта. ))) Код есть, но это высокоуровневый код логики в терминах бизнеса. DSL. Агнец за бортомИ какая разница - на каком уровне абстракции вы создаете свои сущности, все равно этим занимаются _it-шники_, на откуп пользователю вы же это не отдаете. А IT-шнику как бы все равно - где жать кнопки, в VS или в "кем-то-разработанном-решении". Разница колоссальная. Вот ты программист. Чтобы писать бизнес-логику, тебе надо разобраться в предметке досконально. Бросаешь свой C#, идёшь на 3 месяца к бухгалтерам, например. Или к энергетикам. Норм? Агнец за бортомИ потом - вы в NoSQL все эти сущности храните? Не верится, что вы перестраиваете реляционную БД в согласно вашим метаданным. Мы в NoSQL храним события. Всё остальное перестраивается из событий. Мета-данные тоже хранятся в событиях. Всё там хранится. Агнец за бортомВот генерация форм - это да. Если еще и по взрослому... Но "по взрослому" предполагает такой "промышленный клей" к какому-либо фронтенд-фреймоворку, что отдирание потом от оного может вылиться в очень большие затраты. Мы не делаем универсальный продукт на продажу под все возможные задачи. Мы делаем решение, соответственно реализуем только то, что нужно сейчас. Когда нужно что-то ещё, добавляем. Агнец за бортомДа и вообще - генерация форм ИМХО нивелируется набивкой руки в верстке. Зачастую это мартышкин труд. Агнец за бортомИ... И как бы получается, что сложно оправдать целесообразность такого жирного слоя абстракции. Мы к этому пришли, поэтому ничего не оправдываем :) Если бы не получали очевидного выхлопа, то и не заморачивались бы. А выхлоп есть колоссальный. Никто не хочет назад. Абсолютно никто из команды и тем более из начальства.блин, вот бы у вас поработать, пощупать все это. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 16:54 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
Antonariyблин, вот бы у вас поработать, пощупать все это. Не всё прям так идеально и радужно :) Так как ни один CQRS/ES фреймворк нам не подошёл, нам пришлось пилить собственный полностью с нуля, а это примерно что написать с нуля EF, только по-сложнее. Поэтому нам есть ещё над чем работать. И при этом нам надо выдавать уже готовый результат для бизнеса. Поэтому всё движется потихоньку. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 17:26 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
hVostt1. в SQL только актуальные данные, никаких типа помеченных как удалённые 2. в SQL данные лежат в таком виде, каком они нужны для запросов, например для некоторых случаев не надо делать JOIN, данные сразу кладутся так, чтобы не делать JOIN 3. по возможности используются индексы в ElasticSearch У нас как-то полностью наоборот ). База в основном для записи + целостность. Актуальные данные в Elastic, он же и выдаёт готовый json, причем быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 17:46 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
hVosttPetro123то я против динамики в Модели. Это тебе не JS в динамике дерево DOM строить. Т.е. я за СУБД_First программирование. Я посмотрю как ты будешь ~100 таблиц создавать, и протаскивать изменения каждый день в своём СУБД first. 24 часа на работе сидеть? Окей :) ты перепутал ВЕБ проект и корпоративное ПО с корпоративной Моделью. В Java на основе БД делают маппинг ОРМ. У вас в шарпе по другому? Странно. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 18:13 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
ПарамонАктуальные данные в Elastic, он же и выдаёт готовый json, причем быстро. У нас тоже Elastic. Но для отчётов он плохо подходит. А нас их дохренища. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 18:13 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
Petro123ты перепутал ВЕБ проект и корпоративное ПО с корпоративной Моделью. Какую-то бредяну несёшь. При чём тут ВЕБ? Веб это всего лишь морда. Морду можно сделать и на десктопе. Petro123 В Java на основе БД делают маппинг ОРМ. Прям до слёз.. серьёзно? Petro123У вас в шарпе по другому? Шарп тут не при чём. Есть знакомая команда, которая CQRS/ES делает на Java. По сути тоже самое. При чём тут Java, C#? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 18:14 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
ПарамонhVostt1. в SQL только актуальные данные, никаких типа помеченных как удалённые 2. в SQL данные лежат в таком виде, каком они нужны для запросов, например для некоторых случаев не надо делать JOIN, данные сразу кладутся так, чтобы не делать JOIN 3. по возможности используются индексы в ElasticSearch У нас как-то полностью наоборот ). База в основном для записи + целостность. Актуальные данные в Elastic, он же и выдаёт готовый json, причем быстро. совершенно верно. База данных - это Модель НЕпротиворечивых данных. То что у него там, на работе, просто другие задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 18:15 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
hVosttПри чём тут Java, C#? При том, что базу в Java НЕ генерируют. Т.е. это DB First. Так? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 18:17 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
Petro123База данных - это Модель НЕпротиворечивых данных. У нас непротиворечивые данные это хранилища событий. Это не просто данные , это ещё то как именно эти данные образовались. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 18:18 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
Petro123При том, что базу в Java НЕ генерируют. Эт с какого перепугу? Hibernate. Flyway. Spring Roo. Etc. Если ты чего-то не знаешь, это не значит, что этого нет. Зачем делать голословные утверждения, даже рядом не находящиеся в области реальности? Petro123Т.е. это DB First. Так? Учи мат часть :) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 18:22 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
hVosttЕсть знакомая команда, которая CQRS/ES делает на Java. Поиск на это слово в Java топике дал 0 ссылок. Не наводит на мысли? Меня наводит. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 18:22 |
|
EF Core Database First -> Code First
|
|||
---|---|---|---|
#18+
Petro123, http://www.axonframework.org/ https://www.lagomframework.com/documentation/1.2.x/java/ES_CQRS.html Учись пользоваться поиском )) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.07.2017, 18:23 |
|
|
start [/forum/topic.php?fid=17&msg=39497229&tid=1349274]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
166ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
others: | 242ms |
total: | 524ms |
0 / 0 |