Mikhαil
Mikhαil
Roman
лол
Alex
лол
Крылатый
лол
Мишон
Спасибо за стикер, буду подкреплять ним своё горение от факта что int 0 это sentinel value в EFCore, ибо nullable types
Vasily
Лучше -1
Vladislav
Все так
Anonymous
лол
Мишон
Лучше -1
Делали челу диплом, "бд ведьмачьих заказов" (упоранство) Ведьмаки и заказы связаны много-много Ведьмак id 0 не может получать заказы, заказ id 0 не может быть получен. Убили 5 часов, оказалось что для int 0 это сентинел, и будьте добры юзать int? чтоб сентинел был null. Поменяли, прогнали миграцию, база потекла, теперь переносим из бэкапа записи в ручном режиме, жопа пылает неистово
Ilya
Спасибо за стикер, буду подкреплять ним своё горение от факта что int 0 это sentinel value в EFCore, ибо nullable types
как бы там ни было, но ef core ещё немного и можно будет юзать вместо linq2db
Ilya
Как бы там ни было, но сишарп ещё немного и можно будет юзать вместо фшарп.
Anonymous
Как бы там ни было, но сишарп ещё немного и можно будет юзать вместо фшарп.
Так уже можно, куча функционального кода на сишарпе написано.
Anonymous
Просто удовольствия — ровно ноль.
Мишон
У вас там какие-то причины были не использовать автоинкремент ид? Откуда вообще ид 0 вылез?
В апи нет Add эндпоинта, все записи в бд вносилрсь вручную, а редактор которым вносили стартует с 0
Sergey
Но виноват еф
Sergey
Интерестинг)
Мишон
Ну дураки и дороги, чё)
Мишон
Зато красиво
Мишон
Мишон
И абсолютно бесполезно
Ilya
пропустил урок про натуральные числа
Anonymous
пропустил урок про натуральные числа
Ты в шаге от холивара на тему, является ли ноль натуральным числом.
Anonymous
ээээ... это же математика, какие холивары?
К сожалению, математика наука весьма неточная.
Ilya
К сожалению, математика наука весьма неточная.
если не углубляться во всю глубину математических глубин - точная
Мишон
А что должно было быть? Вроде для ненулабелтного инта логично ожидать 0, не? Или я не вкурил в сам кейс
Да суть как раз в том что не пересекались с таким раньше, и 0 всегда работал, а тут внезапно 0 не работает, как раз из-за наличия наллабл типов То ли у нас языки и бд были где -1 сентинел, то ли бес его душу маму знает, но тут потратили уйму времени, прежде чем нашли в чём же, собственно, проблема
Ilya
Надо было тестами покрывать.
Vasily
Рубероидом лучше
Крылатый
Рубероид дорожает...
Vasily
Рубероид дорожает...
Зато воду не пропускает
Ilya
@omgszer микросервисы! есть одна большая база данных старого продукта и микросервисы подключаются к ней напрямую для чтения. Вопрос! Конфигурация маппинга должна быть одна на всех в нугете или каждый микросервис кто что хочет тот то и мапит?
Ilya
я вижу плюсы как одном так и в другом варианте
Kirill
микросервисы подключаются напрямую к единой базе?
Ayrat
а чо они все одно и то же читают? а они точно нужны в таком микросервисном виде?
Ilya
а чо они все одно и то же читают? а они точно нужны в таком микросервисном виде?
это рефакторинг, они так забирают данные из легаси системы
Ilya
то есть микросервисы работают сайд бай сайд со старым продуктом
Крылатый
Правда, нахера много сервисов и одна бд?..
Ayrat
я бы спросил нахера много сервисов с одинаковым чтением..
Ilya
Нужно срочно вынести легаси-систему в отдельный микросервис.
Ilya
я бы спросил нахера много сервисов с одинаковым чтением..
потому что был монолит, а должен превратиться в конфетку)
Крылатый
она только на чтение
И всё ж как-то некрасиво. У нас была схожая ситуация. Было больно базе, индексы в память не помещались.
Крылатый
Пришлось резать
Ilya
от монолита)
Vasily
потому что был монолит, а должен превратиться в конфетку)
Нахера куча сервисов с одинаковым функционалом чтения?
Крылатый
Бедненькая
Ilya
Нахера куча сервисов с одинаковым функционалом чтения?
они читают разные части базы, но некоторые вещи пересекаются
Ilya
куча сервисов - чтобы разрабатывать независимо
Ilya
ну и в целом чтобы двигкаться хоть как то к микросервисам (я понимаю, что одна база данных не делает кучу сервисов микросервисами)
Крылатый
они читают разные части базы, но некоторые вещи пересекаются
Тогда проще разрезать! Вообще, чисто случай как у нас был.)
Ayrat
@omgszer микросервисы! есть одна большая база данных старого продукта и микросервисы подключаются к ней напрямую для чтения. Вопрос! Конфигурация маппинга должна быть одна на всех в нугете или каждый микросервис кто что хочет тот то и мапит?
Ну наверное зависит от размеров бюрократии и степени удаленности команд друг от друга Если команды легаси и смузи-сервисов разговаривают друг с другом через жиру и продактов, то лучше нугет. В противном случае я бы копипастнул мапинг, т.к. - легаси всё равно закапывать, а как закопаете, толку от нугета нет - нугет версию всё равно кто-то должен бампать при изменениях нугета, ничем не отличается от бампа логики мапинга
Ilya
они читают разные части базы, но некоторые вещи пересекаются
хотя ладно, довольно много сущностей пересекается
Ayrat
От нугета ещё и геморой, что для апдейта логики мапинга надо задеплоить ебаный нугет, потом только апдейтнуть проект
Ayrat
у меня как-то была общая логика на 2 сервиса. Как же я заебался с этими версиями. Плюнул сделал монорепу с двойным деплоем - зажил как человек
Ayrat
было 3 репы, 3 PR, 3 деплоя. В начале PR для деплоя общего нугета, потом ещё 2 PR в каждую репу сервиса чтобы бампануть версии там. Стало 1 репа, 1 PR, 2 деплоя
Ayrat
это тоже вариант, то есть код ты шарил ?
код я шарил, но в монорепе его шарить в 1000000 раз проще
Ayrat
причём чем больше сервисов шарит код тем проще его в монорепе контролить
Ilya
бд - 623 таблицы с 8365 столбцов
Ilya
причём чем больше сервисов шарит код тем проще его в монорепе контролить
в этом я вижу проблему ОГРОМНОГО количества мапингов и сущностей в сервисах, которые ему в принципе не нужны
AlexB
потому что был монолит, а должен превратиться в конфетку)
базу нужно параллельно резать. Иначе будет хуже чем было, инфа сотка.
Ilya
с этим никто не спорит :)
Vladislav
Всем привет посоветуйте библиотеку для mp3 плеера на с# у которой есть норм документация
AlexB
параллельный трек? у другой команды что ли?
AlexB
да
Звучит не очень если честно