Java
Perfect code
.NET
Designing and refactoring
ООP
Comments 5
+3
Чем больше типов, вложенности и il кода, тем медленнее ПО, так как jit`у сложнее оптимизировать программу. Поэтому подобного рода строгая типизация приведет к серьезным тормозам в проекте.

В дотнете структура вида


struct Wrapper<T>
{
      public T Value {get; set;}
}

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


interface IFoo
{
      void Bar();
}
void Do(T x) where T : IFoo
{
     x.Bar();
}

чтобы избежать боксинга.

+2
просто заведите типы GroupId, UserId и так далее

Как к такому отнесётся EntityFramework скажем 6 и Core? Есть ли опыт работы, как усложнится работа с базой, какие-то наблюдения по удобству работы?

0
Мне вот тоже интересно, наверное появится слой мапинга где используя FluentApi прокинут свойства, или не дай бог там будут модели таблиц с неявным преобразованием из наших чудесных моделей в бд
0
Ну можно сделать memento и маппить на EF классы и обратно например. Или использовать backing fields, owned entites, value conversion.
UFO landed and left these words here
Only those users with full accounts are able to leave comments., please.