Re[17]: Entity Framework за! и против!
От: Alexander Polyakov  
Дата: 30.06.14 19:53
Оценка:
НС>
НС>myEnum == case MyEnum.Item1
НС>  ? x > c1 && x < c2
НС>  : myEnum == case MyEnum.Item2
НС>        ? x > c1 && x < c2*c1
НС>        : myEnum == case MyEnum.Item3
НС>            ? x > c1 && x < c2%c1*17
НС>            : ???
НС>

О чем я и писал два дня назад, средства декомпозиции не развитые, а довольно скудные. Они приводят к неестественным извращениям над кодом. Человек воспринимает код через текст. Поэтому естественным способом декомпозиции является декомпозиция близкая к нарезке фрагментов текста. Фрагмент текста можно окружить условным оператором, выделить в метод и т.д. Это естественная нарезка текста, и именно такое предлагают большинство языков при работе с обычным кодом. В примере это продемонстрировано на IEnumerable<T>. Такое свойство хочется иметь и в коде по работе с БД. Текстовые запросы дают такое свойство. А проблемы, связанные с текстовыми запросами, оказалось можно решить без потери этого фундаментального свойства.

НС>Эксепшен тоже предполагается в SQL генерить?

Не в том направлении мыслишь, условия для генерации эксепшена не зависят от серверных данных, поэтому эти условия можно вычислять на клиенте. В этом направлении и надо было ресёчить команде, которая делала LINQ к БД. Компилятор должен специальным образом обрабатывать смесь кода, часть которого выполняется на клиенте, а часть на сервере. Довольно интересно насколько далеко можно продвинуться в этом направлении. Но они почему-то остановились в самом начале пути. И оставили нас с куцыми экспрешенами.

НС>Зато теряется в нем намного намного больше.

Ты сильно переоценивает реальные потери.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.