powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / repository & aggregate entity
305 сообщений из 305, показаны все 13 страниц
repository & aggregate entity
    #39562991
Фотография Arpanx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь сделать репозиторий для своего учебного проекта, сильно не ориентируюсь, в инете куча примеров и везде Enterprise на ровном месте, который сходу не осилю повторить.

Problem: EntityBaseRepository<Vehicle> Описание транспортного средства
EntityBaseRepository<Paramert> массив параметров бортовой системы, напряжение аккумулятора, уровень GSM сигнала и т.д.

И вот мне понадобилось на клиенте композитный тип как Vehicle + Paramert (последние/текущие данные параметра)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39562994
Фотография Arpanx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, случайно отправил не дописав сообщение.

Сейчас я в контроллере собираю этот композитный тип. Хочу сделать красивее. Но не понимаю в общем виде, как это должно выглядеть.
Как правильно делать, это должна быть еще один EntityBaseRepository<>? И типизировать его своим композитным типом?
Хотя полноценный CRUD для этого Entity не нужен, достаточно обыкновенного Read-Only GetAll()

Или сделать еще один метод в EntityBaseRepository<Vehicle> дополнив его выборкой из Parametr?

Или нужно заводить сервис и там из двух EntityBaseRepository собирать свой композитный тип?

или куда можно запрятать этот запрос который бы выдавал результат из двух Entyty? В идеале хотелось бы CQRS, хотя бы в примитивном зачаточном виде. (потому что полноценные примеры я сразу не потяну)
Спасибо.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563017
pet_trow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно сделать и как Вы предложили "заводить сервис и там из двух EntityBaseRepository собирать свой композитный тип" (DTO?). а можно и просто запрос сделать, некоторый IMyQuery, если это результат джоина таблиц БД. запрос сразу вернет DTO как проекцию
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563034
Фотография Arpanx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pet_trow, спасибо.

Сколько я читал DDD, я так понял что Repository изначально и должен выдавать Aggregate Root (доменый тип) которым оперирует наша программа. А сами Entity мне по идее в чистом виде и не нужны.
Но во всем примерах стабильно идет реализация на выдачу Entity, и стабильно нет примеров для сложных/комплексных типов.
И я вот не пойму, я неправильно понял идею? Или это в примерах
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563049
pet_trow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arpanxpet_trow, спасибо.

Сколько я читал DDD, я так понял что Repository изначально и должен выдавать Aggregate Root (доменый тип) которым оперирует наша программа. А сами Entity мне по идее в чистом виде и не нужны.
Но во всем примерах стабильно идет реализация на выдачу Entity, и стабильно нет примеров для сложных/комплексных типов.
И я вот не пойму, я неправильно понял идею? Или это в примерах

сильно вариативно это DDD от проекта к проекту. "А сами Entity мне по идее в чистом виде и не нужны" - да, ибо это уже БД: извлечь по Id, сохранить, удалить. а вот запросы - это отдельная тема, с бизнес-логикой. тут репо не нужен совсем.

Я не спец в DDD (но мнение имею :)) Aggregate Root - это вообще перпендикулярно каким-либо репо. это несколько более высокий уровень абстракции.

Давайте позовем hVost
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563060
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArpanxХочу сделать красивее.
Сначала делают до конца пример.
Это методика для обучения.
Дайте ссылку какой пример делаете или откуда списываете.
Там ведь нет наверняка в ГУИ голых сущностей из базы?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563065
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arpanx,
Ну и не забывайте, что технологии меняютя в 3-4 года.
Счас вон, oData и Net Core подоспели).
Не говоря о чистом js клиенте.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563088
Фотография Arpanx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну у меня как раз связка такая ASPNet.Core 2.0 + ORM EF PostgreSQL + Angualr 5.0 и все это работает на Linux Ubuntu

Репозиторий делаю по этому примеру Как самый простой. И тут сразу возник вопрос как, а вернее где и кто это должен реализовать формирование комплексного типа. (построить дерево на основании данных из двух таблиц)

В том то и проблема что не могу найти хороший пример с которого можно было бы содрать. Есть хорошие примеры по Clean Architecture, Гексагональная архитектура, CQRS но они настолько сложные что не могу осознать и повторить у себя, хотя бы до стадии чтобы оно компилировалось.

Сейчас такой банальный вопрос, куда спрятать Join двух Entity и формирование DTO. А еще лучше посмотреть на код.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563098
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arpanx,
Ангуляр это значит бизнем логика и контроллёры в JS.
C# тут только тупой REST сервис из БД.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563100
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArpanxJoin двух Entity в ангуляре
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563101
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arpanx,
Ещё, ангуляр это приложение одной страницы. Я бы советовал не этого типа для обучения.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563110
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arpanx,
Net MVC 5
же у вас есть.
Обязательно раскуси MVC с его POST и перерисовкой страницы. А не AJAX.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563196
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arpanxpet_trow, спасибо.

Сколько я читал DDD, я так понял что Repository изначально и должен выдавать Aggregate Root (доменый тип) которым оперирует наша программа. А сами Entity мне по идее в чистом виде и не нужны.
Но во всем примерах стабильно идет реализация на выдачу Entity, и стабильно нет примеров для сложных/комплексных типов.
И я вот не пойму, я неправильно понял идею? Или это в примерах

Entity Framework, как и любая другая ORM, не дадут реализовать DDD в полной мере. Потому как с одной стороны, действительно, можно правильно спроектировать модель данных и получить нужные Aggregate Root, с которыми можно работать очень похожим образом на работу с доменом. С другой стороны, нет инкапсуляции, и нет никакой возможности нормально эту инкапсуляцию реализовать, поэтому это всё сплошная мишура. Остаётся только одно единственное понятие: Entity, отсюда и название. Не нужно искать стабильных примеров организации DDD на ORM, их попросту нет.

Entity Framework даёт возможность очень быстро работать с моделью данных со строгой типизацией, что даёт возможность применять LINQ, использовать атрибуты и мощный слой рефлексии поверх всего этого. Но любая динамика даст трещину. Заходите EAV? Приехали. Захотите динамические подзапросы? Привет, костыли на Expandinq expressions!

Идея здесь простая: если у вас имеется конечная хорошо нормализованная модель, подверженная изменениям только в рамках нормализации, можете пилить, и очень быстро выдавать стабильный, понятный и хорошо сопровождаемый результат. Зачастую, этого хватает.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563197
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArpanxСейчас такой банальный вопрос, куда спрятать Join двух Entity и формирование DTO. А еще лучше посмотреть на код.

Зачем их прятать? JOIN это уже само по себе нарушение нормализации, если всё правильно нормализовано и вы живёте в идеальном мире, то JOIN не нужен, до любой сущности можно добраться через сущность, являющейся Aggregate Root
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563198
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Ну и не забывайте, что технологии меняютя в 3-4 года.

Это неверное утверждение. Технологии не меняются, появляются новые, путём эволюции существующих, или переосмысление и эксперименты. Нельзя закладываться на технологии, которых ещё нет, поэтому помнить об этом бессмысленно совершенно.


Petro123Счас вон, oData и Net Core подоспели).

OData «подоспела» ещё в 2017 году
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563199
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttPetro123Счас вон, oData и Net Core подоспели).

OData «подоспела» ещё в 2017 году

*в 2007
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563200
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArpanxНу у меня как раз связка такая ASPNet.Core 2.0 + ORM EF PostgreSQL + Angualr 5.0 и все это работает на Linux Ubuntu

Репозиторий делаю по этому примеру Как самый простой. И тут сразу возник вопрос как, а вернее где и кто это должен реализовать формирование комплексного типа. (построить дерево на основании данных из двух таблиц)

В том то и проблема что не могу найти хороший пример с которого можно было бы содрать. Есть хорошие примеры по Clean Architecture, Гексагональная архитектура, CQRS но они настолько сложные что не могу осознать и повторить у себя, хотя бы до стадии чтобы оно компилировалось.

Хороших примеров в вакууме не существует. Когда мы проектировали архитектуру нашего последнего и текущего проекта на DDD / CQRS, выяснилось, что имеющиеся реализации фреймворков, библиотек, решений, проектов — нам не подходит ни один, даже на 20%. Но из каждого можно извлечь удачные решения, блестящие обобщения и паттерны. Было прочитано тонна литературы, статей, исследований, изучен досконально код кучи проектов, включая на других языках, и путём изысканий, набития шишек, кучи «первых блинов», был рождён рабочий проект, который даже после всех мытарств не является образцом для подражания и рефакторится раз в 2 недели набегами.

А вы хотите «хороший пример». Максимум что можно найти хорошего, это реализацию какого-нибудь алгоритма. Который влезет на один экран. Далее нужно собирать бест практикс для каждого конкретного случая, накапливать опыт, читать и кодить, кодить, кодить.

Нет никакого примера, который будет ответом на ваши вопросы.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563220
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНет никакого примера, который будет ответом на ваши вопросы.
Со всем согласен кроме этого.
Аффтар! Ответом на ваш вопрос будет Hello wold.
Добвлю imho что это MVC hello world, если вы пишите не кандидатскую или докторскую.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563583
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123hVosttНет никакого примера, который будет ответом на ваши вопросы.
Со всем согласен кроме этого.
Аффтар! Ответом на ваш вопрос будет Hello wold.
Добвлю imho что это MVC hello world, если вы пишите не кандидатскую или докторскую.

MVC hello world больше вредны, чем полезны.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563595
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
Тааааак))).
Давай другой на MVC и без пессимизма).
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563597
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Я имеё ввиду пример веб проекта с ГУИ от Net.
Неужели нет такого.
Ангуляр это не базовый школьный пример для шарп программиста.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563602
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
VS 2015 меню - новый веб сайт.
Итого 4 типа проекта.
Так что без пессимизма).
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563748
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Petro123,
Я имеё ввиду пример веб проекта с ГУИ от Net.
Неужели нет такого.
Ангуляр это не базовый школьный пример для шарп программиста.

Не, нету
Проблема школьных примеров, что реальные проекты потом делаются именно вот так, по-школьному.


Petro123VS 2015 меню - новый веб сайт.
Итого 4 типа проекта.
Так что без пессимизма).

Ну начать можно с этого, конечно. Но в итоге всё полностью меняется, так или иначе :)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39563775
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
Ну дак понятно, что приходя в ВУЗ вам скажут забудьте школу))))).
Удачи аффтару.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39564263
Фотография Arpanx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt спасибо за ценные замечания, как раз от метров и хотел услышать соображения на тему.

Спрятал свой Join в один из методов репозитория, работает, вроде красиво. Но появились зависимости от типов которые определены снаружи.
И то что репозитой возвращает DTO.

Вынес это все в отдельный сервис, работает. Но нехватало гибкости который мне давайл DBContext. Поэтому изначально все сделал на нем.

Потом решил все таки переделать на работу сервиса от репозитория
Возвращаю из репозитория в сервис вот так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public virtual IEnumerable<T> AllIncluding(params Expression<Func<T, object>>[] includeProperties)
        {
            IQueryable<T> query = _context.Set<T>();
            foreach (var includeProperty in includeProperties)
            {
                query = query.Include(includeProperty);
            }
            return query.AsEnumerable();
        }




В сервисе пытаюсь сделать

Код: c#
1.
2.
3.
4.
5.
_vehicleRepository.AllIncluding(x => x.DepartmentVehicles, x => x.VehicleParameters).ToList();

var department = _vehicleRepository;
foreach (var d in department)
       {}



Код: c#
1.
foreach statement cannot operate on variables of type '?' because '?' does not contain a public definition for 'GetEnumerator'



Generic Repository вроде делали умные люди, чего-то не хватает. Разбираюсь.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39564277
Фотография Arpanx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arpanx, ой ошибку отправил.

Код: c#
1.
var department = _vehicleRepository.AllIncluding(x => x.DepartmentVehicles, x => x.VehicleParameters).ToList();



Вот теперь все работает на прямую из репозитория. Всем спасибо.

А Join двух Entity в DTO это предназначено уже для клиента на Ангуляре. Там с ним уже никаких манипуляций не проводят. Только read-only отображают в tree-table.
Я же думаю нормально на сервере уже формировать данные в нужном формате, а не склеивать их на клиенте?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39564327
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arpanxна Ангуляре. Там с ним уже никаких манипуляций не проводят.
У вам должен быть REST на бэке, чтобы прицепить потом любой фронт. Хоть ангуляр, хоть андроид.
И бизнес логика Либо ангуляре Либо на бэке.
Что у вас под словом манипуляции)) мы не знаем.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39564331
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArpanxЯ же думаю нормально на сервере уже формировать данные в нужном формате, а не склеивать их на клиенте?
Ангуляр это утром загрузил и 8 часов ходишь по страницам, работаешь.
Как можно склеить сервере то что понадобится вечером?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39564343
Фотография Arpanx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Хм, звучит логично. У меня в принципе REST и есть. Но похоже кривой.

Сделать REST Endpoint как продожение Entity из репозитория в принципе это правильное решение.
Щас, надо подумать как это будет работать со стороны клиента. Спасибо за дельное замечание.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39564354
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arpanx,
Замени ангуляр.
Мы в топике шарп. А ангуляр для топика js программист.
Ты не потянешь боливар за двоих.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39564642
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArpanxGeneric Repository вроде делали умные люди, чего-то не хватает. Разбираюсь.

Generic Repo подойдёт только, если у вас модель данных отлично нормализована, таким образом, что вам никогда не понадобится JOIN между двумя корнями агрегатов, если они вообще у вас получатся выраженными.

Так что, если вам «чего-то нехватает», то здесь одно из двух:

1. Плохо нормализованная модель, перепроектировать
2. Бизнес не укладывается в нормализацию модели, вам не подойдёт Generic Repo.

Ещё 3 вариант: Generic Repo, как стандартная реализация, делаете для конкретных случаев конкретные интерфейсы репо с конкретной реализацией, где выжимаете весь power из своего DbContext-а.

И ещё 4 вариант: Query Object (QO), или какие-то вариации спецификаций (которые на мой взгляд чуть менее, чем полностью ущербны). Но это уже досвидос genrepo и вообще от репо остаётся только add/update/remove, но ни в коем случае никаких построений запросов.

QO можно смонстрячить на LINQ, через Expression tree, это опять же ковыряния, костыли, на любителя (например, местный гуру Алексей К любитель LINQ).

Любой вариант хорош, применительно к своей задаче.

