Это отчасти помимо точки, но так как вопросом являются отмеченные лучшие практики, я буду идти вперед и добавлять свои два цента. Для этого типа вещи я значительно предпочитаю превращать его в свойство:
public static IEnumerable<Product> AllProducts
{
get {
using (AdventureWorksEntities db = new AdventureWorksEntities()) {
var products = from product in db.Product
select product;
return products;
}
}
}
Несомненно, это - немного больше шаблона, но код, который использует это, будет выглядеть намного более чистым:
prices = Whatever.AllProducts.Select (product => product.price);
по сравнению с
prices = Whatever.GetAllProducts().Select (product => product.price);
Примечание: я не сделал бы этого ни для каких методов, которые могут требовать времени, чтобы сделать их работу.
Обновление на основе комментария:
Я не думаю, что простая база данных поможет. Большая часть спама создается алгоритмически (например, спам в комментариях обычно включает содержание сообщения). Akismet делает несколько вещей, возможно, включая анализ ссылок и использование известных сигнатур спама, но не публикует их.
Я читал о некоторых интересных проектах ИИ по классификации хорошего, а не плохого контента . Вы также можете посмотреть Spam Karma , который анализирует комментарии в блогах на основе различных триггеров спама (сообщение ответа сразу после загрузки страницы и т. Д.).
Исходный ответ (черные списки DNS):
Возможно, это не совсем то, что вы ищете, но разработчики MoinMoin Wiki хранят здесь центральный список регулярных выражений спама в Wiki: http://master.moinmo.in/BadContent[12105 impression