Только вставьте комментарии, когда Вы абсолютно должны, когда не ясно, почему код делает то, что это делает.
, например, Если у Вас есть комментарий выше дюжины строк кода тогда просто, осуществляют рефакторинг в метод с помощью хорошего названия метода или просто добавляют комментарий к aove метод
До 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)
Синтаксис запросов в языках программирования: чрезвычайно полезный инструмент. Я считаю, что каждый язык должен включать что-то подобное.
Проведя годы
Пришло время сделать простой доступ и интегрированный в язык способ общения с базой данных. LINQ to SQL должен был быть создан много лет назад. Я аплодирую команде, которая его придумала - наконец-то появилась структура доступа к базе данных, которая имеет смысл.
Она еще не идеальна, и моя главная головная боль на данный момент заключается в том, что нет реальной поддержки LINQ2SQL для других распространенных баз данных, и нет ничего подобного для Java.
(LINQ в целом тоже хорош, кстати, не только LINQ to SQL: -)
I сказал бы, что интегрированная технология запросов на любом языке со временем станет основополагающей, особенно учитывая недавний рост интереса к функциональным языкам программирования.
LINQ, безусловно, является одной из главных причин, по которой я лично придерживаюсь .NET, в любом случае - он стал является основополагающим для меня лично, и я готов поспорить, что многие разработчики тоже так думают.
Я не думаю, что linq будет ограничиваться языками microsoft, проверьте это, уже есть кое-что для php, проверьте это http://phplinq.codeplex.com/
Я думаю Linq - отличный инструмент в процессе разработки, и лично был бы очень рад, если бы он был перенесен на другие языки (как в моем примере с php)
Отказ от ответственности: я никогда не использовал LINQ. Пожалуйста, поправьте меня, если я ошибаюсь.
Многие языки имеют конструкции, которые позволяют делать то же, что и LINQ, с языковыми типами данных. По-видимому, наиболее интересной особенностью является то, что конструкции LINQ могут быть преобразованы в SQL, но это не относится к LINQ: http://www.aminus.org/blogs/index.php/2008/04/22/linq-in -python? blog = 2 .
Мне это очень напоминает Active Record Ruby, но я никогда не использовал LINQ. Кто-нибудь использовал оба? (Я бы опубликовал это как комментарий, но мне бы очень хотелось узнать ответ - я, вероятно, ошибаюсь, поэтому за него проголосуют против :))
(На самом деле я должен сказать, что AR похожа на LINQ to SQL, насколько мне известно, они не реализовали AR для других целей)
Я думаю, что функциональные концепции, лежащие в основе LINQ, станут популярными на многих языках. Передача последовательности объектов через набор функций для получения желаемого набора объектов. По сути, использование лямбда-синтаксиса поверх синтаксиса запроса.
Это очень мощный и выразительный способ кодирования.
Это не потому, что я считаю, что это принципиально лучший способ делать что-то (например, лямбда вместо синтаксиса запроса). Для сравнения, гораздо проще добавить поддержку базовой библиотеки для выражений запроса в язык, чем добавить синтаксис запроса. Все, что требуется для лямбда-синтаксиса для запросов, - это
Большинство новых языков поддерживают лямбда-выражения (даже C ++ наконец-то получил их!). Добавление поддержки библиотеки довольно дешево и обычно может быть выполнено заинтересованным человеком.
Однако перевод синтаксиса запроса в язык требует гораздо больше работы.
Я не думаю, что вы действительно можете классифицировать это (или многое другое) как то и другое. Хотя я бы вряд ли сказал, что LINQ является нишевым инструментом - у него много приложений для многих, - это не «фундаментальный» ИМО. Однако я бы также не сказал, что наличие LINQ (или эквивалентного) языка запросов для конкретного языка может быть действительно основополагающим на этом этапе игры. Возможно, в будущем, но прямо сейчас вы можете построить запрос множеством различных способов, которые обеспечат ЗНАЧИТЕЛЬНО разные уровни производительности.