Mikhαil
какой ты некомандный игрок
Почему? Чувак же выше меня по должности был и решил что можно забить на комменты коллеги и замерджить свою ветку)
Shub
prove me wrong (pro-tip: you can't)
Shub
https://twitter.com/dsymetweets/status/1268678455366991872?s=09
Shub
90% маркетинга и 10% попрошайства. можно скипать
Vladislav
https://twitter.com/dsymetweets/status/1268678455366991872?s=09
Мне интересно почему сайт фаундейшена делают уже года три
Hog
и то, подсветка только линтером, варнинга компилятора на это нет
Ничо, что там значение не возвращается в этой ветке? Какой тип результата-то у фции?
Roman
Почему? Чувак же выше меня по должности был и решил что можно забить на комменты коллеги и замерджить свою ветку)
пушто так обычно маркируют, когда гришь "сэр, вы делаете хуйню, давайте перестанем"
Ayrat
иф возвращает HttpResponse
Ayrat
но тут же дискардится компилятором в утиль
Hog
Неявно это жопа
Mikhαil
пушто так обычно маркируют, когда гришь "сэр, вы делаете хуйню, давайте перестанем"
В смысле? У него был пулреквест, я отписал свои замечания. Он подумал подумал и забил на них хуй
Hog
В ф# бы просил добавить в игнор...
Hog
Напиши им ишшую!
Ayrat
я хочу явно дискардить результаты
Ayrat
если надо.
Vladislav
Hog
Но это ж дохуя писать. А мы хочим всё консайз
Hog
Это психологическая поддержка же :)
Ilya
Надо посмотреть, какие там статик анализаторы есть для котлина.
Shub
Мне интересно почему сайт фаундейшена делают уже года три
не сильно нужно, видимо. в конце концов, каждый участник имеет личные цели, пока что не нашлось кого-то, кому лично надо
Vladislav
Ну они чето там делают
Vladislav
Но бля
Vladislav
Дайте трём русским на апворке 15$ в час и два месяца
Shub
Ну они чето там делают
обычно такие вещи происходят, когда находится желающий сделать репутацию в мире F#, но не имеющий достаточной квалификации или таланта. такие люди начинают заниматься сайтами фаундейшена, писать всякие там СоС и заносить инклюзивность
Vladislav
Ну там прикол что у них внешний контрактор
Vladislav
три года на текстовый сайт.
Vladislav
которого нет.
Shub
Ну там прикол что у них внешний контрактор
ты заметил, что так тут практически все?
Hog
Зачем сайт ваще нужен репа на гх с гх-пагес на домен замаплена. Всё. Сайт готов.
Shub
вся документация по языку - это getting started
Hog
И притчи с былинами, которые на ночь тут рассказывают :)
Shub
Зачем сайт ваще нужен репа на гх с гх-пагес на домен замаплена. Всё. Сайт готов.
ну это слишком просто. как бюджет осваивать? куда менеджера пристроить? как процесс организовать? это важные вопросы очень
Shub
минвай
Shub
https://dzone.com/articles/why-many-return-statements-are-a-bad-idea-in-oop
Ilya
Ээээ...
Vladislav
ты заметил, что так тут практически все?
Да заметил. Просто проблема в том что сверху них никого нет кто бы их за растрату бюджета и времени по голове бил
Vladislav
Я ещё дизайн видел
Vladislav
Это ужас
Vladislav
Его обосрали конечно сразу
Vladislav
Это было год назад где-то
Hog
ну это слишком просто. как бюджет осваивать? куда менеджера пристроить? как процесс организовать? это важные вопросы очень
Бля. Для днвердевдея такое же было - чото там какие-то базы модели контроллеры и конца и края нет. Я просто за ночь стат страничек нахуярил. И два раза в год обновляю. А та мегарепа так и заглохла
Hog
Ёрлиретурнофобии приступ острый?
Mikhαil
А чем плохи инклуды если они в join конвертируются?
Ну там получался сгенеренный код диковатый и руками можно было переджойнить оптимальнее
Vagif
Всем привет. Недавно обновил приложение с core 2.1 на 3.1. Заметил такую следующее: запросы к б.д на ef core 3.1 стали отрабатывать очень долго, когда на 2.1 проходили моментально. Кто может посоветовать в какую сторону по смотреть. Приложу скрин с запросом, понимаю что он большой, что можно зарефакторить и разбить на подзапросы, но в данный момент нет такой возможности. Может можно как-то ускорить правильно путём конфигураций?
Напоминает код, который мне пришлось написать, когда в срочном порядке нужно было перевести БД с Оракла на MySQL, а исходная база не просто работала под Ораклом, но еще и все вьюшки были построены на т.н. materialized views - специфический синтаксис Оракла, причем 80% вьюшек составляла бизнес-логика. Нужно было или написать аналогичный код под MySQL, или нечто на линке, так чтобы обе базы работали в переходный период. У меня получился нейтральный код на Линке с dotConnect EF драйвером, который действительно работал под обеими базами, но это, наверное, самый жуткий код, который мне пришлось написать в последние лет двадцать.
Vladislav
С Оракла на Майскл, в этой ситуации можно только посочувствовать
Vladislav
Если с первым есть приколы, то второй это один большой прикол
Shub
Ёрлиретурнофобии приступ острый?
бугаенко перестал принимать рецептурные препараты
Shub
я лично угадал автора просто по названию
Крылатый
Vagif
Чтобы не быть голословным - вот это код, который лично я написал. public IEnumerable<VSerieSeasonsPrograms> GetVSerieSeasonsPrograms(long? serieId, long? seasonId = null) { var query = serieId.HasValue ? from Seasons in this.Seasons join Series in this.Series on Seasons.SerieId equals Series.SerieId join Programmes in this.Programmes on Seasons.SeasonId equals Programmes.SeasonId join ProgrammesTitles in this.ProgrammesTitles on Programmes.ProgrammeId equals ProgrammesTitles .ProgrammeId join Transmissions in this.Transmissions on Programmes.ProgrammeId equals Transmissions.ProgrammeId where serieId.Value == Series.SerieId && ProgrammesTitles.TitlesGroupType == "mainTitle" orderby Programmes.EpisodeNumber, Transmissions.ActualStart select new { Seasons, Series, Programmes, ProgrammesTitles.Title, Transmissions } : from Seasons in this.Seasons join Series in this.Series on Seasons.SerieId equals Series.SerieId join Programmes in this.Programmes on Seasons.SeasonId equals Programmes.SeasonId join ProgrammesTitles in this.ProgrammesTitles on Programmes.ProgrammeId equals ProgrammesTitles .ProgrammeId join Transmissions in this.Transmissions on Programmes.ProgrammeId equals Transmissions.ProgrammeId where Seasons.SeasonId == seasonId && ProgrammesTitles.TitlesGroupType == "mainTitle" orderby Programmes.EpisodeNumber, Transmissions.ActualStart select new { Seasons, Series, Programmes, ProgrammesTitles.Title, Transmissions }; var materialized = query.ToList(); var useTransmissionDate = materialized.Any() && materialized.First().Series.EpisodeTitleFormat == "titleDate"; var useEpisodeTitle = materialized.Any() && materialized.First().Series.EpisodeTitleFormat == "titleEpisode"; var grouped = (from m in materialized group m by m.Transmissions.ProgrammeId into g select new { Seasons = g.Select(x => x.Seasons).FirstOrDefault(), Series = g.Select(x => x.Series).FirstOrDefault(), Programmes = g.Select(x => x.Programmes).FirstOrDefault(), Title = g.Select(x => x.Title).FirstOrDefault(), ActualStart = g.Where(x => x.Transmissions.ActualStart == g.Min(y => y.Transmissions.ActualStart)).Select(z => z.Transmissions.ActualStart).FirstOrDefault() }).ToList(); var result = grouped .Select(x => new VSerieSeasonsPrograms { SeasonId = x.Seasons.SeasonId, SerieId = x.Seasons.SerieId, SeasonName = x.Seasons.SeasonName, EpisodeNumber = (int?)x.Programmes.EpisodeNumber ?? 0, NumberOfEpisodes = (int?)x.Seasons.EpisodeTotal ?? 0, PiProgId = x.Programmes.PiProgId, ProgrammeTitle = useTransmissionDate ? $"{x.Title} - {grouped.FirstOrDefault(y => y.Programmes.ProgrammeId == x.Programmes.ProgrammeId)?.ActualStart:dd.MM.yyyy}" : useEpisodeTitle ? $"{x.Title} Ep. {x.Programmes.EpisodeNumber}:{x.Seasons.EpisodeTotal}" : x.Title, }); return result; }
Vladislav
Чтобы не быть голословным - вот это код, который лично я написал. public IEnumerable<VSerieSeasonsPrograms> GetVSerieSeasonsPrograms(long? serieId, long? seasonId = null) { var query = serieId.HasValue ? from Seasons in this.Seasons join Series in this.Series on Seasons.SerieId equals Series.SerieId join Programmes in this.Programmes on Seasons.SeasonId equals Programmes.SeasonId join ProgrammesTitles in this.ProgrammesTitles on Programmes.ProgrammeId equals ProgrammesTitles .ProgrammeId join Transmissions in this.Transmissions on Programmes.ProgrammeId equals Transmissions.ProgrammeId where serieId.Value == Series.SerieId && ProgrammesTitles.TitlesGroupType == "mainTitle" orderby Programmes.EpisodeNumber, Transmissions.ActualStart select new { Seasons, Series, Programmes, ProgrammesTitles.Title, Transmissions } : from Seasons in this.Seasons join Series in this.Series on Seasons.SerieId equals Series.SerieId join Programmes in this.Programmes on Seasons.SeasonId equals Programmes.SeasonId join ProgrammesTitles in this.ProgrammesTitles on Programmes.ProgrammeId equals ProgrammesTitles .ProgrammeId join Transmissions in this.Transmissions on Programmes.ProgrammeId equals Transmissions.ProgrammeId where Seasons.SeasonId == seasonId && ProgrammesTitles.TitlesGroupType == "mainTitle" orderby Programmes.EpisodeNumber, Transmissions.ActualStart select new { Seasons, Series, Programmes, ProgrammesTitles.Title, Transmissions }; var materialized = query.ToList(); var useTransmissionDate = materialized.Any() && materialized.First().Series.EpisodeTitleFormat == "titleDate"; var useEpisodeTitle = materialized.Any() && materialized.First().Series.EpisodeTitleFormat == "titleEpisode"; var grouped = (from m in materialized group m by m.Transmissions.ProgrammeId into g select new { Seasons = g.Select(x => x.Seasons).FirstOrDefault(), Series = g.Select(x => x.Series).FirstOrDefault(), Programmes = g.Select(x => x.Programmes).FirstOrDefault(), Title = g.Select(x => x.Title).FirstOrDefault(), ActualStart = g.Where(x => x.Transmissions.ActualStart == g.Min(y => y.Transmissions.ActualStart)).Select(z => z.Transmissions.ActualStart).FirstOrDefault() }).ToList(); var result = grouped .Select(x => new VSerieSeasonsPrograms { SeasonId = x.Seasons.SeasonId, SerieId = x.Seasons.SerieId, SeasonName = x.Seasons.SeasonName, EpisodeNumber = (int?)x.Programmes.EpisodeNumber ?? 0, NumberOfEpisodes = (int?)x.Seasons.EpisodeTotal ?? 0, PiProgId = x.Programmes.PiProgId, ProgrammeTitle = useTransmissionDate ? $"{x.Title} - {grouped.FirstOrDefault(y => y.Programmes.ProgrammeId == x.Programmes.ProgrammeId)?.ActualStart:dd.MM.yyyy}" : useEpisodeTitle ? $"{x.Title} Ep. {x.Programmes.EpisodeNumber}:{x.Seasons.EpisodeTotal}" : x.Title, }); return result; }
Я писал нечто подобное когда узнал про кверисинтаксис
Shub
Ну ведь всё правильно же!
O great, another OO evangelist. I have great advice to all of you: use functional constructs when you are dealing with functions - that`s more logical. There is no reason to argue that OO makes code easier or better - you can mess in every class, no matter if it`s OO or functional. And last thing - puting OO everywhere just because you can and believe it is the right choice, actually makes your code slower because of all those unnecessary allocations and virtual invocations.
Vagif
Это фактически перенос кода на Oracle PL/SQL в LINQ, откуда его можно было пускать на БД разных типов.
Крылатый
Даладно!
*надел кэпку*
Roman
https://dzone.com/articles/why-many-return-statements-are-a-bad-idea-in-oop
с одной стороны я орнул с его pure object oriented world new If(new GreaterThan(a,b),a,b), с другой стороны давно понятно, что ебугаенко — это человек-шутка, и непонятно, зачем его продолжать постить)
Vagif
Изначальный код писал разработчик, уверенный, что если JOIN на 12 таблиц вынести из C# кода в сохраненные процедуры, то все проблемы быстродействия будут сняты и можно джойнить бесконечно.
Крылатый
Был бы у меня DBA я был бы таак счастлив.
Roman
Изначальный код писал разработчик, уверенный, что если JOIN на 12 таблиц вынести из C# кода в сохраненные процедуры, то все проблемы быстродействия будут сняты и можно джойнить бесконечно.
я как-то работал на проекте, где нашли хранимку, которая выполнялась 15 (пятнадцать) минут. И вызывалась в методе 4 раза подряд, пушто разработчику было судя по всему насрать
Vagif
с одной стороны я орнул с его pure object oriented world new If(new GreaterThan(a,b),a,b), с другой стороны давно понятно, что ебугаенко — это человек-шутка, и непонятно, зачем его продолжать постить)
"Multiple return statements in a method will cause your code not to be purely object-oriented." А какое вообще несколько ретурнов имеют отношение к ООП? Никакого.
Крылатый
Vagif
DBA починят, если что
У нас DBA код не пишут, и правильно в общем.
Anatoly
У нас DBA код не пишут, и правильно в общем.
у нас тоже :) но это обычный ответ таких разрабов
Vagif
Ну вообще, prepared statements вполне могут дать некоторый профит, особливо для таких крупных запросов. Оф корс, тут лучше бы вьюху))
Дают, конечно, особенно в materialized views. Но это все локальна оптимизация схемы, не отражающей нужд пользователя.
Vagif
А в Норвегии проблема расизма актуальна?
Наверное, она везде актуальна в той или иной степени. Раз был Бревик, значит актуальна. Но если спросить Брейвика, то все наборот - белые сдались.