Я делал genrepo много раз, но в ограниченном контексте, большую систему строить на этом я бы не стал никогда и даже за большие деньги. Ну может за очень большие бы и стал.. нанял бы пару студентов, пусть бы долбались
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39566083
pet_trow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttArpanxGeneric Repository вроде делали умные люди, чего-то не хватает. Разбираюсь.

Generic Repo подойдёт только, если у вас модель данных отлично нормализована, таким образом, что вам никогда не понадобится JOIN между двумя корнями агрегатов, если они вообще у вас получатся выраженными.

Так что, если вам «чего-то нехватает», то здесь одно из двух:

1. Плохо нормализованная модель, перепроектировать
2. Бизнес не укладывается в нормализацию модели, вам не подойдёт Generic Repo.

Ещё 3 вариант: Generic Repo, как стандартная реализация, делаете для конкретных случаев конкретные интерфейсы репо с конкретной реализацией, где выжимаете весь power из своего DbContext-а.

И ещё 4 вариант: Query Object (QO), или какие-то вариации спецификаций (которые на мой взгляд чуть менее, чем полностью ущербны). Но это уже досвидос genrepo и вообще от репо остаётся только add/update/remove, но ни в коем случае никаких построений запросов.

QO можно смонстрячить на LINQ, через Expression tree, это опять же ковыряния, костыли, на любителя (например, местный гуру Алексей К любитель LINQ).

Любой вариант хорош, применительно к своей задаче.

Я делал genrepo много раз, но в ограниченном контексте, большую систему строить на этом я бы не стал никогда и даже за большие деньги. Ну может за очень большие бы и стал.. нанял бы пару студентов, пусть бы долбались

нехилый разброс :)
hVostt, а Вы не могли бы, ну, чисто по-опыту (пожалуйста!!!!), свое видение/применимость DDD тезисно обозначить? я, например, как и ТС, тоже в поисках этого "тут же DDD!!!". но пока его не нахожу за "деревьями" вот этих всех Вами перечисленных вариантов: "леса не вижу"
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39566218
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pet_trowнехилый разброс :)
hVostt, а Вы не могли бы, ну, чисто по-опыту (пожалуйста!!!!), свое видение/применимость DDD тезисно обозначить? я, например, как и ТС, тоже в поисках этого "тут же DDD!!!". но пока его не нахожу за "деревьями" вот этих всех Вами перечисленных вариантов: "леса не вижу"

А чё его искать? Это просто дизайн архитектуры и прикладной логики в терминах, приближённых к бизнесу. За подробностями лучше обратиться к тематической литературе :)

Ну или что-то конкретное можно обсудить..
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39566379
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pet_trow. но пока его не нахожу за "деревьями
Это когда, вместо голых сущностей (класс копия таблицы) делают ещё классы сверху чтобы не трогать классы сущности внизу.
Увидели такое в лесу? ).
"Лекарство имеет побочные эффекты."
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39566990
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Это когда, вместо голых сущностей (класс копия таблицы) делают ещё классы сверху чтобы не трогать классы сущности внизу.

это называется DTO
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39567521
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttPetro123Это когда, вместо голых сущностей (класс копия таблицы) делают ещё классы сверху чтобы не трогать классы сущности внизу.

это называется DTO
приехали.
DTO ещё выше.
Я о таких паре классов:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Сущность Юзверь {
   int ID
   date ДатаРождения
}

Сущность ЮзверьБизнесЛогика {
    int ID
    public bool ЕстьЛиЗадолженность(){
      ....
    {
}
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39567531
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123приехали.
DTO ещё выше.
Я о таких паре классов:

любой класс, созданный для того, чтобы гонять данные между подсистемами может по праву считаться DTO
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39567544
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttPetro123приехали.
DTO ещё выше.
Я о таких паре классов:
любой класс, созданный для того, чтобы гонять данные между подсистемами может по праву считаться DTO
неа)
DTO это простейший класс без методов бизнес-логики.
По факту тот JSON если есть то можно обойтись без DTO.
Или передача инфы через URL еси есть, то тоже можно DTO выкинуть.
..
Мы вообще тут про агрегацию сущностей для бизнес логики НА сервере.
IMHO
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39567546
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttчтобы гонять данные
он не для гонять
Код: c#
1.
2.
3.
4.
5.
6.
Сущность ЮзверьБизнесЛогика {
    int ID
    public bool ЕстьЛиЗадолженность(){
      ....
    {
}
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39567576
Фотография Arpanx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего будете кидаться тапками, но решил пока делать так:

DBContext -> Service -> (тут на выходе композитные типы ) -> WebApi Comtoller/REST

Т.е. на выходе REST будут мои доменные типы которыми оперирует моя программа на клиенте.
От репозитория пока отказался, не получается с репозиторием делать тоже что с DBContext.

Параллельно смотрю на реализацию CloudFireStore облачная база данных noSQL от гугла. Там есть своя красота. За данными не нужно ходить, они сами к вам на клиента постучаться, можно подписываться на события в базе. А денормализацию можно рассматривать как композитный тип. Только за целостностью базы приходится самому следить с помощью кода на клиенте.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39567582
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArpanxОт репозитория пока отказался, не получается с репозиторием делать тоже что с DBContext.Есть мнение, что DbContext и есть репозитарий.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39567597
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArpanxDBContext -> Service -> (тут на выходе композитные типы ) -> WebApi Comtoller/REST
Есть мнение, что если у вас современная модель БД с грамотной денормализацией, то можно сразу сущности БД в виде классов выставлять в REST.
Я не в курсе, есть ли в MS REST фреймворк (в Java он есть), тогда никакие сервисные слои и прослойки не нужны.
При REST технолгии вся логика на клиенте. А СУБД-импотент тупо передаёт ДАННЫЕ.

Arpanxбаза данных noSQL
это оффтоп
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39567814
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123DTO это простейший класс без методов бизнес-логики.

видимо ты путаешь с POCO? )

DTO может быть даже обычным Dictionary, и у нас, кстати, в текущем проекте в основном именно такие DTO, никаких статических классов не может быть и в помине, если у тебя все модели создаются пользователями.


Petro123По факту тот JSON если есть то можно обойтись без DTO.

JSON это тоже DTO
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39567816
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КArpanxОт репозитория пока отказался, не получается с репозиторием делать тоже что с DBContext.Есть мнение, что DbContext и есть репозитарий.

DbContext это и репозиторий, и UOW, и кеширование, и валидация, и генерация SQL, и миграции и...
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39567851
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttвидимо ты путаешь с POCO? )
нет)
Как только их не называют))
https://ru.wikipedia.org/wiki/POJO
это в Java

hVosttDTO может быть даже обычным Dictionary
не понял зачем.
Мы передаём справочник через веб на другой континет. Зачем логику списка...уникальности.....вставки...удаления тащить через океан?
Класс Dictionary ИМЕЕТ ЛОГИКУ!
hVosttесли у тебя все модели создаются пользователями.
вопрос где она создаётся. На сервере или клиенте в ангуляре.
Понятно, что у тебя предметка на работе сложнее.....много динамики.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39567855
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttJSON это тоже DTO
)))
угу. А палка это дерево из одной ветки)).
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39568463
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123не понял зачем.
Мы передаём справочник через веб на другой континет. Зачем логику списка...уникальности.....вставки...удаления тащить через океан?
Класс Dictionary ИМЕЕТ ЛОГИКУ!

Затем, что объект с набором [свойство=значение,...], это по сути и есть словарь.
Ты его итак потащишь через "океан" в каком-то виде. Если этот вид Dictionary, а точнее IReadOnlyDictionary или ImmutableDictionary -- это зашибись вообще!

Мы же обсуждаем, что класс в C# это целая хренотень со ссылкой на тип, и контекстом синхронизации под пристальным взглядом GC? Как словарь, так сразу «логика», а экземпляр класса это что, хрен собачий?

Petro123)))
угу. А палка это дерево из одной ветки)).

В определении DTO ни разу не сказано, что это класс. Это любой объект без поведения. Под поведением обычно понимают бизнес-логику, а не базовые алгоритмы, необходимые для функционирования самого объекта.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39568823
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЗатем, что объект с набором [свойство=значение,...], это по сути и есть словарь.
дак всё таки, объект-класс или JSON со строкой?

hVosttЕсли этот вид Dictionary, а точнее IReadOnlyDictionary или ImmutableDictionary -- это зашибись вообще!
не согласен. Один сервер и тыЩи клиентов. Какие интерфейсы?

hVosttВ определении DTO ни разу не сказано, что это класс.
моё имхо в том, что это объект в памяти для дальнейшей трансформации в JSON.
Иногда ЭТО вообще не нужно и устарело.

hVosttЭто любой объект без поведения. Под поведением обычно понимают бизнес-логику, а не базовые алгоритмы, необходимые для функционирования самого объекта.
нет. Не люблю мешать понятия. Мухи отдельно....
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39568971
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123дак всё таки, объект-класс или JSON со строкой?

ну объект какой-то, из которого можно извлечь данные

Petro123не согласен. Один сервер и тыЩи клиентов. Какие интерфейсы?

ну пусть будет, контракт

Petro123моё имхо в том, что это объект в памяти для дальнейшей трансформации в JSON.
Иногда ЭТО вообще не нужно и устарело.

словарь отлично трансформируется в JSON и обратно :)

Petro123нет. Не люблю мешать понятия. Мухи отдельно....

у каждого свои загоны
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39568997
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttну пусть будет, контракт
Тогда приводи примеры что за волшебные слова "контракт" мы посылаем со списком городов
ИндексПочты Имя
hVosttPetro123моё имхо в том, что это объект в памяти для дальнейшей трансформации в JSON.
Иногда ЭТО вообще не нужно и устарело.

словарь отлично трансформируется в JSON и обратно :)
угу. Осталось выяснить какой толщины должен быть список городов чтобы обозвать его не DTO а бизнес объект.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39569089
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Тогда приводи примеры что за волшебные слова "контракт" мы посылаем со списком городов
ИндексПочты Имя

пришлём вам список городов в формате CSV, с колонками ИндексПочты, Имя

— контракт!


Petro123угу. Осталось выяснить какой толщины должен быть список городов чтобы обозвать его не DTO а бизнес объек

и чем характеризуется по-твоему «бизнес-объект»? что это вообще за зверюга такая?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39569125
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttпришлём вам список городов в формате CSV, с колонками ИндексПочты, Имя
— контракт!
тогда и спорить не о чём.
Если это про это)
автор Если этот вид Dictionary, а точнее IReadOnlyDictionary или ImmutableDictionary

hVosttPetro123угу. Осталось выяснить какой толщины должен быть список городов чтобы обозвать его не DTO а бизнес объек

и чем характеризуется по-твоему «бизнес-объект»? что это вообще за зверюга такая?
21023416
Получается у нас консенсус))
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39569171
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 21023416
Получается у нас консенсус))

угу
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570637
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ArpanxDBContext -> Service -> (тут на выходе композитные типы ) -> WebApi Comtoller/REST
Есть мнение, что если у вас современная модель БД с грамотной денормализацией, то можно сразу сущности БД в виде классов выставлять в REST.И где в этой современной модели бизнес-логика?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570638
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И правильно ли я понял, что грамотная денормализация - это когда выставляются в REST именно денормализованные сущности БД?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570649
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Известно, что при rest на клиенте, напр. ангуляре.
...
Сущность в ОРМ это таблица. А таблица лучше денормализована по стандартам бд проектирования.
Цепочка правил.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570650
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Боюсь что денормализованная сущность это оксюморон)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570651
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

спасибо, то есть я правильно понял, что Вы какую-то фигню предлагаете :)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570652
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123денормализована по стандартам бд проектирования
Нормализация по стандартам - это понятно: приведение к нормальным формам, коих шесть.

А что такое денормализация по стандартам? Примеры стандартов у Вас есть?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570703
Фотография Arpanx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИ где в этой современной модели бизнес-логика?
Я бизнес логику я не собирался тащить на клиента. Пусть там и остается на слое сервисов сервера. Но это бизнес-логика.
А логику доменного уровня, да тогда поручить клиенту, пусть клиент сам этим занимается, не дергая сервер.

Но это конечно так хотелось бы, в реальных условиях еще не проверял.

Ну если использовать REST по его назначению, как трансферт состояний.
Есть доменный тип "корзина покупателя со списком товаров в корзине"
Есть доменый тип "товар № + данные для навигации по этому списку"

Вариант1)
Клиент отправляет команды серверу добавить в корзину/удалить/посчитать коммисию.
В ответ получает новое состояние корзины. Такой вариант мне нравиться, логика на клиенте минимальная.
Единственное что трафик будет, и самое неприятное для пользователя это задержки в работе интрфейса.


Вариант2)
Доверить клиенту самому вставлять, удалять товары в корзину, а на сервер присылать уже готовую корзину/order со списком товаров.
Вот тут пусть и начинается бизнес-логика.

Хотя что делать когда нужно посчитать комиссию и скидки в корзине, не понятно это можно считать еще доменной логикой, или это уже бизнес логика. И если каждый раз чтобы пересчитать комиссию отправлять корзину на сервер, это выражается в вариант №1.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570714
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArpanxskyANAИ где в этой современной модели бизнес-логика?
Я бизнес логику я не собирался тащить на клиента. Пусть там и остается на слое сервисов сервера. Но это бизнес-логика.
А логику доменного уровня, да тогда поручить клиенту, пусть клиент сам этим занимается, не дергая сервер.

Но это конечно так хотелось бы, в реальных условиях еще не проверял.

Ну если использовать REST по его назначению, как трансферт состояний.
Есть доменный тип "корзина покупателя со списком товаров в корзине"
Есть доменый тип "товар № + данные для навигации по этому списку"

Вариант1)
Клиент отправляет команды серверу добавить в корзину/удалить/посчитать коммисию.
В ответ получает новое состояние корзины. Такой вариант мне нравиться, логика на клиенте минимальная.
Единственное что трафик будет, и самое неприятное для пользователя это задержки в работе интрфейса.


Вариант2)
Доверить клиенту самому вставлять, удалять товары в корзину, а на сервер присылать уже готовую корзину/order со списком товаров.
Вот тут пусть и начинается бизнес-логика.

Хотя что делать когда нужно посчитать комиссию и скидки в корзине, не понятно это можно считать еще доменной логикой, или это уже бизнес логика. И если каждый раз чтобы пересчитать комиссию отправлять корзину на сервер, это выражается в вариант №1.У нас реализован вариант №1.

Но вот мой вопрос был адресован не Вам и Вы посути на него не ответили, а ушли в сторону :)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570715
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arpanx,

и может я что-то упустил, но что Вы включаете в понятие "логика доменного уровня"?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570739
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAPetro123,

