powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Repository & Service
25 сообщений из 133, страница 5 из 6
Repository & Service
    #39189907
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВладимир Путин-Ленинпропущено...


буттон_клик?Да, если нет причин для усложнения.
А какие есть причины для усложнения?
...
Рейтинг: 0 / 0
Repository & Service
    #39189910
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Да, если нет причин для усложнения.
А какие есть причины для усложнения?См. "выделение класса" по Фаулеру.
...
Рейтинг: 0 / 0
Repository & Service
    #39189911
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО многое зависит от бизнеса. В РЖД болото, бизнес дорос до своего потолка и Алексей не видит причин заморачиваться над чем-то.

А у кого-то стартап и цель за 5 лет выйти на аудиторию в несколько миллионов. Ясен пень тут задумаешься над архитектурой и всем выше перечисленным.
...
Рейтинг: 0 / 0
Repository & Service
    #39189918
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...

А какие есть причины для усложнения?См. "выделение класса" по Фаулеру.
:)

Алексей, когда предполагается нагрузка в 100 запросов в секунду, а через год в три раза больше, а через 3 года в десять, то надо изначально проектировать, а не потом.
...
Рейтинг: 0 / 0
Repository & Service
    #39189923
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
Алексей, когда предполагается нагрузка в 100 запросов в секунду, а через год в три раза больше, а через 3 года в десять, то надо изначально проектировать, а не потом.
Не знаю как там проектировали изначально stackoverflow, но при возросших нагрузках выкинули нафик DI контейнеры, как вносящие огромнейшие тормоза.
...
Рейтинг: 0 / 0
Repository & Service
    #39189927
Владимир Путин-Ленин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВskyANAАлексей, когда предполагается нагрузка в 100 запросов в секунду, а через год в три раза больше, а через 3 года в десять, то надо изначально проектировать, а не потом.
Не знаю как там проектировали изначально stackoverflow, но при возросших нагрузках выкинули нафик DI контейнеры, как вносящие огромнейшие тормоза.

откуда информация? есть ссылка?
...
Рейтинг: 0 / 0
Repository & Service
    #39189929
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Путин-ЛенинЕвгенийВпропущено...

Тут правильней сразу смотреть в сторону старого доброго датаридера и ручного маппинга.

а потом написать самодельный ОРМ, который потом заменить на нормальный.
Ну эт когда докупят 100500 топовых серверов.
...
Рейтинг: 0 / 0
Repository & Service
    #39189947
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Путин-Ленин
откуда информация? есть ссылка?
Есть.
...
Рейтинг: 0 / 0
Repository & Service
    #39189973
Владимир Путин-Ленин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВВладимир Путин-Лениноткуда информация? есть ссылка?
Есть.

Не используют Dependency-Injection и IoC контейнеры. В коде практически всё построено на базе статических методов и классов. Аргументация - простота и улучшенная производительность. (Я бы сказал, что изначально без преимуществ ООП код строился и выработался стиль разработки, который менять теперь никто не хочет; безобразно, но однообразно .)

что-то как-то...
...
Рейтинг: 0 / 0
Repository & Service
    #39189983
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВskyANAАлексей, когда предполагается нагрузка в 100 запросов в секунду, а через год в три раза больше, а через 3 года в десять, то надо изначально проектировать, а не потом.
Не знаю как там проектировали изначально stackoverflow, но при возросших нагрузках выкинули нафик DI контейнеры, как вносящие огромнейшие тормоза.
А при чём тут проектирование? Репозиторий перестаёт быть репозиторием, если его создавать через new? :)
...
Рейтинг: 0 / 0
Repository & Service
    #39189986
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Путин-ЛенинЕвгенийВпропущено...

Не знаю как там проектировали изначально stackoverflow, но при возросших нагрузках выкинули нафик DI контейнеры, как вносящие огромнейшие тормоза.

