Какой рейтинг вас больше интересует?
|
Главная / Главные темы / Тэг «nid»
Шаблон проектирования «Спецификация» в C# 2017-03-30 14:51:19
«Спецификация» в программировании — это шаблон проектирования, посредством которого ...
+ развернуть текст сохранённая копия
«Спецификация» в программировании — это шаблон проектирования, посредством которого представление правил бизнес логики может быть преобразовано в виде цепочки объектов, связанных операциями булевой логики.
Я познакомился с этим термином в процессе чтения DDD Эванса. На Хабре есть статьи с описанием практического применения паттерна и проблем, возникающих в процессе реализации.
Если коротко, основное преимущество от использования «спецификаций» в том, чтобы иметь одно понятное место, в котором сосредоточены все правила фильтрации объектов предметной модели, вместо тысячи размазанных ровным слоем по приложению лямбда-выражений.
Классическая реализация шаблона проектирования выглядит так:
public interface ISpecification
{
bool IsSatisfiedBy(object candidate);
}
Что с ним не так применительно к C#?
- Есть
Expression<Func<T, bool>> и Func<T, bool>> , сигнатура которых совпадает с IsSatisfiedBy
- Есть Extension-методы. alexanderzaytsev с помощью них делает вот так:
public class UserQueryExtensions
{
public static IQueryable<User> WhereGroupNameIs(this IQueryable<User> users,
string name)
{
return users.Where(u => u.GroupName == name);
}
}
- А еще можно реализовать вот такую надстройку над LINQ:
public abstract class Specification<T>
{
public bool IsSatisfiedBy(T item)
{
return SatisfyingElementsFrom(new[] { item }.AsQueryable()).Any();
}
public abstract IQueryable<T> SatisfyingElementsFrom(IQueryable<T> candidates);
}
В конечном итоге возникает вопрос: стоит ли в C# пользоваться шаблоном десятилетней давности из мира Java и как его реализовать? Читать дальше →
Тэги: .net, ddd, issatisfiedby, specification, веб-сайтов, проектирование, разработка, рефакторинг
нестехи 2017-03-28 08:30:13
в первую минуту после пробуждения - а может быть, даже целых две - получилось не думать о ...
+ развернуть текст сохранённая копия
в первую минуту после пробуждения - а может быть, даже целых две - получилось не думать о белой обезьяне. потом наглый примат все же приперся, рот раззявив, обнажил зубы в наглой ухмылке, поудобней устроившись в голове. уходи. здесь тебе больше не дом, уходи подобру-поздорову. иначе я за себя не ручаюсь, у меня есть вино и ружьё, за окном моей кельи все так же кружит вороньё. вали, обезьяна. мне неважно, за кем будет последнее слово. прочь из моей головы! - сказал один из поэтов. он, кстати, хорош. этим утром удалось прожить без тебя минуту, а то и целых две. белая обезьяна хохочет мне в лицо, заслоняя свет. не бойся. я знаю, что мы будем делать, когда ты уйдешь.
Тэги: not-a-poem
Конференция Google Next 2017. Есть что посмотреть .NET-разработчику 2017-03-27 21:53:00
Читать полностью
+ развернуть текст сохранённая копия
Читать полностью
Тэги: .net, cloud, conferences, google, platform
нестехи 2017-03-23 22:55:56
крупная дрожь. это не холод, ты больше меня не зовешь. я не боюсь расставаться, зачем ...
+ развернуть текст сохранённая копия
крупная дрожь. это не холод, ты больше меня не зовешь. я не боюсь расставаться, зачем же ты врешь? холод в груди. самые рваные раны еще впереди. я зашиваю свой рот, оставайся один. земля из-под ног. я бы молилась, но только не знаю, кто бог. выпила за упокой, алкоголь не помог. два колеса ревут между ног, норовят отослать в небеса. скорость сегодня мой антидепрессант. играю в слова. разбиты колени, рентген показал, что жива. перемололи меня твои жернова.
Тэги: not-a-poem
Топ-10 русскоязычных каналов про streetwear и кроссовки 2017-03-18 21:21:19
Привет, всем подписчикам и просто зрителям! Сегодня мы решили составить десятку самых интересных и ...
+ развернуть текст сохранённая копия
Привет, всем подписчикам и просто зрителям! Сегодня мы решили составить десятку самых интересных и заметных каналов на русском YouTube, которые повествуют о кроссовках и уличной одежде! Наверняка, у вас есть свои мысли на этот счет, будем рады их почитать в комментариях, пишите, пожалуйста, каналы которые мы не заметили и на которые нам следует обратить внимание! […]
Тэги: krossovki, net, obuv, original, sneaker, бражий, канал, каналы, кеды, кроссовки, лучшие, никита, обзоры, обувь, одежда, оксана, пасичный, распаковка, уличная, ютуб
Главная / Главные темы / Тэг «nid»
|
Взлеты Топ 5
Падения Топ 5
|