спасибо, то есть я правильно понял, что Вы какую-то фигню предлагаете :)
пожалуйста. Я уже понял, что ты фигню спросил.
Денормализация есть у БД. А у сущностей нету.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570741
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAкоих шесть
зачем нам углубляться. Это оффтоп. И ты любишь свернуть туда где светлее. В полемику.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570743
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arpanxи самое неприятное для пользователя это задержки в работе интрфейса.
конкретнее.
0,1сек задержки?
Не задержками определяется где манипулировать корзиной - в JS или в C#.
Главное чтобы безопасность по цифрам деньгам была в корзине.
Интерфейс не тормозит в обоих случаях.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570746
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArpanxХотя что делать когда нужно посчитать комиссию и скидки в корзине, не понятно это можно считать еще доменной логикой, или это уже бизнес логика. И если каждый раз чтобы пересчитать комиссию отправлять корзину на сервер, это выражается в вариант №1.
Мы в ветке шарп или JS?
Комиссию, скидки и что угодно оба профи программиста сделают хоть на сервере, хоть на клиенте.
Локальная сеть: web-браузер или десктоп (1...120,121,122,123)
20532804
А так, сама корзина всегда на сервере хранится в сессии клиента.
Т.к. сам рест не имеет состояния.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570749
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAPetro123пропущено...
Есть мнение, что если у вас современная модель БД с грамотной денормализацией, то можно сразу сущности БД в виде классов выставлять в REST.И где в этой современной модели бизнес-логика?
Да. Я посыпаю голову пеплом и говорю что описАлся и добавил НЕ к слову нормализация.
Если ты это сразу не понял, то тебе тоже минус. (шутка).
Надеюсь теперь тебе всё понятно?
Удачи!
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570752
Фотография Arpanx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA, Ну я определяю для себя как логика которая оперирует только внутренними данными доменного типа и вычисляет внутренне состояние. Валидация внутреннего состояния и выставления внутренних переменых/флагов. Например если в корзине срок доставке меньше чем 48 часов, то домен выставляет флаг послать СМС, если больше 48, выставляем флаг послать е-маil.
А бизнес-логика когда обрабатывает заказы, уже не лезет во внутренности домена и не пересчитывает внутренее состояние.

Все равно получается размазывания логики между сервером и клиентом.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570758
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArpanxА бизнес-логика когда обрабатывает заказы, уже не лезет во внутренности домена и не пересчитывает внутренее состояние.
Она не может "не лезть". Кто ей запретит или программисту, если в сервисном слое все ссылки и объекты БЛ доступны?
Там нет ссылок только на голые сущности а ля таблички в БД (слой хранения).
ArpanxВсе равно получается размазывания логики между сервером и клиентом.
Смотря что клиент). Если клиент тонкий браузер, то никак ничего не размазать. Если REST+ангуляр, то контроллёр в JS.
Контроллеры AngularJS
https://metanit.com/web/angular/2.1.php
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570797
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123А у сущностей нету.

Серьёзно?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570803
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttPetro123А у сущностей нету.
Серьёзно?
Мне не веришь, Википедию открой.
Нормализация возникает в реляционной модели.
Можно конечно спорить, что первично, курица или яйцо)))
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570805
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Наверно, как всегда, MS свистнул это понятие и растиражировал у себя в документации. Ведь он один за всех и во всех лицах.
БД, ОРМ, VS, BL,, SERVICE, SERIALIZE
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570807
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAPetro123,

спасибо, то есть я правильно понял, что Вы какую-то фигню предлагаете :)
пожалуйста. Я уже понял, что ты фигню спросил.
Денормализация есть у БД. А у сущностей нету.Я поинтересовался двумя вещами.
1. если "сразу сущности БД в виде классов выставлять в REST", то где же будет бизнес-логика?
2. что такое денормализация по стандартам? Примеры стандартов у Вас есть?

Где же фигня в этих вопросах?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570809
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Денормализация есть у БД. А у сущностей нету.
Забавный Вы

Сами выше написали про некие "сущности БД". Ваш термин.

Таблица - это сущность БД? Да.
Таблица может быть денормализованной? Да.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570812
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA1. если "сразу сущности БД в виде классов выставлять в REST", то где же будет бизнес-логика?
- при REST БЛ на клиенте.
На сервере только:
http://www.товары.ru/товар/id/123
skyANA2. что такое денормализация по стандартам? Примеры стандартов у Вас есть?
я же сказал. "де" было лишнее.
Нормализация - в википедии
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570813
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAпропущено...
И где в этой современной модели бизнес-логика?
Да. Я посыпаю голову пеплом и говорю что описАлся и добавил НЕ к слову нормализация.
Если ты это сразу не понял, то тебе тоже минус. (шутка).Я предполагал, что Вы перепутали нормализацию с денормализацией. И честно думал, что Вы сами сразу и поправитесь.
Но Вы видимо даже не задумались о том, почему от Вас просят примеры стандартов денормализации.

Petro123Надеюсь теперь тебе всё понятно?Пока не понятно, куда Вы запихнёте бизнес-логику в своей современной модели.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570814
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAPetro123Денормализация есть у БД. А у сущностей нету.
Забавный Вы

Сами выше написали про некие "сущности БД". Ваш термин.

Таблица - это сущность БД? Да.
Таблица может быть денормализованной? Да.
В контексте выше было про сущности-классы от MS.
Подсунь туда систему хранения ООБД и не будет термина нормализация сущностей.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570816
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЯ предполагал, что Вы перепутали нормализацию с денормализацией. И честно думал, что Вы сами сразу и поправитесь.
Но Вы видимо даже не задумались о том, почему от Вас просят примеры стандартов денормализации.
да. Я невнимателен, а вы пытались меня учить занудно и долго.
Вместо того чтобы спросить ПРЯМО.
Все при своих)).
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570819
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANA1. если "сразу сущности БД в виде классов выставлять в REST", то где же будет бизнес-логика?
- при REST БЛ на клиенте.
На сервере только:
http://www.товары.ru/товар/id/123 Хм, у Вас приложение уровня записной книжки что-ли? :)

Помимо сущностей и CRUD-операций над ними всегда существует некий(е) бизнес-процесс(ы), в которых они участвуюут.
Всю логику этих процессов Вы на клиенте реализуете?

P.S.: только не говорите, что Вы ещё на той стадии автоматизации, когда оператор с контрагентом по телефону, или электропочте в основном общаются.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570821
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAЯ предполагал, что Вы перепутали нормализацию с денормализацией. И честно думал, что Вы сами сразу и поправитесь.
Но Вы видимо даже не задумались о том, почему от Вас просят примеры стандартов денормализации.
да. Я невнимателен, а вы пытались меня учить занудно и долго.
Вместо того чтобы спросить ПРЯМО.
Все при своих)).Да. Вы невнимательны. И по моим наблюдениям - это не был редкий случай.
Каждый раз Вас спрашивать о том, что Вы ничего не попутали? Увольте :)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570822
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПомимо сущностей и CRUD-операций над ними всегда существует некий(е) бизнес-процесс(ы), в которых они участвуюут.
Всю логику этих процессов Вы на клиенте реализуете?
Просто поверь, что я НЕ максималист.
Точную грань разумного очень трудно провести. И вы тоже тут не проведёте.
Есть только рекомендации:
- REST именно для простых проектов
- полного REST не существует, т.к. "все" просто приближаются к нему
- если вы выбрали ТЯЖЁЛЫЙ клиент(ангуляр), то на сервер не стоит делать повтор логики. Т.е. стоит делать минимум логики (REST).
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570823
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИ по моим наблюдениям - это не был редкий случай.
по моим наблюдениям, вы всегда пытаетесь припереть к стенке выдуманным сложным случаем во вселенной)
автор некий(е) бизнес-процесс(ы),
skyANAУвольте :)
дак кто вас заставляет? )) LOL
Как будто я не знаю своих и ваших недостатков.
Будем оглашать? )))
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570827
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAПомимо сущностей и CRUD-операций над ними всегда существует некий(е) бизнес-процесс(ы), в которых они участвуюут.
Всю логику этих процессов Вы на клиенте реализуете?
Просто поверь, что я НЕ максималист.
Точную грань разумного очень трудно провести. И вы тоже тут не проведёте.
Есть только рекомендации:
- REST именно для простых проектов
- полного REST не существует, т.к. "все" просто приближаются к нему
- если вы выбрали ТЯЖЁЛЫЙ клиент(ангуляр), то на сервер не стоит делать повтор логики. Т.е. стоит делать минимум логики (REST).Вы сначала пишите о "если у вас современная модель", а приходите к "для простых проектов".
Путаете денормализацию с нормализацией.

Простите, но может Вы начнёте раскрывать свои мысли шире и пользоваться кнопкой "Просмотр", прежде чем нажать "Опубликовать"?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570829
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123по моим наблюдениям, вы всегда пытаетесь припереть к стенке выдуманным сложным случаем во вселеннойТолько стоило копнуть глубже, так сразу какой-то выдуманный сложный случай во Вселенной нарисовался :)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570830
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123дак кто вас заставляет? )) LOL
Как будто я не знаю своих и ваших недостатков.
Будем оглашать? )))Если оглашение моих недостатков поможет Вам в будущем избегать своих, то я не против
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570833
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВы сначала пишите о "если у вас современная модель", а приходите к "для простых проектов".
ты контекст потерял)
Современная нормализованная модель допускает использования сущностей напрямую в слой БЛ или на клиента.
Подыми глаза и прочти тему.
skyANAПутаете денормализацию с нормализацией.
мусье мазохист про одно и то же?
Я думаю, почему ты шесть постов выше докапывался до нормализации), хотя сознался что знал.
"Ты знал, ты знал !!! "
skyANAкнопкой "Просмотр"
Для мазохистов говорить про одно и то же не поможет.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570834
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЕсли оглашение моих недостатков поможет Вам в будущем избегать своих, то я не против
Вижу тебе психология ближе чем IT.
Что у нас предмет исследования?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570839
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ты контекст потерял)
Современная нормализованная модель допускает использования сущностей напрямую в слой БЛ или на клиента.Тут ты уже пишешь не про сущности БД, как раньше, верно?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570840
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAЕсли оглашение моих недостатков поможет Вам в будущем избегать своих, то я не против
Вижу тебе психология ближе чем IT.
Что у нас предмет исследования?
"Исследование" началось с "можно сразу сущности БД в виде классов выставлять в REST".
Но по дальнейшей дискуссии видно, что ты писал одно, а думал про другое, или же писал не думая.
Так что тебе должно быть виднее.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570842
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123мусье мазохист про одно и то же?
Я думаю, почему ты шесть постов выше докапывался до нормализации), хотя сознался что знал.
"Ты знал, ты знал !!! "Вообще-то я докапывался до ДЕнормализации.

Но я понимаю к чему ты клонишь :)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570846
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA"можно сразу сущности БД в виде классов выставлять в REST".
у тебя много воды. Очень много.
Ты можешь вести беседу 50 страниц.
Чем не нравится эта фраза? Конкретнее?
Ты её не понял?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570847
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВообще-то я докапывался до ДЕнормализации.
буквоед и зануда ты))
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570849
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANA"можно сразу сущности БД в виде классов выставлять в REST".
у тебя много воды. Очень много.
Ты можешь вести беседу 50 страниц.
Чем не нравится эта фраза? Конкретнее?
Ты её не понял?Да понял. И мы пришли к выводу, что такой подход имеет смысл только в простых приложениях.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570850
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAВообще-то я докапывался до ДЕнормализации.
буквоед и зануда ты))А ты смотри, что пишешь и я не буду цепляться :)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570854
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAДа понял. И мы пришли к выводу, что такой подход имеет смысл только в простых приложениях.
неа
))
мимо.
1) при REST базе, клиент может быть сколь угодно сложный
2) при нормализованных замечательных сущностях нам не нужно агрегированные и толстые сущности.
Т.к. слой сервиса может оперировать сущностями базы и быть сколь угодно сложным.
skyANAимеет смысл только в простых приложениях.
термин точнее будет - информационная система по ГОСТ.
И вот она может быть очень сложной.
...
У вас опять вода(.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570855
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА ты смотри, что пишешь и я не буду цепляться :)
не выйдет Учитель.
Иди к ваде.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570886
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAА ты смотри, что пишешь и я не буду цепляться :)
не выйдет Учитель.
Иди к ваде.

сплюнь
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570913
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAДа понял. И мы пришли к выводу, что такой подход имеет смысл только в простых приложениях.
неа
))
мимо.
1) при REST базе, клиент может быть сколь угодно сложный
2) при нормализованных замечательных сущностях нам не нужно агрегированные и толстые сущности.
Т.к. слой сервиса может оперировать сущностями базы и быть сколь угодно сложным.
skyANAимеет смысл только в простых приложениях.
термин точнее будет - информационная система по ГОСТ.
И вот она может быть очень сложной.
...
У вас опять вода(.Ты в реальности-то пробовал то, о чем пишешь? Или лучше вопросы не задавать?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570914
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

и уже определись наконец со своими сущностями, на той странице у тебя нормализации к ним была не применима, на этой они у тебя замечательные и нормализованные
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570916
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТы в реальности-то пробовал то, о чем пишешь? Или лучше вопросы не задавать?
Я же говорю, вопросы у тебя все как у доктора, учителя и воспитателя детского сада))).
Я тебе как IT шник абзац написал. А у тебя предмет не технология интересует, а потрындеть и личный вопрос задать.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570917
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

а ещё я хотел бы уточнить, что означает новый термин: "REST база"?
это короткое название подхода "если у вас современная модель БД с грамотной денормализацией, то можно сразу сущности БД в виде классов выставлять в REST", верно?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570918
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAТы в реальности-то пробовал то, о чем пишешь? Или лучше вопросы не задавать?
Я же говорю, вопросы у тебя все как у доктора, учителя и воспитателя детского сада))).
Я тебе как IT шник абзац написал. А у тебя предмет не технология интересует, а потрындеть и личный вопрос задать.
Вот когда так отвечают на прямые вопросы, то это называется вилять жопой уходить от ответа
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570919
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAэто короткое название подхода
+1 мой летописец
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570920
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

давай чётко определимся с терминами и я задам тебе ряд вопросов чисто как IT-шник.
Согласен на это?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570921
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAВот когда так отвечают на прямые вопросы, то это называется вилять жопой уходить от ответа
У меня недостаток. Флуд только на IT вопросы.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570922
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAPetro123,
давай чётко определимся с терминами и я задам тебе ряд вопросов чисто как IT-шник.
Согласен на это?
Какой ты скушный. Определяется 2 дня!!!! Чтобы задать вопрос)))))))
Вернее, задаешь вопрос можно ли задать вопрос)))).
LOL
У меня тут Т9, я не описался?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570923
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttPetro123пропущено...

