LINQ является (или linq) нишевым инструментом или является им на пути к становлению основополагающим?

Только вставьте комментарии, когда Вы абсолютно должны, когда не ясно, почему код делает то, что это делает.

, например, Если у Вас есть комментарий выше дюжины строк кода тогда просто, осуществляют рефакторинг в метод с помощью хорошего названия метода или просто добавляют комментарий к aove метод

7
задан Community 23 May 2017 в 12:12
поделиться

8 ответов

До LinQ в Python были Генераторные выражения , которые являются специфическим синтаксисом для выполнения запросов к коллекциям . Синтаксис Python более упрощен, чем у Linq, но позволяет выполнять те же запросы так же просто, как и в linq. Несколько месяцев назад я написал сообщение в блоге, в котором сравнивает запросы на C # и Python , вот небольшой пример:

C # Linq:

var orders = from c in customers
             where c.Region == "WA"
             from o in c.Orders
             where o.OrderDate >= cutoffDate
             select new {c.CustomerID, o.OrderID};

Выражения генератора Python:

orders = ( (c.customer_id, o.order_id)
           for c in customers if c.region == 'WA'
           for o in c.orders if o.date >= cutoff_date)

Синтаксис запросов в языках программирования: чрезвычайно полезный инструмент. Я считаю, что каждый язык должен включать что-то подобное.

6
ответ дан 6 December 2019 в 12:53
поделиться

Проведя годы

  • Ручная работа с доступом к базе данных (на ох-как, на многих языках)
  • Пересмотр инфраструктуры Entity
  • Получение и хранение данных через созданную ORM месяца

Пришло время сделать простой доступ и интегрированный в язык способ общения с базой данных. LINQ to SQL должен был быть создан много лет назад. Я аплодирую команде, которая его придумала - наконец-то появилась структура доступа к базе данных, которая имеет смысл.

Она еще не идеальна, и моя главная головная боль на данный момент заключается в том, что нет реальной поддержки LINQ2SQL для других распространенных баз данных, и нет ничего подобного для Java.

(LINQ в целом тоже хорош, кстати, не только LINQ to SQL: -)

4
ответ дан 6 December 2019 в 12:53
поделиться

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

LINQ, безусловно, является одной из главных причин, по которой я лично придерживаюсь .NET, в любом случае - он стал является основополагающим для меня лично, и я готов поспорить, что многие разработчики тоже так думают.

2
ответ дан 6 December 2019 в 12:53
поделиться

Я не думаю, что linq будет ограничиваться языками microsoft, проверьте это, уже есть кое-что для php, проверьте это http://phplinq.codeplex.com/

Я думаю Linq - отличный инструмент в процессе разработки, и лично был бы очень рад, если бы он был перенесен на другие языки (как в моем примере с php)

1
ответ дан 6 December 2019 в 12:53
поделиться

Отказ от ответственности: я никогда не использовал LINQ. Пожалуйста, поправьте меня, если я ошибаюсь.

Многие языки имеют конструкции, которые позволяют делать то же, что и LINQ, с языковыми типами данных. По-видимому, наиболее интересной особенностью является то, что конструкции LINQ могут быть преобразованы в SQL, но это не относится к LINQ: http://www.aminus.org/blogs/index.php/2008/04/22/linq-in -python? blog = 2 .

1
ответ дан 6 December 2019 в 12:53
поделиться

Мне это очень напоминает Active Record Ruby, но я никогда не использовал LINQ. Кто-нибудь использовал оба? (Я бы опубликовал это как комментарий, но мне бы очень хотелось узнать ответ - я, вероятно, ошибаюсь, поэтому за него проголосуют против :))

(На самом деле я должен сказать, что AR похожа на LINQ to SQL, насколько мне известно, они не реализовали AR для других целей)

0
ответ дан 6 December 2019 в 12:53
поделиться

Я думаю, что функциональные концепции, лежащие в основе LINQ, станут популярными на многих языках. Передача последовательности объектов через набор функций для получения желаемого набора объектов. По сути, использование лямбда-синтаксиса поверх синтаксиса запроса.

Это очень мощный и выразительный способ кодирования.

Это не потому, что я считаю, что это принципиально лучший способ делать что-то (например, лямбда вместо синтаксиса запроса). Для сравнения, гораздо проще добавить поддержку базовой библиотеки для выражений запроса в язык, чем добавить синтаксис запроса. Все, что требуется для лямбда-синтаксиса для запросов, - это

  • Lambdas
  • Базовые методы запроса

Большинство новых языков поддерживают лямбда-выражения (даже C ++ наконец-то получил их!). Добавление поддержки библиотеки довольно дешево и обычно может быть выполнено заинтересованным человеком.

Однако перевод синтаксиса запроса в язык требует гораздо больше работы.

2
ответ дан 6 December 2019 в 12:53
поделиться

Я не думаю, что вы действительно можете классифицировать это (или многое другое) как то и другое. Хотя я бы вряд ли сказал, что LINQ является нишевым инструментом - у него много приложений для многих, - это не «фундаментальный» ИМО. Однако я бы также не сказал, что наличие LINQ (или эквивалентного) языка запросов для конкретного языка может быть действительно основополагающим на этом этапе игры. Возможно, в будущем, но прямо сейчас вы можете построить запрос множеством различных способов, которые обеспечат ЗНАЧИТЕЛЬНО разные уровни производительности.

0
ответ дан 6 December 2019 в 12:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: