|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Познакомившись с LINQ после интенсивной работы с TSQL, я был в восторге от идеи использовать аналогичный синтаксис запросов в C# (типа from ... where ... select ...) Но через некоторое время обнаружил себя, пишушим запросы в текучем синтаксисе (....Where(n=>...).Select(n=>...)) и не испытывающим никакого желания использовать сахар. А вы какой синтаксис используете обычно и почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2015, 18:35 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProПознакомившись с LINQ после интенсивной работы с TSQL, я был в восторге от идеи использовать аналогичный синтаксис запросов в C# (типа from ... where ... select ...) Но через некоторое время обнаружил себя, пишушим запросы в текучем синтаксисе (....Where(n=>...).Select(n=>...)) и не испытывающим никакого желания использовать сахар. А вы какой синтаксис используете обычно и почему? зависит от ситуации. сложный запрос лучше строить сахаром, так как на порядок читабельнее. ну и в сахаре есть плюшки, которых нет во флюенте, например, let больше всего обижает тот факт, что в LINQ не предусмотрен outer/full join, приходится юзать свои расширения. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2015, 21:54 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Мне флюент нравится. Там посказки вылазят походу написания. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2015, 21:59 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttShocker.ProПознакомившись с LINQ после интенсивной работы с TSQL, я был в восторге от идеи использовать аналогичный синтаксис запросов в C# (типа from ... where ... select ...) Но через некоторое время обнаружил себя, пишушим запросы в текучем синтаксисе (....Where(n=>...).Select(n=>...)) и не испытывающим никакого желания использовать сахар. А вы какой синтаксис используете обычно и почему? зависит от ситуации. сложный запрос лучше строить сахаром, так как на порядок читабельнее. ну и в сахаре есть плюшки, которых нет во флюенте, например, let + "сахарный" join на порядок читабельнее. hVosttбольше всего обижает тот факт, что в LINQ не предусмотрен outer/full join, приходится юзать свои расширения .Покажи для left join ? зы: join стараемся не использовать, стараемся пользоваться ассоциациями. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 05:37 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttну и в сахаре есть плюшки, которых нет во флюенте, например, let Просто потому что во флюенте let не нужен - там есть такие вещи, как SelectMany, или возможность использовать в теле методов анонимные программные блоки. Например, msdn'овский пример про let: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
на флюенте легко переписывается в виде Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
P.S. Во всех случаях использую флюент - он лично для меня просто нагляднее. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 06:48 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныP.S. Во всех случаях использую флюент - он лично для меня просто нагляднее. А для меня - нет. Я использую флюент только в очевидных случаях, когда точно знаю, что ошибки в логике нет. У меня мышление такое - императивный подход мне ближе. :-) Чужие флюенты мне читать сложно - если вдруг он не сделал, что ожидалось - начинаю разделять, чтобы выцепить где проблема. Еще по началу (сейчас уже меньше нужно, привык), писал имя переменной (и во флюенте тоже) с префиксом each (from eachItem in Items) - тоже помогает не париться, что же имеется в виду - при написании условий ниже. Само предложение выглядит уже совсем по человечески. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 09:08 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Предпочитаю через лямбды. Трудно сказать почему, наверно, на SQL всё равно не сильно похож (from в начале и т. п.), а из общего стиля кода выбивается. Join и GroupJoin пользуюсь нередко. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 09:23 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
D129Сон Веры ПавловныP.S. Во всех случаях использую флюент - он лично для меня просто нагляднее. А для меня - нет. Я использую флюент только в очевидных случаях, когда точно знаю, что ошибки в логике нет. У меня мышление такое - императивный подход мне ближе. :-)Если уж на то пошло, то к императиву ближе как раз флюент, а сахар - к декларативу. Но по сути они декларативны оба, лишь синтаксис разный. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 09:28 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Antonariy, оба они императивны надо четко указать - что , откуда, как ... вытащить ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 09:43 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ViPRosAntonariy, оба они императивны надо четко указать - что , откуда, как ... вытащить Прикольно. Интересно, четвертый вариант мнения есть? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 10:06 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ViPRosAntonariy, оба они императивны надо четко указать - что , откуда, как ... вытащить Оба они декларативны, ибо нужно указывать что вытащить, но не как. P. S. Использую оба подхода, иногда вперемешку. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 11:32 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ЕвгенийВViPRosAntonariy, оба они императивны надо четко указать - что , откуда, как ... вытащить Оба они декларативны, ибо нужно указывать что вытащить, но не как .Именно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 11:37 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
PS Сам чаще пишу флюент просто потому что основная функция - FirstOrDefault :) А если нужно отправить портянку в json, то сахар, потому что в sql меньше знаков препинания и прочего синтаксического "мусора", ради которого нужно лишний раз пинать шифт. Эргономика. А подсказки выходят везде. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 11:49 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ЕвгенийВViPRosAntonariy, оба они императивны надо четко указать - что , откуда, как ... вытащить Оба они декларативны, ибо нужно указывать что вытащить, но не как. P. S. Использую оба подхода, иногда вперемешку. что это и есть что ты что пишешь - select (a,b,c)? или всеж добавляешь фром, джойн и т.д.? - это императив (приказ, как) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:18 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ViPRos, СКЛ - императивный язык пролог - нет (концептуальная часть) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:20 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Предпочитаю флюент, по той причине что работаю в проектах, где параллельно работают и другие программисты (к примеру знающие c# и не знающие T-SQL). Плюс флюент читаю намного проще нежели sql синтаксис. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:31 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ViPRosчто это и есть что ты что пишешь - select (a,b,c)? или всеж добавляешь фром, джойн и т.д.? - это императив (приказ, как) Я говорю выведи мне такие то поля, применив такие то соединения, условия или там группировки и получаю это. При императивном подходе, я сам прибираю данные и получаю нужный результат. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:31 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ViPRosСКЛ - императивный языкхорош гнать уже: http://progopedia.ru/paradigm/declarative/ ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:32 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
LameUser программисты (к примеру знающие c# и не знающие T-SQL). Как такое вообще возможно? Гнать таких поганой метлой, простейший то синтаксис должны знать! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:34 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ЕвгенийВLameUser программисты (к примеру знающие c# и не знающие T-SQL). Как такое вообще возможно? Гнать таких поганой метлой, простейший то синтаксис должны знать! но нам же простейший синтаксис не интересен, когда мы флюентом не можем обойтись. на счет обучения - всему свое время :). Еще чисто визуально бесит SQL синтаксис в коде, т.к. у нас есть правила оформления кода (создавались еще до LINQ). Хоть они и дубовые, зато можно разбираться в чужом коде достаточно легко, если он оформлен по правилам. Особенно бесит миксованный синтаксис, например: Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:41 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Алексей КПокажи для left join ? зы: join стараемся не использовать, стараемся пользоваться ассоциациями. В последнем проекте вот что использую: https://github.com/thomaslevesque/Linq.Extras Это круть. А могли бы предусмотреть сразу и не пришлось бы так корячиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:44 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyViPRosСКЛ - императивный языкхорош гнать уже: http://progopedia.ru/paradigm/declarative/ да пофиг что там на заборе ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:44 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ЕвгенийВViPRosчто это и есть что ты что пишешь - select (a,b,c)? или всеж добавляешь фром, джойн и т.д.? - это императив (приказ, как) Я говорю выведи мне такие то поля, применив такие то соединения, условия или там группировки и получаю это. При императивном подходе, я сам прибираю данные и получаю нужный результат. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
ты можешь это обернуть в метод и вызвать (применить метод такой то) от этого твой код не станет декларативным декларация - желание, а не путь ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:46 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныПросто потому что во флюенте let не нужен - там есть такие вещи, как SelectMany, или возможность использовать в теле методов анонимные программные блоки. Например, msdn'овский пример про let: Пример какой-то не очевидный. Тут let не особо нужен. Преимущества let становятся видны отчётливо самым не вооружённым глазом, когда начинаешь работать с типами и атрибутами в Reflection — если использовать там флюент, то можно мозг сломать, читая конструкции запросов. Не знаю, я уважаю чувства разработчиков, которым это придётся сопровождать и считаю, что иногда можно поступиться своими привычками в пользу универсальности сопровождения. Чем читабельнее код (не только для себя, но и для остальных) -- тем лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:47 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
LameUserОсобенно бесит миксованный синтаксис, например: Код: c# 1. 2. 3. 4. 5. 6.
Не знаю почему он бесит, но лично я вижу, что мысль выражена кристально ясно, чётко и легко читается, очень легко, так как код не перегружен знаками препинания и скобками. Что ещё надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:50 |
|
|
start [/forum/topic.php?fid=20&msg=38870917&tid=1401906]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 378ms |
total: | 516ms |
0 / 0 |