откуда информация? есть ссылка?
Они сами про это рассказывают на конференциях. Как профилировали память и увидели какой трафик пораждают DI контейнеры.
Также они не пишут тестов.
...
Рейтинг: 0 / 0
Repository & Service
    #39189998
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ещё можно посмотреть на ozon.ru, что был монолитным приложением и когда стало плохо, то распилили его на сервисы по аналогии с амазоном и получили профит.
И подумать, а хотите-ли вы идти по такому пути: сначала накопить кучу технического долга, а потом ударно его отдавать, или может лучше воспользоваться чужим опытом и проектировать до, а не рефакторить после?
...
Рейтинг: 0 / 0
Repository & Service
    #39190039
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Путин-Ленин
Не используют Dependency-Injection и IoC контейнеры. В коде практически всё построено на базе статических методов и классов. Аргументация - простота и улучшенная производительность. (Я бы сказал, что изначально без преимуществ ООП код строился и выработался стиль разработки, который менять теперь никто не хочет; безобразно, но однообразно .)

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

P. S. Вот ей Богу, как Симон и Борода в той серии критиковали рейтинг Moody`s :)
...
Рейтинг: 0 / 0
Repository & Service
    #39190042
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТакже они не пишут тестов.
Правильно делают!
...
Рейтинг: 0 / 0
Repository & Service
    #39190169
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КИли так:
Код: c#
1.
2.
3.
4.
5.
public void Rollback()
{
    dbContext.Dispose();
    dbContext = contextFactory.CreateDbContext();
}


Ой, спасибо. Оригинально. Я бы вот сходу наверное бы не додумался ). Читаю, пишу, читаю ... взгляд на все сейчас затуманен ... )))
А в целом UOW выглядит так как задумывалось Фаулером? Это была его идея?
...
Рейтинг: 0 / 0
Repository & Service
    #39190205
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВskyANAТакже они не пишут тестов.
Правильно делают!
У них процесс тестирования по другому выстроен :) Тупо не писать тесты - это ни фига не правильно.
...
Рейтинг: 0 / 0
Repository & Service
    #39190300
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAУ них процесс тестирования по другому выстроен :)
Как?
...
Рейтинг: 0 / 0
Repository & Service
    #39190331
Иммануил Кант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВskyANAУ них процесс тестирования по другому выстроен :)
Как?

наверное, когда баги находят пользователи. сайт то для программистов :)
...
Рейтинг: 0 / 0
Repository & Service
    #39190502
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иммануил КантЕвгенийВпропущено...

Как?

наверное, когда баги находят пользователи. сайт то для программистов :)
примерно так :) сайт, где они находятся, не основной
...
Рейтинг: 0 / 0
Repository & Service
    #39190657
Иммануил Кант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt3. Для расширения (между EF и репой можно организовать свой слой умного кеша)

спрошу здесь. у меня такая задача:
1. ASP.NET MVC-приложение - просто сайт для отображения данных.
2. Б о льшая часть данных - это некоторый архив, который желательно кешировать. Но есть данные, которые не архив, они меняются, и всегда должны показываться актуальными, задержка актуальности не допустима.
3. есть простой признак, как определить "архив/не архив"

собственно вопрос: как лучше организовать кеширование, максимально используя стандартные средства, не изобретая никаких собственных велосипедов (некоторые запросы тяжелые, много всяких агрегаций/вычислений)?

сам сейчас сделал так: для тяжелых запросов из архива сделал матвью, в сервисах на основе п.3 вызываю репо который либо для архива, либо для актуальных данных.
...
Рейтинг: 0 / 0
Repository & Service
    #39190663
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иммануил Кант(некоторые запросы тяжелые, много всяких агрегаций/вычислений)?
Подобные проблемы решаются добавлением избыточности. Например есть документ с табличной частью где построчно считается сумма (цена * количество) и есть сумма по документу. Чтобы не считать каждый раз сумму документа (сумма цена * количество всех строк) добавляют в шапку избыточное поле сумма. При каждом изменении пересчитывают, например в триггере. Точно также можно хранить любые расчетные параметры и обновлять при каждом изменении исходных данных. Т.е. вычислительная нагрузка во времени распределяется между вводом данных и запросами.
...
Рейтинг: 0 / 0
Repository & Service
    #39191011
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAСервис - это бизнес-логика .
Это как если бы Вы что-то делали, делали, проверяли, сверяли, получили результат (вот это сервис)... и на листочек записали (вот это репозиторий).
Просто многие пихают первое в контроллеры, а потом задаются вопросом: а чем у нас сервисы от репозиториев-то отличаются? :)

Вот тут созрел вопрос. Интересно как бы Вы реализовали.
Есть Stage (один) и Step (ко многим) в базе.
При создании Step на странице сайта нужно выбрать Stage из DropDownList.
Вот модель
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public class StepViewModel
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }
        [Required]
        [StringLength(100)]
        public string Name { get; set; }
        [Column(TypeName = "ntext")]
        public string Goal { get; set; }
        [Column(TypeName = "ntext")]
        public string Description { get; set; }
        public int StageId { get; set; }
        public StageViewModel Stage { get; set; }
        public IEnumerable<StageViewModel> StageDropDownListItems { get; set; } // здесь отличие от  db и dto классов
    }


Вот контроллер
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        [HttpGet]
        public ActionResult Create()
        {
            var stages = stageService.GetStages(); 
            var stagesVM = mapper.Map<IEnumerable<StageViewModel>>(stages);
            var model = new StepViewModel()
            {
                StageDropDownListItems = stagesVM
            };
            return View(model);
        }


Видно что какая-то часть логики в контроллере. Вы бы оставили все как есть в контроллере или перенесли бы это в логику?
PS. Сейчас у меня все это в контроллере, есть желание перенести в логику, но тогда придется менять DTO Step в бизнес логике, добавив IEnumerable<Stage>. Напомню что Stage (один) и Step (ко многим) в базе и не логично как-то в DTO Step иметь IEnumerable<Stage>. Заранее спасибо.
...
Рейтинг: 0 / 0
Repository & Service
    #39191047
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВskyANAАлексей, когда предполагается нагрузка в 100 запросов в секунду, а через год в три раза больше, а через 3 года в десять, то надо изначально проектировать, а не потом.
Не знаю как там проектировали изначально stackoverflow, но при возросших нагрузках выкинули нафик DI контейнеры, как вносящие огромнейшие тормоза.В каком году это было? Сейчас каждый уважающий себя DI/ORM/и т.п. применяет Emit-кодогенерацию - скорость мало чем отличается от рукописного кода.
...
Рейтинг: 0 / 0
Repository & Service
    #39191048
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИМХО многое зависит от бизнеса. В РЖД болото, бизнес дорос до своего потолка и Алексей не видит причин заморачиваться над чем-то.

А у кого-то стартап и цель за 5 лет выйти на аудиторию в несколько миллионов. Ясен пень тут задумаешься над архитектурой и всем выше перечисленным.Таки не нужно сравнивать суровую бизнес-аналитику и миллионы запросов со сложностью, сопоставимой с поиском в хэш-таблице - в обоих случаях свои сложности и тонкие места.
skyANAАлексей Кпропущено...
См. "выделение класса" по Фаулеру.
:)

Алексей, когда предполагается нагрузка в 100 запросов в секунду, а через год в три раза больше, а через 3 года в десять, то надо изначально проектировать, а не потом.Но какое это имеет отношение к "буттон_клик"? :-)
...
Рейтинг: 0 / 0
Repository & Service
    #39191147
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЕвгенийВпропущено...

Не знаю как там проектировали изначально stackoverflow, но при возросших нагрузках выкинули нафик DI контейнеры, как вносящие огромнейшие тормоза.В каком году это было? Сейчас каждый уважающий себя DI/ORM/и т.п. применяет Emit-кодогенерацию - скорость мало чем отличается от рукописного кода.
Что же ты не приехал на Highload++ 2015 и не поведал им об этом? :)
...
Рейтинг: 0 / 0
25 сообщений из 133, страница 5 из 6
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Repository & Service
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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