не выйдет Учитель.
Иди к ваде.

сплюнь
))
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570926
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAPetro123,
давай чётко определимся с терминами и я задам тебе ряд вопросов чисто как IT-шник.
Согласен на это?
Какой ты скушный. Определяется 2 дня!!!! Чтобы задать вопрос)))))))
Вернее, задаешь вопрос можно ли задать вопрос)))).
LOL
У меня тут Т9, я не описался?
2 дня? Не льсти себе. В сумме минут 15 не больше :)

Ну да ладно. Я на примере ТС задам тебе вопросы:
ArpanxЕсть доменный тип "корзина покупателя со списком товаров в корзине"
Есть доменый тип "товар"

Вариант1)
Клиент отправляет команды серверу добавить в корзину/удалить/посчитать коммисию.
В ответ получает новое состояние корзины. Такой вариант мне нравиться, логика на клиенте минимальная.
Как, в случае предлагаемого тобой подхода "нормализованная REST база", будет собираться полная информация, необходимая для отображения корзины покупателю?
Сколько это будет запросов к серверу, 2 + N? За самой корзиной, за списком товаров в ней, за информацией по каждому из N товаров?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570927
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для ясности предполагается, что корзина сохраняется в БД.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570938
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Вар.1
Ты выбрал корзину не в сессии, а в базе. Значит будет сущность Корзина с инфой по покупателю.
Не вижу пока сложности.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570940
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANA,
Вар.1
Ты выбрал корзину не в сессии, а в базе. Значит будет сущность Корзина с инфой по покупателю.
Не вижу пока сложности.OZON тоже выбрал корзину не в сессии, а в базе

Каким образом и где у тебя собрался агрегат "Корзина с инфой по покупателю"?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570944
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

а вообще меня радует как ты отвечаешь:
skyANAКак, в случае предлагаемого тобой подхода "нормализованная REST база", будет собираться полная информация, необходимая для отображения корзины покупателю?
Сколько это будет запросов к серверу, 2 + N? За самой корзиной, за списком товаров в ней, за информацией по каждому из N товаров?Petro123Не вижу пока сложности.
Ну сделаем мы десяток запросов к серверу, чтобы отобразить корзину, делов-то. Не сложно
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570946
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAOZON тоже выбрал корзину не в сессии, а в базе
почаще предупреждай заказчика, что выбираешь самые сложные случаи во вселенной
______________________________________________
"Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570947
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAКаким образом и где у тебя собрался агрегат "Корзина с инфой по покупателю"?
не всё тебе быть интервьюером)).
Итого, у тебя 100 страниц ИС с информацией один ко многим.
MS это по ноу хау называет агрегатами))
- чем страничка с корзиной отличается от любой другой?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570951
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНу сделаем мы десяток запросов к серверу, чтобы отобразить корзину, делов-то. Не сложно
опять у тебя вода.
Как вариант в ангуляре:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
На Ангуларе это делается следующим образом — есть директива корзины (виджет) и есть сервис корзины. Добавление товаров в корзину идет через сервис, а директива слушает изменения сервиса и выводит у себя обновленную инфу.

Вот Директива:
angular.module('app').directive('shoppingCartWidget', function(shoppingCartService) {
    return {
        restrict: 'E',
        replace: true,
        scope: {},
        templateUrl: 'shopping-cart.html',
        link: function(scope, element, attributes) {
            scope.items = [];

            // слушаем изменения в корзине
            scope.$watch(shoppingCartService.getItems, function(items) {
                scope.items = items;
            });
        }
    }
});


Вот сервис:
angular.module('app').directive('shoppingCartService', function(_) {
    var items = [];

    function add(itemData) {
        items.push(itemData);
    }

    function remove(itemID) {
        items = _.reject(items, {id: itemID});
    }

    function clear() {
        items = [];
    }

    function getItems() {
        return items;
    }

    return {
        add: add,
        remove: remove,
        clear: clear,
        getItems: getItems
    }
});


Вот контроллер:
angular.module('app').controller('myController', function(shoppingCartService) {

    // ну, тут будет не массив, а $resource, например

    $scope.items = [
        {
            id: 1,
            name: 'Клавиатура',
            price: 150
        },
        {
            id: 2,
            name: 'Кофе',
            price: 50
        }
    ];

    $scope.addToCart = addToCart;

    function addToCart(itemData) {
        shoppingCartService.add(itemData);
    }

});


Вот вьюха списка товаров:
<ul>
    <li ng-repeat="item in items">
        <span>{{item.name}}</span>
        <button ng-click="addToCart(item)">Добавить в корзину</button>
    </li>
</ul>

...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570952
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAOZON тоже выбрал корзину не в сессии, а в базе
почаще предупреждай заказчика, что выбираешь самые сложные случаи во вселенной
______________________________________________
"Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand.
Хорошо.
Давай корзину заменим на любую другую сущность, данные которой, если их хранить в реляционной БД, в нормализованном виде, будут разложены по 4-5 таблицам.
От этого что-то изменится? Ты ответишь уже прямо на вопросы?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570953
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAКак, в случае предлагаемого тобой подхода "нормализованная REST база", будет собираться полная информация, необходимая для отображения корзины покупателю?
Сколько это будет запросов к серверу, 2 + N? За самой корзиной, за списком товаров в ней, за информацией по каждому из N товаров?
странно. Почему не спросил про Отчёты?
Там агрегация огого какая.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570954
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот ты и раскрылся!
skyANAДавай корзину заменим на любую другую сущность, данные которой, если их хранить в реляционной БД, в нормализованном виде, будут разложены по 4-5 таблицам.
От этого что-то изменится?
====== Корзина ни при чём! Ты просто не веришь в сам REST подход! )))))))
Ты ответишь уже прямо на вопросы?
====== так ты флудер. Зачем приплёл корзину? Её можно и на вебсокете сделать))) рядом с рест
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570956
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAНу сделаем мы десяток запросов к серверу, чтобы отобразить корзину, делов-то. Не сложно
опять у тебя вода.
Где у меня вода?
Раз ты пишешь, что модель нормализована, то в БД как минимум 4 таблицы.
Раз ты пишешь, что можно сразу сущности БД в виде классов выставлять в REST, минуя сервисные слои и прослойки, то встаёт вопрос а как ты собираешь агрегат на клиенте? Сколько это запросов к серверу, 5-10-20?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570957
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAКак, в случае предлагаемого тобой подхода "нормализованная REST база", будет собираться полная информация, необходимая для отображения корзины покупателю?
Сколько это будет запросов к серверу, 2 + N? За самой корзиной, за списком товаров в ней, за информацией по каждому из N товаров?
странно. Почему не спросил про Отчёты?
Там агрегация огого какая.
Я начал с простого.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570959
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вот ты и раскрылся!
skyANAДавай корзину заменим на любую другую сущность, данные которой, если их хранить в реляционной БД, в нормализованном виде, будут разложены по 4-5 таблицам.
От этого что-то изменится?
====== Корзина ни при чём! Ты просто не веришь в сам REST подход! )))))))
Ты ответишь уже прямо на вопросы?
====== так ты флудер. Зачем приплёл корзину? Её можно и на вебсокете сделать))) рядом с рест

Я верю в REST подход. Я не верю в твой подход: "нормализованная REST база". Это разные вещи.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570961
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЯ начал с простого.
простое и логичное - это корзина на сеанс. Закрываем ослик и корзина пропадает.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570962
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И более того: я использую REST подход в своих проектах.
Да, он не всегда RESTful, потому как есть определённые сложности и не всё на него гладко ложится и это нормально.

Но ты-то сложностей вообще не видишь. Правда на простые вопросы толком ответить не можешь, всё в сторону уходишь
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570964
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЯ верю в REST подход. Я не верю в твой подход: "нормализованная REST база". Это разные вещи.
Лучше так:
Я верю в REST подход. Я не верю в ТЕБЯ!
)))))))))
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570965
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAЯ начал с простого.
простое и логичное - это корзина на сеанс. Закрываем ослик и корзина пропадает.
Вот опять в сторону пошёл

Хорошо. Давай заменим слово корзина на заказ: "Заказ покупателя со списком товаров в заказе".
Вопросы остаются те же.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570966
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНо ты-то сложностей вообще не видишь. Правда на простые вопросы толком ответить не можешь, всё в сторону уходишь
OFFTOP детектед.
ЗЫ:
У меня скоро проект должен быть на хибернейт. Напишу тебе более конкретно.
Счас занимаюсь валидацией JSON.
Удачи!
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570967
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAЯ верю в REST подход. Я не верю в твой подход: "нормализованная REST база". Это разные вещи.
Лучше так:
Я верю в REST подход. Я не верю в ТЕБЯ!
)))))))))Полагаю, что это надо раценивать как: "Мне не интересно обсуждать предложенный мной же подход, давайте тупо пофлудим!", - верно?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570968
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAДавай заменим слово корзина
1. корзина вообще ни при чём. Это выяснили.
2. код ангуляр выше - изучай.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570970
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAНо ты-то сложностей вообще не видишь. Правда на простые вопросы толком ответить не можешь, всё в сторону уходишь
OFFTOP детектед.
ЗЫ:
У меня скоро проект должен быть на хибернейт. Напишу тебе более конкретно.
Счас занимаюсь валидацией JSON.
Удачи!А ведь я спрашивал тебя: "Ты в реальности-то пробовал то, о чем пишешь? Или лучше вопросы не задавать?".
Мог бы и ответить, что проект только предстоит. Сэкономили бы время и две страницы :)

Удачи!
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570971
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПолагаю, что это надо раценивать как: "Мне не интересно обсуждать предложенный мной же подход, давайте тупо пофлудим!", - верно?
твой итоговый вопрос -
"как вообще делаются агрегаты в REST? И не тормозит ли это?"

Это вопрос новичка и другой темы.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570972
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAДавай заменим слово корзина
1. корзина вообще ни при чём. Это выяснили.
2. код ангуляр выше - изучай.Изучил.
Там код добавления товара в корзину, он вообще не про то, о чём я спрашиваю.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570973
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAПолагаю, что это надо раценивать как: "Мне не интересно обсуждать предложенный мной же подход, давайте тупо пофлудим!", - верно?
твой итоговый вопрос -
"как вообще делаются агрегаты в REST? И не тормозит ли это?"

Это вопрос новичка и другой темы.Ты, вместо того, чтобы уже ответить, переиначил мой вопрос.
Не красиво.

Если на мои вопросы ответили в другой теме, то дай ссылку, чтобы я понял твою точку зрения.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570974
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА ведь я спрашивал тебя: "Ты в реальности-то пробовал то, о чем пишешь? Или лучше вопросы не задавать?".
Учитель!
Зайди в свой профиль и глянь, когда ты СПРАШИВАЛ по человечески кого нибудь?
И сравни с моим профилем.
Я не увидел от тебя честных вопросов по IT которые тебя волнуют.
Ты давно начальник))
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570975
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

и это не итоговый вопрос, а только начало обсуждения предложенного тобой подхода.
И уже в начале ты испытываешь трудности при ответе на простые казалось бы вопросы.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570976
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAА ведь я спрашивал тебя: "Ты в реальности-то пробовал то, о чем пишешь? Или лучше вопросы не задавать?".
Учитель!
Зайди в свой профиль и глянь, когда ты СПРАШИВАЛ по человечески кого нибудь?
И сравни с моим профилем.
Я не увидел от тебя честных вопросов по IT которые тебя волнуют.
Ты давно начальник))И что же в моих вопросах не по человечески? Не по IT?

Ты предложил подход. Я критически к нему отношусь. Заметь критически, а не скептически.
И задаю соответсвующие вопросы.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570977
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFF
skyANAPetro123,

и это не итоговый вопрос, а только начало обсуждения предложенного тобой подхода.
И уже в начале ты испытываешь трудности при ответе на простые казалось бы вопросы.
я не дурак отвечать на это:
skyANA Сколько это будет запросов к серверу, 2 + N? За самой корзиной, за списком товаров в ней, за информацией по каждому из N товаров?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570978
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЗаметь критически
отвечаю как новичку:
- сколько именно в числах и сек уточни сам на тесте при профилировании и выложи сюда.
Если тормозит, то есть кэш первого и второго уровней в ОРМ.
Включи второй уровень и результаты сюда.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570980
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123OFF
skyANAPetro123,

и это не итоговый вопрос, а только начало обсуждения предложенного тобой подхода.
И уже в начале ты испытываешь трудности при ответе на простые казалось бы вопросы.
я не дурак отвечать на это:
skyANAСколько это будет запросов к серверу, 2 + N? За самой корзиной, за списком товаров в ней, за информацией по каждому из N товаров?
Хорошая у тебя позиция: предложить подход, а когда спрашивают о возможных проблемах, то вставать в позу "я не дурак отвечать на это"

Понятно, значит закончим на этом.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570981
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAХорошая у тебя позиция: предложить подход
=== REST это не моё)))
, а когда спрашивают о возможных проблемах, то вставать в позу "я не дурак отвечать на это"
==== ослу понятно, что нормализованная модель чуть дольше отзывается чем ДЕнормализованная и полностью подсчитанная.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570982
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAЗаметь критически
отвечаю как новичку:
- сколько именно в числах и сек уточни сам на тесте при профилировании и выложи сюда.
Если тормозит, то есть кэш первого и второго уровней в ОРМ.
Включи второй уровень и результаты сюда.Погоди, ты писал, что "никакие сервисные слои и прослойки не нужны".
А тут появляется и ORM, и кэш первого, и кэш второго уровня.

Короче ты сам отказался от своего подхода
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570983
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
и не делать агрегатные дополнительные классы при хорошей новой БД и модели - тоже не моё.
Rich Domain Model противопоставляют Anemic Domain Model - Фаулер(с)
Удачи!
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570984
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAХорошая у тебя позиция: предложить подход
=== REST это не моё)))
, а когда спрашивают о возможных проблемах, то вставать в позу "я не дурак отвечать на это"
==== ослу понятно, что нормализованная модель чуть дольше отзывается чем ДЕнормализованная и полностью подсчитанная.

Что? Нормализованная модель всего-лишь ЧУТЬ дольше отзывается чем ДЕнормализованная?

