Pull to refresh
1
0
Send message

На данный момент 5 вакансий по всей России

Потому что Microsoft это фуфуфу, а Oracle православный

Scala - сложнее.

Сложный код на Scala 1.5-2 раза больше.

Scala расходует больше памяти изза Immutable Scala Way.

Коллекции в Scala имеют более высокую алгоритмическую сложность изза иммутабельности.

Scala - легаси, большинство проектов так и остались на Scala 2.

Scala - убогая экосистема и зоопарк библиотек на коленке.

Начиная с 24.3 версии там новое лицензирование, которое требует ключ для кластера.

ULID не корректно сортируется на MS SQL SERVER.
ULID предполагает сортировку слева на право (левая сторона дата)
Если вы создатите таблицу с uniqueidentifier и DateTime, а затем вставите в нее данные в хронологическом порядке (ULID и дата созданные в одно время)
То вы увидите что даты идут в случайном порядке.
Также мои тесты с бенчмарком показали что время вставки имеет большой разброс от 2 до 22 секунд на вставку 100_000 строк.
Если вы будете конвертировать ваш ULID в string => nvarchar(26) то он будет сортироватся корректно.

ULID не корректно сортируется на MS SQL SERVER.
ULID предполагает сортировку слева на право (левая сторона дата)
Если вы создатите таблицу с uniqueidentifier и DateTime, а затем вставите в нее данные в хронологическом порядке (ULID и дата созданные в одно время)
То вы увидите что даты идут в случайном порядке.
Также мои тесты с бенчмарком показали что время вставки имеет большой разброс от 2 до 22 секунд на вставку 100_000 строк.
Если вы будете конвертировать ваш ULID в string => nvarchar(26) то он будет сортироватся корректно.

ULID не корректно сортируется на MS SQL SERVER.
ULID предполагает сортировку слева на право (левая сторона дата)
Если вы создатите таблицу с uniqueidentifier и DateTime, а затем вставите в нее данные в хронологическом порядке (ULID и дата созданные в одно время)
То вы увидите что даты идут в случайном порядке.
Также мои тесты с бенчмарком показали что время вставки имеет большой разброс от 2 до 22 секунд на вставку 100_000 строк.
Если вы будете конвертировать ваш ULID в string => nvarchar(26) то он будет сортироватся корректно.

Обычно все примеры на ORM фреймворках - уровня детского сада)))

А как там делается ветвление - опциональные фильтры, сортировка по выбору пользователя, группировка по выбору?

Как там добавить конструкции вида

foreach(paramFilter in paramFilters)

{

productsQuery = productsQuery

.Where(product => product .Params

.Any(param => param.ParamId == paramFilter.ParamId &&

paramFilter.Values.Contains(param.Value)));

}

Который транслируется в список

AND EXISTS(select 1

from ProductParamValues

where ProductId = ... AND ParamId = ... AND VALUE IN (...))

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

меня смущает то что на скале это всё делается намного сложнее и преимуществ в этой сложности я не вижу

Есть ли на скале фреймворк который может строить запросы в бд таким образом:

Например Include(x => x.SomeProperty) это Join

Остальное думаю и так понятно.

Вся логика будет выполнена на стороне БД

Это всё классно конечно но без нормальных драйверов абсолютно бесполезно.

Например у YugabyteDb есть смарт драйвер который реализует ADO.NET стандартный и благодаря этому они смогли сделать реализацию поставщика EF Core

https://docs.yugabyte.com/preview/drivers-orms/csharp/ysql/

https://www.nuget.org/packages/NpgsqlYB.EntityFrameworkCore.YugabyteDB/

А YDB в этом плане абсолютно бесполезен для меня как разработчика

Это всё классно конечно но без нормальных драйверов абсолютно бесполезно.

Например у YugabyteDb есть смарт драйвер который реализует ADO.NET стандартный и благодаря этому они смогли сделать реализацию поставщика EF Core

https://docs.yugabyte.com/preview/drivers-orms/csharp/ysql/

https://www.nuget.org/packages/NpgsqlYB.EntityFrameworkCore.YugabyteDB/

А YDB в этом плане абсолютно бесполезен для меня как разработчика

Akka изначально была частью Scala потом ее вынесли как отдельную библиотеку

Ты наверное имеешь в виду SQL SERVER Management Studio?

Скорее уж Data Science, ML, Backend и автоматизация.

Яндекс добавьте уже нативную поддержку типа ULID в YDB и Clickhouse

чтобы в базе хранилось как 16 байт а выбиралось как строка вида '01HVKYP9G7FMC83W2KN18W87AG'

'01HVKYW041S595FT04KDZAM4M2'

для тех кто не в курсе ULID это UUID у которого левая часть это DateTime и таким образом он становится сортируемым и запись идет всегда в конец. По аналогии с autoincrement / identity

Если всё правильно сделать то повлияет только на время загрузки.

К сожалению если не обфусцировать саму логику и не добавлять некоторые элементы в IL то ваш код деобфусцируют.

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

1

Information

Rating
Does not participate
Registered
Activity

Specialization

Backend Developer, Database Developer
Middle
C#
.NET
ASP.Net
ASP.NET MVC
MSSQL
Entity Framework
SQL
Database
Git
Docker