Рубрика «Specification»
Шпаргалка по AXI: Краткое описание интерфейса
2025-11-12 в 6:16, admin, рубрики: amba, AXI, axi4, fpga, interface, SoC, spec, Specification, Verilog, для чайниковМне вообще никто не нужен, сам себе погрею ужин. Самодостаточная Data
2025-03-09 в 11:15, admin, рубрики: dataclass, php, Specification, данные приложенияПривет, на связи Лука.
Мне всегда было интересно узнать больше о чистой архитектуре и о том, как построить систему, которая будет простой, но при этом выполнять всё, что от неё требуется. Естественно, без ухода в крайности, результат — наше всё, в булочную на такси не поедем.
Со временем вырисовываются какие-то паттерны и принципы, к которым лежит душа. У каждого свои: кто-то горит TDD, кто-то ATDD, FDD, BDD и прочими DD. Я же больше всего прикипел к DDD, причём первая D тут варьируется: угораю как по Domain, так и по Data.
О, данные, мои данные, как я вас обожаю!
Пара слов о спецификациях
2021-01-30 в 17:02, admin, рубрики: architecture, doctrine, Doctrine ORM, pattern, php, Specification, symfony, usabilityВсем доброго времени суток! Удивительно, но упоминание о шаблоне "Спецификация" в контексте php встречается крайне редко. А ведь с его помощью можно не только избежать комбинаторного взрыва методов репозитория, но и улучшить переиспользование кода. Я же в свою очередь хотел бы остановиться на еще одной возможности, предоставляемой данным паттерном. С ее помощью можно решить проблему, которая возникает почти в каждом веб-приложении. И лично мне очень не хватало этого знания еще пару лет назад.
Понимание спецификации ECMAScript, часть 1
2020-02-27 в 4:46, admin, рубрики: ECMAScript, javascript, Specification, Программирование, разработка, Разработка веб-сайтов, спецификация
Доброго времени суток, друзья!
В данной статье мы возьмем функцию из спецификации и разберем ее объяснение. Поехали.
Предисловие
Даже если вы хорошо знаете JavaScript, чтение спецификации может быть затруднительным. Следующий код демонстрирует использование Object.prototype.hasOwnProperty:
const o = {
foo: 1
}
o.hasOwnProperty('foo') // true
o.hasOwnProperty('bar') // false
В примере объект «o» не имеет метода «hasOwnProperty», поэтому мы обращаемся к его прототипу — «Object.prototype» (цепочка прототипов).
Для описания того, как работает Object.hasOwnProperty, в спецификации используется следующий псевдокод:
Читать полностью »
11 вещей которые я узнал, читая спецификацию flexbox
2017-05-30 в 15:05, admin, рубрики: css, flexbox, html, layout, Specification, браузеры, Разработка веб-сайтовЯ всегда считал, что с flexbox довольно легко работать — глоток свежего воздуха после стольких лет float'ов и clearfix'ов.
Правда недавно я обнаружил что борюсь с ним; что-то растягивалось, когда я не думал, что оно должно тянуться. Я поправил здесь, другой элемент сжался. Я починил это, что-то другое ушло за экран. Что во имя Джорджа Буша происходит?
В конце концов, все заработало, но солнце село, а мой процесс был привычной игрой с CSS. Или… как называется та игра, где надо ударить крота, а затем другой крот выпрыгивает и надо ударить и его тоже?
Как бы там ни было, я решил что пора вести себя как взрослый разработчик и выучить flexbox должным образом. Но вместо того, чтобы прочитать 10 очередных блог-постов, я решил отправиться прямиком к исходнику и прочитать The CSS Flexible Box Layout Module Level 1 Spec
Вот хорошие отрывки.
Шаблон проектирования «Спецификация» в C#
2017-03-30 в 11:51, admin, рубрики: .net, C#, DDD, IsSatisfiedBy, Specification, Проектирование и рефакторинг, Разработка веб-сайтов«Спецификация» в программировании — это шаблон проектирования, посредством которого представление правил бизнес логики может быть преобразовано в виде цепочки объектов, связанных операциями булевой логики.
Я познакомился с этим термином в процессе чтения 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); }