Ты сделал мой день
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570985
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПогоди, ты писал, что "никакие сервисные слои и прослойки не нужны".
А тут появляется и ORM, и кэш первого, и кэш второго уровня.
ОРМ это не сервисный слой. Увы(.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570986
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЧто? Нормализованная модель всего-лишь ЧУТЬ дольше отзывается чем ДЕнормализованная?
именно поэтому делают отчёты на второй
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570988
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAЧто? Нормализованная модель всего-лишь ЧУТЬ дольше отзывается чем ДЕнормализованная?
именно поэтому делают отчёты на второйИзвини, но ты глупости пишешь.

Денормализация - это намеренное нарушение нормальных форм, для увеличения производительности.
И увеличения не на ЧУТЬ, а ОЩУТИМОГО увеличения.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570990
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAПогоди, ты писал, что "никакие сервисные слои и прослойки не нужны".
А тут появляется и ORM, и кэш первого, и кэш второго уровня.
ОРМ это не сервисный слой. Увы(.
Да, ОРМ это не сервисный слой.
Но, ты писал, что не только сервисные слои, но и любые другие прослойки не нужны.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570993
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
я же говорю что ты буквоед.....
Искать разницу между ЧУТЬ и ОЩУТИМОГО)))) LOL
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39570995
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANA,
я же говорю что ты буквоед.....
Искать разницу между ЧУТЬ и ОЩУТИМОГО)))) LOLТы безнадёжен.

Ну хорошо, продолжай дальше думать, что нормализованная модель всего-лишь чуть дольше отзывается чем ДЕнормализованная.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571051
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAЯ предполагал, что Вы перепутали нормализацию с денормализацией. И честно думал, что Вы сами сразу и поправитесь.
Но Вы видимо даже не задумались о том, почему от Вас просят примеры стандартов денормализации.
да. Я невнимателен, а вы пытались меня учить занудно и долго.
Вместо того чтобы спросить ПРЯМО.
Все при своих)).
Что то ты рано испугался, денормализация нромальная практика, а стандарты можно и ввести, да они и введены самой логикой нормализации - вверх агрегаты, вниз миграция (ключей и лукапов)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571052
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скайана палец в рот не клади, а ты в последнее время что то комментируешь все и вся и обычно либо очень поверхностно, либо воще невпопад, вот он и решил остановить поток словоблудия
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571054
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosЧто то ты рано испугался
значит ты не в теме.
Там по смыслу была нормализация. Зачем идти против смысла и писать против ветра?
ViPRosа ты в последнее время
я же на пятёрки учился, а троечникам это читать не надо.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571060
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

смотри, в следующий раз будет хуже
надо уметь доказывать в обе сторону
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571061
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosPetro123,
смотри, в следующий раз будет хуже
надо уметь доказывать в обе сторону
в какую из этих сторон?
Rich Domain Model противопоставляют Anemic Domain Model - Фаулер(с)
За то что предупредил, спасибо))
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571063
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

Не забивай башку учебным фуфлом, нет никаких рич домен и т.д.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571066
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosPetro123,
Не забивай башку учебным фуфлом, нет никаких рич домен и т.д.
Да!
И Фаулера в соседней палате тоже нет!
Код: plaintext
Это их худые черти Мутят воду во пруду, Это всё придумал Черчилль В восемнадцатом году! Мы про взрывы, про пожары Сочинили ноту ТАСС... Но примчались санитары И зафиксировали нас. 
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571150
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123в какую из этих сторон?
Rich Domain Model противопоставляют Anemic Domain Model - Фаулер(с)
За то что предупредил, спасибо))

А где здесь денормализация? ))
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571157
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
Дак это был вопрос к нему и тем кто rest осваивает.
К тебе нет вопросов, ты и так все знаешь)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571224
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttPetro123в какую из этих сторон?
Rich Domain Model противопоставляют Anemic Domain Model - Фаулер(с)
За то что предупредил, спасибо))

А где здесь денормализация? ))Не обращай внимания, это очередной комментарий "воще невпопад" :)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571252
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНе обращай внимания, это очередной комментарий "воще невпопад" :)
Ты сам разобрался с вопросом ITшника - как делается корзина?
Щас мы тут выведем тебя на чистую воду).
С чем еще трудности?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571366
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

никак не пойму - это бот так долго учится или просто не доделали
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571394
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
Хорош трепаться в междуобойчике. Для картинок и трепа есть ветка Разработка ИС.
Здесь код пожалуйста.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571398
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

на

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
        internal void FillModelParallel(string typename, Guid typeid, Guid contextid, Guid macroid, bool filltype, bool fillrel, Dictionary<Guid, string> filters, bool viewmode = false, YSBMESDataSet ds = default(YSBMESDataSet), System.ComponentModel.BackgroundWorker wk = null)
        {
            /*
            swsql.Reset();
            swsql.Start();
            */

            var er = GetContext(contextid);
            if (ds == default(YSBMESDataSet)) ds = er.DS;
            if (ds == default(YSBMESDataSet)) ds = currentDS;

            lock (ds)
            {
                ds.EnforceConstraints = false;

                var macrotypename = GetMacroTypeNameByMacroTypeID(macroid.ToString());
                var types = GetTypesInMacroType(macrotypename);
                foreach (var t in types)
                {
                    if (ds.Tables[t].ExtendedProperties.ContainsKey("hasExpFields"))
                    {
                        var changed = TypeTableEventsMinus(t, ds);

                        foreach (DataColumn dc in ds.Tables[t].Columns)
                        {
                            if (!(dc.Expression == ""))
                            {
                                if (!dc.ExtendedProperties.ContainsKey("exp")) dc.ExtendedProperties.Add("exp", dc.Expression);
                                else
                                {
                                    if (dc.ExtendedProperties["exp"].ToString() != dc.Expression) dc.ExtendedProperties["exp"] = dc.Expression;
                                }
                                dc.Expression = "";
                                dc.ReadOnly = false;
                            }
                        }

                        TypeTableEventsPlus(t, changed, ds);
                    }
                }

                /*
                string times = "";
                swsqlobject.Reset();
                swsqlobject.Start();
                */

                if (wk == null || !wk.CancellationPending)
                {
                    if (filltype) FillType(typename, typeid, filters[macroid], viewmode, ds);
                    else fillrel = false;

                    if (wk != null) wk.ReportProgress(10, 1);

                    /*
                    swsqlobject.Stop();
                    times += typename + " - " + swsqlobject.Elapsed.ToString() + "\r\n";
                    var elap = swsqlobject.ElapsedMilliseconds;
                    */

                    if (fillrel && ds.Tables[typename].Rows.Count > 0)
                    {
                        Dictionary<Guid, КонтекстныеНастройкиСвязей> svs = new Dictionary<Guid, КонтекстныеНастройкиСвязей>();
                        if (MacroTypes.ContainsKey(macroid)) svs = MacroTypes[macroid].Links;
                        var sv = svs.Where(s => s.Value.Связь != null).Select(s => new { ИД = s.Key, s.Value.Связь }).ToDictionary(s => s.Связь);

                        System.Collections.Concurrent.ConcurrentStack<Tuple<string, System.Collections.Concurrent.ConcurrentDictionary<string, string>>> stack = new System.Collections.Concurrent.ConcurrentStack<Tuple<string, System.Collections.Concurrent.ConcurrentDictionary<string, string>>>();
                        System.Collections.Concurrent.ConcurrentDictionary<string, string> extprops = new System.Collections.Concurrent.ConcurrentDictionary<string, string>();

                        var ttypename = ds.Tables[typename];
                        extprops.TryAdd("InnerList", ttypename.ExtendedProperties["InnerList"].ToString());
                        extprops.TryAdd("ParentInnerList", ttypename.ExtendedProperties["ParentInnerList"].ToString());
                        extprops.TryAdd("InnerJoinOnList", ttypename.ExtendedProperties["InnerJoinOnList"].ToString());
                        extprops.TryAdd("ActualSQL", ttypename.ExtendedProperties["ActualSQL"].ToString());
                        extprops.TryAdd("Filter", (ttypename.ExtendedProperties.ContainsKey("Where") ? ttypename.ExtendedProperties["Where"].ToString() : "") +
                                                  (ttypename.ExtendedProperties.ContainsKey("WhereFC") ? ttypename.ExtendedProperties["WhereFC"].ToString() : "") +
                                                  filters[macroid]);

                        stack.Push(new Tuple<string, System.Collections.Concurrent.ConcurrentDictionary<string, string>>(typename, extprops));

                        while (stack.Count > 0)
                        {
                            if (wk != null && wk.CancellationPending) break;

                            var tuple = new Tuple<string, System.Collections.Concurrent.ConcurrentDictionary<string, string>>(string.Empty, new System.Collections.Concurrent.ConcurrentDictionary<string, string>());
                            stack.TryPop(out tuple);

                            typename = tuple.Item1;
                            ttypename = ds.Tables[typename];
                            ttypename.ExtendedProperties["InnerList"] = tuple.Item2["InnerList"];
                            ttypename.ExtendedProperties["ParentInnerList"] = tuple.Item2["ParentInnerList"];
                            ttypename.ExtendedProperties["InnerJoinOnList"] = tuple.Item2["InnerJoinOnList"];
                            ttypename.ExtendedProperties["ActualSQL"] = tuple.Item2["ActualSQL"];
                            ttypename.ExtendedProperties["Filter"] = tuple.Item2["Filter"];

                            var rls = ((List<ТипДляCreateRelations>)ds.Tables[typename].ExtendedProperties["DownRelations"]).
                                                                    Where(r => sv.ContainsKey(typename + "_" + r.Наименование + "{" + r.Синоним + "}"));
                            if (ttypename.Rows.Count > 0 && rls.Any())
                            {
                                /*
                                string inList = "";// ttypename.AsEnumerable().Select(rw => rw["ИД"].ToString()).Aggregate((a, b) => b + "," + a);
                                StringBuilder sb = new StringBuilder();
                                foreach(DataRow rw in ttypename.Rows)
                                {
                                    if (sb.Length == 0) sb.Append(rw["ИД"].ToString());
                                    else sb.Append("," + rw["ИД"].ToString());
                                }
                                inList = sb.ToString();
                                */

                                ParallelOptions pop = new ParallelOptions();
                                pop.MaxDegreeOfParallelism = System.Environment.ProcessorCount;
                                Parallel.ForEach(rls, pop, (r, ls) =>
                                {
                                    if (wk != null && wk.CancellationPending) ls.Stop();

                                    var rtypename = ds.Tables[r.Наименование];
                                    if (typename != r.Наименование)
                                    {
                                        //*
                                        if (ttypename.ExtendedProperties["InnerList"].ToString().Length > 0)
                                            rtypename.ExtendedProperties["ParentInnerList"] = ttypename.ExtendedProperties["InnerList"].ToString();
                                        else
                                        {
                                            if (ttypename.ExtendedProperties["ParentInnerList"].ToString().Length > 0)
                                                rtypename.ExtendedProperties["ParentInnerList"] = ttypename.ExtendedProperties["ParentInnerList"].ToString();
                                        }
                                        rtypename.ExtendedProperties["InnerJoinOnList"] = ttypename.ExtendedProperties["InnerJoinOnList"].ToString();
                                        rtypename.ExtendedProperties["InnerJoinOn"] = r.Синоним;

                                        if (paging || ttypename.ExtendedProperties["Filter"].ToString().Length > 0)
                                        {
                                            if (ttypename.ExtendedProperties["ActualSQL"].ToString().Length > 0)
                                                rtypename.ExtendedProperties["InnerJoinTo"] = "(" + ttypename.ExtendedProperties["ActualSQL"].ToString() + ")";
                                            rtypename.ExtendedProperties["InnerJoinToOn"] = "ИД";
                                        }

                                        //внешний фильтр
                                        string baseWhere = "";
                                        if (rtypename.ExtendedProperties.ContainsKey("Where")) baseWhere = rtypename.ExtendedProperties["Where"].ToString();

                                        if (er != null && er.externalSQLWhereForMacroLinks.ContainsKey(typename + "_" + r.Наименование + "{" + r.Синоним + "}"))
                                        {
                                            var exFilt = er.externalSQLWhereForMacroLinks[typename + "_" + r.Наименование + "{" + r.Синоним + "}"];
                                            if (!string.IsNullOrEmpty(exFilt))
                                            {
                                                if (!rtypename.ExtendedProperties.ContainsKey("Where")) rtypename.ExtendedProperties.Add("Where", "(" + exFilt + ")");
                                                else
                                                {
                                                    if (!string.IsNullOrEmpty(rtypename.ExtendedProperties["Where"].ToString()))
                                                    {
                                                        rtypename.ExtendedProperties["Where"] = "((" + rtypename.ExtendedProperties["Where"] + ") and (" + exFilt + "))";
                                                    }
                                                    else rtypename.ExtendedProperties["Where"] = "(" + exFilt + ")";
                                                }
                                            }
                                        }
                                        //------------------
                                        //*/

                                        // rtypename.ExtendedProperties["InnerList"] = inList;
                                        // rtypename.ExtendedProperties["InnerJoinOnList"] = r.Синоним;

                                        lock (ds.Tables[r.Наименование])
                                        {
                                            /*
                                            var sw = new Stopwatch();
                                            sw.Reset();
                                            sw.Start();
                                            */

                                            FillType(r.Наименование, r.ИД, filters[sv[typename + "_" + r.Наименование + "{" + r.Синоним + "}"].ИД], false, ds);
                                            if (ds.Tables[r.Наименование].ExtendedProperties.ContainsKey("Where")) ds.Tables[r.Наименование].ExtendedProperties["Where"] = baseWhere;

                                            if (wk != null) wk.ReportProgress(10, 1);

                                            /*
                                            sw.Stop();
                                            System.Threading.Interlocked.Add(ref elap, sw.ElapsedMilliseconds);
                                            times += r.Наименование + " - " + sw.Elapsed.ToString() + "\r\n";
                                            */
                                        }

                                        System.Collections.Concurrent.ConcurrentDictionary<string, string> сextprops = new System.Collections.Concurrent.ConcurrentDictionary<string, string>();
                                        сextprops.TryAdd("InnerList", rtypename.ExtendedProperties["InnerList"].ToString());
                                        сextprops.TryAdd("ParentInnerList", rtypename.ExtendedProperties["ParentInnerList"].ToString());
                                        сextprops.TryAdd("InnerJoinOnList", rtypename.ExtendedProperties["InnerJoinOnList"].ToString());
                                        сextprops.TryAdd("ActualSQL", rtypename.ExtendedProperties["ActualSQL"].ToString());
                                        сextprops.TryAdd("Filter", ttypename.ExtendedProperties["Filter"].ToString() +
                                                                   (rtypename.ExtendedProperties.ContainsKey("Where") ? rtypename.ExtendedProperties["Where"].ToString() : "") +
                                                                   (rtypename.ExtendedProperties.ContainsKey("WhereFC") ? rtypename.ExtendedProperties["WhereFC"].ToString() : "") +
                                                                   filters[sv[typename + "_" + r.Наименование + "{" + r.Синоним + "}"].ИД]);

                                        stack.Push(new Tuple<string, System.Collections.Concurrent.ConcurrentDictionary<string, string>>(r.Наименование, сextprops));
                                    }
                                }
                                );
                            }
                        }
                    }
                }

                if (wk != null) wk.ReportProgress(10, 2);

                foreach (var t in types)
                {
                    if (ds.Tables[t].ExtendedProperties.ContainsKey("hasExpFields"))
                    {
                        var changed = TypeTableEventsMinus(t, ds);

                        foreach (DataColumn dc in ds.Tables[t].Columns)
                        {
                            if (dc.ExtendedProperties.ContainsKey("exp"))
                            {
                                if (dc.Expression != dc.ExtendedProperties["exp"].ToString()) dc.Expression = dc.ExtendedProperties["exp"].ToString();
                                if (!dc.ReadOnly) dc.ReadOnly = true;
                            }
                        }

                        TypeTableEventsPlus(t, changed, ds);
                    }

                    ClearTypeLoadingParameters(t, ds);
                }

                ds.EnforceConstraints = true;
            }

            /*
            swsql.Stop();

            times += "SQL" + " - " + swsql.Elapsed.ToString() + "\r\n";
            times += "Всего" + " - " + TimeSpan.FromMilliseconds(elap).ToString() + "\r\n";
            MessageBox.Show(times);
            */
        }
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571409
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosPetro123,
на
Не мне. ТС'y. И будешь положительным мембером).
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571414
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos
Код: c#
1.
2.
3.
4.
5.
ttypename.ExtendedProperties["InnerList"] = tuple.Item2["InnerList"];
                            ttypename.ExtendedProperties["ParentInnerList"] = tuple.Item2["ParentInnerList"];
                            ttypename.ExtendedProperties["InnerJoinOnList"] = tuple.Item2["InnerJoinOnList"];
                            ttypename.ExtendedProperties["ActualSQL"] = tuple.Item2["ActualSQL"];
                            ttypename.ExtendedProperties["Filter"] = tuple.Item2["Filter"];



Туплесы ща намного живее стали.


ViPRos
Код: c#
1.
2.
var rls = ((List<ТипДляCreateRelations>)ds.Tables[typename].ExtendedProperties["DownRelations"]).
                                                                    Where(r => sv.ContainsKey(typename + "_" + r.Наименование + "{" + r.Синоним + "}"));



Был ли смысл дальше параллелить, если не параллелить запросы? А если тут триллион, всё в память? Странно-странно )
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571421
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

не разрешают переходить на новые версии - 4.0 и все.
а параллелить нет, все в конфиге, управляется через fill* видно же?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571428
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

FillModelParallel больно жирный и многозадачный метод.. надеюсь подобных упущений у вас не так много )
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571430
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно вообще ничего не загрузить
а так там куча фильтров и параметров управляющих
основной режим - загружается отфильтрованный образующий тип и каррент объект на видимую глубину
меняется каррент и все дозагружается динамически
много режимов - для вью, для методов и т.д.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571432
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRos,

FillModelParallel больно жирный и многозадачный метод.. надеюсь подобных упущений у вас не так много )

да так какжется
если еще и такие разбить то получится 100 тыщ методов
и так несколько тыщ, описывать невозможно уже все это
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571434
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и как мельче методы, так медленнее все фурычит
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571439
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
плодить методы, которые вызываются один раз - глупость полная
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571440
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoshVosttViPRos,

FillModelParallel больно жирный и многозадачный метод.. надеюсь подобных упущений у вас не так много )

да так какжется
если еще и такие разбить то получится 100 тыщ методов
и так несколько тыщ, описывать невозможно уже все это

суть -- не раздолбашить на 100 тыщ методов, а разделить по обязанностям и ответственности. кто догадается, что метод лезет в конфиг и что-то там читает? не потестишь, не проконтролируешь.

а про if-ы больше одного экрана и т.п. это уже задроство, хоть и не безосновательное )
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571442
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosможно вообще ничего не загрузить
а так там куча фильтров и параметров управляющих
основной режим - загружается отфильтрованный образующий тип и каррент объект на видимую глубину
меняется каррент и все дозагружается динамически
много режимов - для вью, для методов и т.д.

настоколько много, что может быть уместен параллелизм?

кста, асинхронность я так понимаю не поддерживается нигде?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571456
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosможно вообще ничего не загрузить
а так там куча фильтров и параметров управляющих
основной режим - загружается отфильтрованный образующий тип и каррент объект на видимую глубину
меняется каррент и все дозагружается динамически
много режимов - для вью, для методов и т.д.

настоколько много, что может быть уместен параллелизм?

кста, асинхронность я так понимаю не поддерживается нигде?

Параллелизм нужен в ВИП.Производство.

Асинхронность? допустим этот метод и параллелен и асинхронен.
4.0 нудно реализовать асинхронность - хотя вроде где то видел библиотеку с async await.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571458
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttсуть -- не раздолбашить на 100 тыщ методов, а разделить по обязанностям и ответственности. кто догадается, что метод лезет в конфиг и что-то там читает? не потестишь, не проконтролируешь.

а про if-ы больше одного экрана и т.п. это уже задроство, хоть и не безосновательное )
все что методу нужно, он получает через параметры
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571464
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttа про if-ы больше одного экрана и т.п. это уже задроство, хоть и не безосновательное )
+1 но я уж не стал его еще больше возбуждать.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571465
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123hVosttа про if-ы больше одного экрана и т.п. это уже задроство, хоть и не безосновательное )
+1 но я уж не стал его еще больше возбуждать.
попробовал бы
только для этого этот код сюда и запощен :)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571467
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я с такими Ифами считаю оптимальное расписание на C# для 100 000 процессов за 2 минуты, а Аспрова, которая имеет 30% мирового рынка на C++ это делает за 40 минут
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571560
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так можно и пару книг написать )

Код: c#
1.
2.
System.Collections.Concurrent.ConcurrentStack<Tuple<string, System.Collections.Concurrent.ConcurrentDictionary<string, string>>> stack = new System.Collections.Concurrent.ConcurrentStack<Tuple<string, System.Collections.Concurrent.ConcurrentDictionary<string, string>>>();
                        System.Collections.Concurrent.ConcurrentDictionary<string, string> extprops = new System.Collections.Concurrent.ConcurrentDictionary<string, string>();




Код: c#
1.
2.
3.
   
var stack = new ConcurrentStack<Tuple<string, ConcurrentDictionary<string, string>>>();
var extprops = new ConcurrentDictionary<string, string>();
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571749
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosЯ с такими Ифами считаю оптимальное расписание на C# для 100 000 процессов за 2 минуты, а Аспрова, которая имеет 30% мирового рынка на C++ это делает за 40 минут

Ну положим ты сделал быструю и эффективную реализацию.
Ок, а как насчёт дальнейшего сопровождения? Тестами код покрывается?
По собственному опыту правильное написание кода без конских функций на 10 экранов не делает код менее быстрым и эффективным, скорее наоборот.
Программный продукт это же не одноразовый шприц на выброс.
Ну только ты его именно таковым не делаешь. :)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571750
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123hVosttа про if-ы больше одного экрана и т.п. это уже задроство, хоть и не безосновательное )
+1 но я уж не стал его еще больше возбуждать.

ну нет же :)

ViPRos
Код: c#
1.
var er = GetContext(contextid);



поглядел на код внимательнее.. если понадобится сделать его асинхронным, придётся переписывать практически всё.. ну если устраивает, ок.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571751
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosи как мельче методы, так медленнее все фурычит
ViPRosплодить методы, которые вызываются один раз - глупость полная

«глупость полная», пока с этим не начнут работать другие люди в команде и не возникнет потребность покрывать тестами
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571753
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosАсинхронность? допустим этот метод и параллелен и асинхронен.

не


ViPRos4.0 нудно реализовать асинхронность - хотя вроде где то видел библиотеку с async await.

асинхронность это не обязательно асинк/эвейт
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571757
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,


а попробуй покрой этот код тестами
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571759
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамонтак можно и пару книг написать )

Код: c#
1.
2.
System.Collections.Concurrent.ConcurrentStack<Tuple<string, System.Collections.Concurrent.ConcurrentDictionary<string, string>>> stack = new System.Collections.Concurrent.ConcurrentStack<Tuple<string, System.Collections.Concurrent.ConcurrentDictionary<string, string>>>();
                        System.Collections.Concurrent.ConcurrentDictionary<string, string> extprops = new System.Collections.Concurrent.ConcurrentDictionary<string, string>();




Код: c#
1.
2.
3.
   
var stack = new ConcurrentStack<Tuple<string, ConcurrentDictionary<string, string>>>();
var extprops = new ConcurrentDictionary<string, string>();



пробовал несколько библиотек тогда одновременно, а имена совпадали
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571760
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoshVostt,


а попробуй покрой этот код тестами

этот вряд ли нормально покроешь. если переписать по-человечьи, разбив на код, который выполняет только свою маленькую задачу, то легко покроешь. если сделать по уму, то работать будет не хуже, а то и лучше :)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571761
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosЯ с такими Ифами считаю оптимальное расписание на C# для 100 000 процессов за 2 минуты, а Аспрова, которая имеет 30% мирового рынка на C++ это делает за 40 минут

Ну положим ты сделал быструю и эффективную реализацию.
Ок, а как насчёт дальнейшего сопровождения? Тестами код покрывается?
По собственному опыту правильное написание кода без конских функций на 10 экранов не делает код менее быстрым и эффективным, скорее наоборот.
Программный продукт это же не одноразовый шприц на выброс.
Ну только ты его именно таковым не делаешь. :)
ну блин прыгать по этим мелким функциям что бы почитать код замахаешься
тут есть функция, которая параллельно читает граф типов и все
при том само чтение FillType еще вызывает функции на несколько уровней ниже
начинаешь разбираться утопаешь в мелочи и глубине и при том медленно это
какая разница сколько экранов? лишь бы читалась и полностью на виду была
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571762
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRoshVostt,


а попробуй покрой этот код тестами

этот вряд ли нормально покроешь. если переписать по-человечьи, разбив на код, который выполняет только свою маленькую задачу, то легко покроешь. если сделать по уму, то работать будет не хуже, а то и лучше :)

не разобешь
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571763
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вызов функции - дорогое удовльствие
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571764
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttпоглядел на код внимательнее.. если понадобится сделать его асинхронным, придётся переписывать практически всё.. ну если устраивает, ок.
Думаю, он писал код еще до пенсии. А счас очень быстро все меняется. Какой уж там async асинхронность или закладка на асинхронность в дровах_поставщиках.
Много страничные if я допускаю только в win api 32)) в обработчике событий.
Поэтому пусть "кается и проставляется честной компании и другому люду".
))
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571766
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosну блин прыгать по этим мелким функция
Соглашусь только с тем что в шарпе вроде нет подпроцедур.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571768
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosвызов функции - дорогое удовльствиесказки для прикладного кода.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571769
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosну блин прыгать по этим мелким функциям что бы почитать код замахаешься

речь идёт не о том, чтобы разбить функцию, как будто колбасы нарезать. разбивка это не самоцель, просто когда объекты и функции начинают решать свою узкую задачу, они становятся небольшими. у тебя функция решает очень много задач сразу, просто дохренища.


ViPRosкакая разница сколько экранов? лишь бы читалась и полностью на виду была

это просто показатель проблемы, вовсе не обязательно означает, что функция на несколько экранов -- плохая, но скорее всего это так обычно.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571770
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosвызов функции - дорогое удовльствие

вот не смешно даже обсуждать подобную жесть :)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571771
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosне разобешь
Он же сказал, что если у тебя так в одном месте, то потянет. Если везде, то ..Фаулера не существует.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571772
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ViPRosну блин прыгать по этим мелким функция
Соглашусь только с тем что в шарпе вроде нет подпроцедур.

Уже есть
в дельфи это хорошо помогало
а тут я просто создаю регионы, что бы читать код сверху вниз как нормальный человек
а так каждый регион - претендент на отдельный файл, куча классов и т.д. дерьмо
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571773
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ViPRosвызов функции - дорогое удовльствиесказки для прикладного кода.
ты б не лялякал, а запустил бы профилировщик и увидел бы что например девекспресс 15% вызывает долбаные функции, которые в конце концов возвращают да или нет
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571774
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ViPRosне разобешь
Он же сказал, что если у тебя так в одном месте, то потянет. Если везде, то ..Фаулера не существует.
блин, отдохни со своим дружком где нить еще
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571776
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosдевекспрессну ты сравнил.
У него задача другая. Это ГУИ. А в гуи счас ускоряют не так и не тем.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571779
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosУже есть
в дельфи это хорошо помогаловау! Пошел искать.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571780
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRosАсинхронность? допустим этот метод и параллелен и асинхронен.

не


ViPRos4.0 нудно реализовать асинхронность - хотя вроде где то видел библиотеку с async await.

асинхронность это не обязательно асинк/эвейт
что не?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571781
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
код этот запущен в другом потоке и давно уже вернулся управление
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571782
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosа так каждый регион - претендент на отдельный файл, куча классов и т.д. дерьмо
Соболезную, но такой мейнстрим - полный ООП.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571783
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

мне это псевдо ООП нафиг не надо
разбить целостный код только для того что бы студент мог что то там понять, некогда фигней заниматься
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571784
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ладно, спать пора
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571785
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosмне это псевдо ООП нафиг не надо тогда сразу сознайся что ты белая ворона. С этим тоже можно жить.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571786
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
Моделирование у тебя идет хорошо. Поэтому странно, что UML не любишь.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571807
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos, а что за сборка ВИПРОС.Бюджетирование ? Таки не легло бюджетирование в универсальную модель , пришлось что-то специальное писать, на "голом" дотнете, с применением, прости Господи, ООП?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571813
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КViPRos, а что за сборка ВИПРОС.Бюджетирование ? Таки не легло бюджетирование в универсальную модель , пришлось что-то специальное писать, на "голом" дотнете, с применением, прости Господи, ООП?

Надо понимать, что любая универсальная модель имеет свои ограничения, зачастую не совместимую с бизнесом. Но в основном это связано с представлением.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571814
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ViPRosмне это псевдо ООП нафиг не надо тогда сразу сознайся что ты белая ворона. С этим тоже можно жить.

Ты похоже говоришь чтобы просто говорить ))
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571819
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttТы похоже говоришь чтобы просто говорить ))
Нет. Я же не сухарь. Все сбалансровао
hVosttPetro123пропущено...
тогда сразу сознайся что ты белая ворона. С этим тоже можно жить.

Ты похоже говоришь чтобы просто говорить ))
Неа. Я же не сухарь. Все сбалансировано. Тем более разговор про архитектуру, а чел гонит что ооп и фаулер это фигня.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571821
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttНадо понимать, что любая универсальная модель имеет свои ограничения, зачастую не совместимую с бизнесом. Но в основном это связано с представлением.
Ну а повторять после тебя твои слова, некомильфно)) LOL
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571842
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosпробовал несколько библиотек тогда одновременно, а имена совпадали
alias для namespace? не, не слыхал )
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571845
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КViPRos, а что за сборка ВИПРОС.Бюджетирование ? Таки не легло бюджетирование в универсальную модель , пришлось что-то специальное писать, на "голом" дотнете, с применением, прости Господи, ООП?

Надо понимать, что любая универсальная модель имеет свои ограничения, зачастую не совместимую с бизнесом. Но в основном это связано с представлением.Ну просто я всегда скептически относился к такого рода фреймворкам-моделям.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571852
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу просто я всегда скептически относился к такого рода фреймворкам-моделям.
Я тоже, Но! У него предмет автоматизации - Технологический процесс AFAIK.
Если заказчик требует, куда деваться.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571865
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу просто я всегда скептически относился к такого рода фреймворкам-моделям.

Если это фреймворк, и сделан правильно -- ок, на нём можно разрабатывать системы под конкретный бизнес с учётом его долбанутых особенностей.

Если это типа готовая к употреблению система на которой можно «сдизайнить» любой бизнес -- это полный буллшит, херня, не ведись на эту фигню, тебя обманывают. Подобной хернёй многие болеют.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571867
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Если заказчик требует, куда деваться.Создалось впечатление, что он сам себе заказчик, но не будем за него рассуждать. Пусть сам скажет, если захочет. :-)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571869
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttПодобной хернёй многие болеют.Ну Бог им судья! :-)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571894
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANAНе обращай внимания, это очередной комментарий "воще невпопад" :)
Ты сам разобрался с вопросом ITшника - как делается корзина?Лично я для незалогиненого пользователя корзину храню в localStorage, а для залогиненого в БД.
А вся логика: пересчёт итоговой стоимости, скидки, налоги, оформление заказа, приём онлайн и оффлайн платежей, рассылка уведомлений, - на сервере.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571906
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
ок. Уже не актуально. Проехали.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571919
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КViPRos, а что за сборка ВИПРОС.Бюджетирование ? Таки не легло бюджетирование в универсальную модель , пришлось что-то специальное писать, на "голом" дотнете, с применением, прости Господи, ООП?
Это прикладной код. Модель на ВИПРОС, но много "ручных" форм. Писал не я.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571923
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонViPRosпробовал несколько библиотек тогда одновременно, а имена совпадали
alias для namespace? не, не слыхал )
какие то вы уж строгие все
чем ляля, вот возьми и улучши этот код, глядишь и пригодилось бы
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571924
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttPetro123пропущено...
тогда сразу сознайся что ты белая ворона. С этим тоже можно жить.

Ты похоже говоришь чтобы просто говорить ))
бот
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571929
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosАлексей КViPRos, а что за сборка ВИПРОС.Бюджетирование ? Таки не легло бюджетирование в универсальную модель , пришлось что-то специальное писать, на "голом" дотнете, с применением, прости Господи, ООП?
Это прикладной код. Модель на ВИПРОС, но много "ручных" форм. Писал не я.Ok
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571930
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosАлексей КViPRos, а что за сборка ВИПРОС.Бюджетирование ? Таки не легло бюджетирование в универсальную модель , пришлось что-то специальное писать, на "голом" дотнете, с применением, прости Господи, ООП?
Это прикладной код. Модель на ВИПРОС, но много "ручных" форм. Писал не я.
А там была полная свобода у чека и он туда впихнул все что знал и мог.
Сейчас кажется переписали.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571936
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosбот
Слова не мальчика, но мужа на пенсии с кодом пенсионера.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571962
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

а чем тебя ПТ не устраивает
ты же ничего по существу не говоришь
ну любишь ты ооп и фаулера - флаг тебе в руки, а мне они пофиг
видишь а не ругаю Алекса5555 или хвоста и т.д., так как они говорят по существу (возможно и не совсем, но тут виноват я - они говорят с моих слов, а не анализировали ВИПРОС и т.д., а косноязычен обычно), а ты просто трындишь и злишь - ненавижу вампиров
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571980
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
Сегодня вечер юмора.
Если ты Пастернака не читал, но осуждаю, то какого хрена лезешь в программирование?
Я код пишу каждый день.
Ты его писал лет 10 назад. Я тебя как облупленного знаю в ветке Разработка ИС.
Если ты ООП, нафиг, DDD не слышал, методы тормозят)))).
Какого хрена прилез?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571984
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
Впрочем вопрос риторический.
Поэтому, парни! Кто код сам не пишет, а поучает других - идите в ветки где одни начальники и IT боссы.).
Вы там и есть, только что то не так пошло.
Удачи!
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571993
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

нифига ты не пишешь
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571994
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

а на ооп , ддд, ерп, ххх мне наплевать, и на фаулера тоже - он и дейт - два дебила.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571996
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosPetro123,
нифига ты не пишешь
Дурацкий ответ, т.к. сравни свой профиль за год и мой.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39571999
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosViPRos,
а на ооп , ддд, ерп, ххх мне наплевать, и на фаулера тоже - он и дейт - два дебила.
Один ты в белом). Ты хороший, но гуляй мальчик.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572006
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123skyANA,
ок. Уже не актуально. Проехали.Да я вижу уже, что тебе интереснее посраться с Сахаватом, не буду отвлекать техническими вопросами
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572011
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Я понял. В ветке шарп программистов интереснее чем там где вы сидите).
Я то с ним разговариваю, а твой пост зачем был?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572016
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ViPRosViPRos,
а на ооп , ддд, ерп, ххх мне наплевать, и на фаулера тоже - он и дейт - два дебила.
Один ты в белом). Ты хороший, но гуляй мальчик.
да при чем тут хороший, нехороший?
просто мне нравится все делать по своему
и если в итоге мое не хуже твоего то мне пофиг на каких оопах она написана
любой код - техническое решение, компромисс для достижения цели
нет никакой нужды сделать его совершенным - я же не книги учебные пишу для далбоебов
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572017
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAPetro123skyANA,
ок. Уже не актуально. Проехали.Да я вижу уже, что тебе интереснее посраться с Сахаватом, не буду отвлекать техническими вопросами
ему просто охота посраться, я просто не выдержал и ввязался
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572018
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
Делай по своему. Вадя вон 50 страниц доказывает что ооп фигня).
Не заходи за красную линию).
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572019
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ViPRosPetro123,
нифига ты не пишешь
Дурацкий ответ, т.к. сравни свой профиль за год и мой.
а че в профиле написан код?
покажи какой нить кусок из жизни и готовься к экзекуциям
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572022
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ViPRos,
Делай по своему. Вадя вон 50 страниц доказывает что ооп фигня).
Не заходи за красную линию).
ООП не фигня - ООП для мертвых артефактов, для законченных моделей
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572023
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
Он не сравним с твоим. По анализу что в школе было?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572025
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosООП не фигня - ООП для мертвых артефактов, для законченных моделей
Угу. Весь Мир переведем на Випрос Модель))))
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572026
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ViPRos,
Он не сравним с твоим. По анализу что в школе было?
анализ у меня 1-2 и частично 3 курс универа
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572028
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
Есть еще слоган - фреймворки это не нужные прокладки))
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572029
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

тебя что на пенсию выпроводили?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572033
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosPetro123,

тебя что на пенсию выпроводили?
Анализ опять двойка.
Я встал в 7 утра, а ты спать пошел ))))))) LOL
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572034
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Расходимся, работаем.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572094
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosпокажи какой нить кусок из жизни и готовься к экзекуциям

ггг
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572098
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosООП для мертвых артефактов, для законченных моделей

Ну не совсем для законченных, точнее для законченных в runtime, и плохо, если на каждый чих надо останавливать runtime, пересобирать и перевыкладывать. Как некий полумер, это динамические куски -- плагины, или ещё хуже, интерпертация. ООП для фреймворков, библиотек, для core-платформенного кода. Но благодаря стараниям Microsoft, и других ребят, которые хотели чтобы любая кухарка была программистом, ща ООП юзается «по учебникам», типа соооздалии класс «Товар», отыть ща, выведем его на форму. И такое в таком духе, получается ущербная вафля. Бизнес-домен не должен быть представлен иерархией классов и тупых DTO, это подход вечного программирования. Хорош, когда мозгов нехватает на большее, а деньги получать охота, за бесконечную однообразную работу.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572140
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ООП - говно! Только F# и Akka.NET!
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572283
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAООП - говно! Только F# и Akka.NET!

F# дааа, мы его тут щас подключаем для скриптования наряду с Lua, чумовая чума!

ещё Orleans ничё так )
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572635
Kolyan88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttskyANAООП - говно! Только F# и Akka.NET!

F# дааа, мы его тут щас подключаем для скриптования наряду с Lua, чумовая чума!

ещё Orleans ничё так )

с Lua же будет чз Interop взаимодействие? нет проблем, особенно для веб-приложений?
чем не устроил в качестве скриптового языка родной для .NET C#?
и почему не достаточно одного скриптового языка?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572670
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyan88,
Веб проект из двух частей. Клиент и сервер. Поэтому когда круто, то все по 2).
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572685
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyan88чем не устроил в качестве скриптового языка родной для .NET C#?
Это какой, чтобы аналитик написал вместо программиста:
width = 100
height = width*1.2
positions[0] = {x=0, y=height-20 }
Потом загрузил и выполнил?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572694
Kolyan88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Kolyan88чем не устроил в качестве скриптового языка родной для .NET C#?
Это какой, чтобы аналитик написал вместо программиста :
width = 100
height = width*1.2
positions[0] = {x=0, y=height-20 }
Потом загрузил и выполнил?

может не аналитик, а конфигураст?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572697
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyan88,
У hVostt аналитики.
Конфигурасты не часто правят конфигурацию. Поэтому меньше нужны скрипты. Но вполне возможны и они)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572702
Kolyan88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Kolyan88,
У hVostt аналитики.
Конфигурасты не часто правят конфигурацию. Поэтому меньше нужны скрипты. Но вполне возможны и они)

не суть важно. не вижу тут каких-то явных преимуществ Lua перед C#
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572709
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyan88не вижу тут каких-то явных преимуществ Lua перед C#
Если не видишь, давай юз-кейс или ВИ(вариант использования) на шарпе ТЗ выше.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572712
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyan88с Lua же будет чз Interop взаимодействие? нет проблем, особенно для веб-приложений?

NeoLua


Kolyan88чем не устроил в качестве скриптового языка родной для .NET C#?

своей сложностью, скриптовой язык нужен для аналитиков для описания линейной бизнес-логики, для запросов данных и сёрфинга по графу бизнес-модели, для валидации, описания бизнес-правил и политик.

Kolyan88и почему не достаточно одного скриптового языка?

ну:

1. Lua не асинхронный, поэтому все асинхронные операции через коллбеки, это отстой
2. F# офигеннен, и нам очень захотелось :)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572713
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyan88не суть важно. не вижу тут каких-то явных преимуществ Lua перед C#

Lua учится на 15 минут. на практике проверено в бою.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572743
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttLua не асинхронный, поэтому все асинхронные операции через коллбеки, это отстой
2. F# офигеннен, и нам очень захотелось :)
Аналитикам асинхронность перебор).
А функциональный ЯП это уже совсем другая песня.
Мы тебя потеряем, не ходи туда)).
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572747
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyan88Lua перед C#
Разве шарп стал скриптовым ЯП?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572820
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Аналитикам асинхронность перебор).

коллбеки тоже не фонтан. хотя в большинстве мест мы это инкапсулируем.


Petro123А функциональный ЯП это уже совсем другая песня.

нормальная песня, главное переступить порог
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572821
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Kolyan88Lua перед C#
Разве шарп стал скриптовым ЯП?

с рослином можно
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572849
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyan88Petro123Kolyan88,
У hVostt аналитики.
Конфигурасты не часто правят конфигурацию. Поэтому меньше нужны скрипты. Но вполне возможны и они)

не суть важно. не вижу тут каких-то явных преимуществ Lua перед C#
в ВИПРОС именно C#
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39572852
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

и без рослина было куча возможностей, с рослином лучше
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573014
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttнормальная песня, главное переступить порог
Не. Я знаю только пару человек, кто может совмещать функциональное с обычным. Слишком разная парадигма.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573034
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRoshVostt,

и без рослина было куча возможностей, с рослином лучше

C# для скриптинга не подходит, с рослином или без. Не важно.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573035
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Не. Я знаю только пару человек, кто может совмещать функциональное с обычным. Слишком разная парадигма.

современный разработчик C# уже его совмещает, даже не замечая этого.
вот чистая функциональщина это трудно. по началу.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573038
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttвот чистая функциональщина это трудно. по началу.

хотя skyANA утверждал, что без опыта императивщины, вход в ФП проще, чем в ООП. не имею никакой возможности проверить .. пока что. посмотрим насколько просто будет затащить некоторых аналитиков на F#.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573055
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttбез опыта императивщины
Ну, если взять Чистый разум)))))))))).
Да где ж его взять).
Как пить дать обратно нет возврата. Т.к. будет тоже отравлен и не воспримет, ...состояние, ооп, ...
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573081
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttViPRoshVostt,

и без рослина было куча возможностей, с рослином лучше

C# для скриптинга не подходит, с рослином или без. Не важно.

обоснуй
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573103
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosобоснуй

Чё там обосновывать? Lua учится за 15 минут, по C# надо целые курсы проводить многодневные. Смысл скриптинга, вынос логики на максимально высокий прикладной уровень, DSL, чтобы этим могли пользоваться аналитики без знаний сложного языкового синтаксиса. Надо конкретно упороться, чтобы вывести на туда C#, это ж пппц полный.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573194
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Простых вещей и LINQ достаточно почти для всех.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573195
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F# что ли проще?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573210
Kolyan88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttViPRosобоснуй

Чё там обосновывать? Lua учится за 15 минут, по C# надо целые курсы проводить многодневные. Смысл скриптинга, вынос логики на максимально высокий прикладной уровень, DSL, чтобы этим могли пользоваться аналитики без знаний сложного языкового синтаксиса. Надо конкретно упороться, чтобы вывести на туда C#, это ж пппц полный.

в том объёме, в котором используется C# для скриптинга, учить его не более, чем Lua (Pascal, JavaScript, VB, 1С и т.п.). а полноценно Lua не за 15 мин. учится, там довольно-таки много всего, язык совсем не примитивный. Причем базовые концепции Lua (например "таблицы хватит для всех"), совсем не для "аналитика", а, скорее, для программиста, для которого Lua не первый (и не второй, и не третий, ...) язык.

но, это, конечно, все лирика
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573211
Kolyan88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosF# что ли проще?

вот тоже задумался. если мерить по себе, то для меня F# (Lisp, Haskel и т.п.) не проще. адекватное применение функциональных языков видел в Autocad и Maple, но там пользователи ("аналитики") по-определению должны быть сильно прошарены в математике (а программирование всегда не далеко от неё), иначе им просто нечего делать в этих продуктах
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573220
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyan88но, это, конечно, все лирика
Да, лирика. у него проекты все веб.
Отсюда смесь технологий в разы больше чем десктоп.
Это данность и линейки шарп во всех ипостасях у него не будет.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573221
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosПростых вещей и LINQ достаточно почти для всех.

мне очень нравится, когда разработчик, мыслящий своими категориями «простоты» думает, что оно так для всех. это из разряда, когда разработчик делает дизайн ПО, получается лютый пиз-ц, тоже в отношении выбора языка для скриптования.

если эти скрипты только ты и будешь писать, используй уже что хочешь, хоть brainfuck, никто с этим спорить не будет. если для обычных людей, то C# не подходит, просто ты не хочешь или не можешь этого понять.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573222
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosF# что ли проще?

нет, но для анализа и работы с данными подходит лучше, чем C#
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573224
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyan88в том объёме, в котором используется C# для скриптинга, учить его не более, чем Lua (Pascal, JavaScript, VB, 1С и т.п.). а полноценно Lua не за 15 мин. учится, там довольно-таки много всего, язык совсем не примитивный. Причем базовые концепции Lua (например "таблицы хватит для всех"), совсем не для "аналитика", а, скорее, для программиста, для которого Lua не первый (и не второй, и не третий, ...) язык.

но, это, конечно, все лирика

я не знаю какая у вас там лирика, а у нас практический опыт. и опыт показывает, что Lua внедряется весьма и весьма успешно. думаете мы C# не пробовали? пробовали, это был лютейший треш, и повторять этот опыт больше не хочется. иди потом над каждым сиди и объясняй, почему значение не лезет в переменную, и зачем везде нужен ToString, это же натуральная жопа, для скриптинга не подходит абсолютно. и LINQ ситуацию не спасает, а ещё больше усугубляет.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573229
Kolyan88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttKolyan88в том объёме, в котором используется C# для скриптинга, учить его не более, чем Lua (Pascal, JavaScript, VB, 1С и т.п.). а полноценно Lua не за 15 мин. учится, там довольно-таки много всего, язык совсем не примитивный. Причем базовые концепции Lua (например "таблицы хватит для всех"), совсем не для "аналитика", а, скорее, для программиста, для которого Lua не первый (и не второй, и не третий, ...) язык.

но, это, конечно, все лирика

я не знаю какая у вас там лирика, а у нас практический опыт. и опыт показывает, что Lua внедряется весьма и весьма успешно. думаете мы C# не пробовали? пробовали, это был лютейший треш, и повторять этот опыт больше не хочется. иди потом над каждым сиди и объясняй, 1) почему значение не лезет в переменную , и зачем 2) везде нужен ToString , это же натуральная жопа, для скриптинга не подходит абсолютно. и LINQ ситуацию не спасает, а ещё больше усугубляет.

1) от первого никуда не денешься, динамическая типизация не отменяет типизацию
2) так уж и везде?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573238
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyan881) от первого никуда не денешься, динамическая типизация не отменяет типизацию

вы вообще с языками с динамической типизацией когда-нибудь работали? разницу между динамической и статической типизацией понимаете? в чём она заключается? и кто вообще тут говорил про отсутствие типизации?

Kolyan882) так уж и везде?

везде, где принимается строка, а значение у вас что угодно, кроме строки.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573242
Kolyan88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttKolyan881) от первого никуда не денешься, динамическая типизация не отменяет типизацию

вы вообще с языками с динамической типизацией когда-нибудь работали? разницу между динамической и статической типизацией понимаете? в чём она заключается? и кто вообще тут говорил про отсутствие типизации?

Kolyan882) так уж и везде?

везде, где принимается строка, а значение у вас что угодно, кроме строки.

вы фразу до конца прочитали? если будет не соответствие типов для операции/функции/т.п. то это закончится Nil или еще какой-то фигней. причем источник этой фигни надо будет искать, и потом рассказывать "словами" пользователю "больше так не делай, потому что...". последнее означает, что он один фиг должен держать в уме типы.

приведите пример, где ваши аналитики не осиливали C#
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573247
Kolyan88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Kolyan88но, это, конечно, все лирика
Да, лирика. у него проекты все веб.
Отсюда смесь технологий в разы больше чем десктоп.
Это данность и линейки шарп во всех ипостасях у него не будет.

аццкий поток сознания
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573253
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyan88вы фразу до конца прочитали? если будет не соответствие типов для операции/функции/т.п. то это закончится Nil или еще какой-то фигней. причем источник этой фигни надо будет искать, и потом рассказывать "словами" пользователю "больше так не делай, потому что...". последнее означает, что он один фиг должен держать в уме типы.

нет, не должен пользователь держать типы. вся рутина с приведением типов происходит на стороне сервера.

взять, например, валидацию характеристики. скрипт на Lua должен вернуть что угодно, что бы мы интерпретировали, как результат валидации:

1. это может быть строка = сообщение об ошибке валидации
2. это может быть False = ошибка валидации со стандартным сообщением
3. это может быть число 0 = ошибка валидации со стандартным сообщением
4. это может быть таблица, где ключом является имя характеристики, или объект характеристики домена, а значение результат валидации
5. это может быть специальный объект валидации UserData, полученный из функции контекста

и ещё много разных кейсов. пользователю довольно таки сложно написать функцию, чтобы она сломалась, если это не синтаксическая ошибка. основные ошибки именно логические, а не синтаксические или проблемы с приведением типов, возврат неподходящих значений и т.д. скрипт абсолютно всеяден.

поэтому:

Kolyan88вы фразу до конца прочитали?

ещё раз, где я говорил про отсутствие типизации? покажите, что я там должен был до конца дочитать? хватит уже придумывать.


Kolyan88если будет не соответствие типов для операции/функции/т.п. то это закончится Nil или еще какой-то фигней.

нет не закончится, мы обрабатываем все возможные и допустимые варианты, Lua очень гибкий в этом отношении. обрабатываем возврат, обрабатываем аргументы. пользователь по поводу типов вообще не парится. для пользователя есть числа, строки, функции, объекты домена и таблицы. самая сложная концепция Таблицы объясняется за 10 минут парой примеров.

Kolyan88и потом рассказывать "словами" пользователю "больше так не делай, потому что...". последнее означает, что он один фиг должен держать в уме типы.

вы меня слышите вообще или как? я сказал чёрным по белому, у нас есть практический опыт, наша система со скриптингом на Lua у нас крутится уже год, с охватом по всей России. аналитики там наколбасили просто тонны кода бизнес-логики без знаний и опыта программирования. самый первый месяц мы пробовали C# и это была полнейшая жопа, на столько, что чуть не сорвалась сама идея скриптинга, никто не хотел писать и работать на C#, никто не хотел финансировать обучение, командировки во все точки России, на Камчатку и во Владивосток, чтобы обучать людей C#-пу.

вы что мне пытаетесь доказать? у вас одни бредовые домыслы и смешные фантазии. у меня есть практический опыт внедрения.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573261
Kolyan88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttKolyan88вы фразу до конца прочитали? если будет не соответствие типов для операции/функции/т.п. то это закончится Nil или еще какой-то фигней. причем источник этой фигни надо будет искать, и потом рассказывать "словами" пользователю "больше так не делай, потому что...". последнее означает, что он один фиг должен держать в уме типы.

нет, не должен пользователь держать типы. вся рутина с приведением типов происходит на стороне сервера.

взять, например, валидацию характеристики. скрипт на Lua должен вернуть что угодно, что бы мы интерпретировали, как результат валидации:

1. это может быть строка = сообщение об ошибке валидации
2. это может быть False = ошибка валидации со стандартным сообщением
3. это может быть число 0 = ошибка валидации со стандартным сообщением
4. это может быть таблица, где ключом является имя характеристики, или объект характеристики домена, а значение результат валидации
5. это может быть специальный объект валидации UserData, полученный из функции контекста

и ещё много разных кейсов. пользователю довольно таки сложно написать функцию, чтобы она сломалась, если это не синтаксическая ошибка. основные ошибки именно логические, а не синтаксические или проблемы с приведением типов, возврат неподходящих значений и т.д. скрипт абсолютно всеяден.

поэтому:

Kolyan88вы фразу до конца прочитали?

ещё раз, где я говорил про отсутствие типизации? покажите, что я там должен был до конца дочитать? хватит уже придумывать.


Kolyan88если будет не соответствие типов для операции/функции/т.п. то это закончится Nil или еще какой-то фигней.

нет не закончится, мы обрабатываем все возможные и допустимые варианты, Lua очень гибкий в этом отношении. обрабатываем возврат, обрабатываем аргументы. пользователь по поводу типов вообще не парится. для пользователя есть числа, строки, функции, объекты домена и таблицы. самая сложная концепция Таблицы объясняется за 10 минут парой примеров.

Kolyan88и потом рассказывать "словами" пользователю "больше так не делай, потому что...". последнее означает, что он один фиг должен держать в уме типы.

вы меня слышите вообще или как? я сказал чёрным по белому, у нас есть практический опыт, наша система со скриптингом на Lua у нас крутится уже год, с охватом по всей России. аналитики там наколбасили просто тонны кода бизнес-логики без знаний и опыта программирования. самый первый месяц мы пробовали C# и это была полнейшая жопа, на столько, что чуть не сорвалась сама идея скриптинга, никто не хотел писать и работать на C#, никто не хотел финансировать обучение, командировки во все точки России, на Камчатку и во Владивосток, чтобы обучать людей C#-пу.

вы что мне пытаетесь доказать? у вас одни бредовые домыслы и смешные фантазии. у меня есть практический опыт внедрения.

пример кода C# который не осилили аналитики будет?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573274
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyan88пример кода C# который не осилили аналитики будет?

эмм.. а покажите-ка пример кода, который у вас не получилось написать.
вы с логикой вообще дружите?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573275
Kolyan88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttKolyan88пример кода C# который не осилили аналитики будет?

эмм.. а покажите-ка пример кода, который у вас не получилось написать.
вы с логикой вообще дружите?

ясно. бла-бла-бла, а не опыт внедрения
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573278
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyan88ясно. бла-бла-бла, а не опыт внедрения

на понт своих друзей в школе брать будете своим бла-бла.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573293
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyan88,
Вы в архитектуре ноль батенька, судя по ответу. По программированию не знаю.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573303
Kolyan88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Kolyan88,
Вы в архитектуре ноль батенька, судя по ответу. По программированию не знаю.

если судить по вашим ответам, то вы далеко ниже нуля
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573311
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

я просто не обратил внимание, что это жирный глупый тролль, зарегистрировавшийся только вчера
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573318
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt2. F# офигеннен, и нам очень захотелось :)

не отставай, пора на Q# переходить ))

https://news.microsoft.com/ru-ru/quantum-development-kit/
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573320
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонhVostt2. F# офигеннен, и нам очень захотелось :)

не отставай, пора на Q# переходить ))

https://news.microsoft.com/ru-ru/quantum-development-kit/

у нас нет пока квантовых вычислений, но как будут, так сразу
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573324
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttPetro123,

я просто не обратил внимание, что это жирный глупый тролль, зарегистрировавшийся только вчера
Я даже догадался кто там)))
Удачи ему. Его твои или другие ответы не интересуют.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573325
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон,
Про F# я тоже не верю, а Lua интересно).
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573327
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, хорош ветку в хлам превращать.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573328
Kolyan88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123hVosttPetro123,

я просто не обратил внимание, что это жирный глупый тролль, зарегистрировавшийся только вчера
Я даже догадался кто там)))
Удачи ему. Его твои или другие ответы не интересуют.

ответы hVostt интересны и полезны, даже несмотря на хамскую манеру общения. а вот зачем ты тут пишешь - действительно не понятно
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573332
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolyan88,
Перелогинься). Ты от злости даже логин завел.
По теме топика есть что?
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573338
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Про F# я тоже не верю

не веришь в F#? ты ты еретик
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573351
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
функциональное это противопоставление ООП.
А ООП мне просто легче даётся. Как парадигма.
Бог одно дал, другое взял (с)
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573366
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123hVostt,
функциональное это противопоставление ООП.
А ООП мне просто легче даётся. Как парадигма.
Бог одно дал, другое взял (с)

нет никакого противопоставления
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573405
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttPetro123hVostt,
функциональное это противопоставление ООП.
А ООП мне просто легче даётся. Как парадигма.
Бог одно дал, другое взял (с)

нет никакого противопоставления
Ну, это imho основано на:
...
Функциональное программирование предполагает обходиться вычислением результатов функций от исходных данных и результатов других функций, и не предполагает явного хранения состояния программы.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573411
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Функциональное программирование предполагает обходиться вычислением результатов функций от исходных данных и результатов других функций, и не предполагает явного хранения состояния программы.

функциональное программирование обычно противопоставляют императивному, а не ООП :)
ну а на деле и ФП, ИП, ООП.. отлично друг с другом сочетаются. чистые ФП интересны лишь на ограниченном контексте задач в целях распараллеливания вычислений.
...
Рейтинг: 0 / 0
repository & aggregate entity
    #39573422
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttчистые ФП интересны лишь на ограниченном контексте задач в целях распараллеливания вычислений.
+1
А я о чем?
Состояние главная часть ООП, а в чистом нет состояния.
Удачи!
...
Рейтинг: 0 / 0
305 сообщений из 305, показаны все 13 страниц
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / repository & aggregate entity
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]