Хороший вопрос, не думал об этом, по идее, такая ситуация при моей реализации возникнуть может.
Скорее всего будут использованы skip и take последней спецификации, у которой они проставлены.
Думаю правильным решением оставить это на отслеживание разработчику, так как бросать ошибку - не вариант из-за того, что могут быть кейсы, когда надо перезаписать Skip и Take новой спецификаций.
Если отвечать на вопрос прямо, при текущей реализации, возможно менять Skip и take извне. Поэтому после объединения двух разных спецификаций, можно поставить необходимые Skip и Take
Полностью поддерживаю! Swagger ни разу не подводил, даже с учётом сложнейших атрибутов описания вложенных схем данных.
Уверен, достаточно просто уметь писать код для генератора и уметь правильно настраивать его, и в 90% случаях этого будет более чем достаточно.
Вопрос к автору: автоматической генерации у вас все также нет. Как и совместимости с генераторами, например в typescript. Получается в целом вы разработали ещё одну спецификацию для описания API вручную..
Спасибо за статью, сам совсем недавно столкнулся с проблемой невозможности объявить операторы в интрефейсах (реализовывал спецификацию), теперь это сделать гораздо проще, да и в использовании намного удобнее)
Полностью поддерживаю комментарий! При поисках бага, или разбора легаси кода, такое монотонное "отвлечение", помогает лучше пары часов дебага) Иногда даже поесть отойдешь и в голову приходит решение :)
Хотел попросить более подробно объяснить разницу между интергационным и и сквозными тестами. На мой взгляд, это две вещи одной природы, интеграционный проверяет взаимодецствие с другими компонентами системы, т. е. их совместную работу, в это же время сквозной тест также использует несколько компонентов. Можно ли сказать, что сквозной тест включает в себя (содержит) интеграционный?
Замечательная статья, сам довольно часто играл в майнкрафт, теперь же знаю как именно происходит создание мира! Меня всегда удивляла его сложность и запутанность)
до сих пор))
И правда, вы полностью правы, потерял среди файлов, написанное расширение на Expression.
Теперь понял, к чему вы все спрашивали. У меня собственная реализация, которую постараюсь прикрепить к статье
Вы сами ответили на свой вопрос) либо я до сих пор не понимаю вас
В And или Or спецификация (приведённых в статье) в методе SatisfiedBy() для комбинации двух Expression используется вызов left.Or(right)
Эти методы реализованы на уровне Expression
Про рабочий пример - не могу показать, репозитории являются приватными
Но использование в реальных кодах несильно отличается от приведенного в примерах, разве что немного более сложные комбинации спецификаций
Вы можете увидеть это в примерах кода. Обратите внимание на классы AndSpecification и OrSpecification.
Не обращайте внимания, никакого подтекста здесь нет, просто я не углядел за названиями, правильнее было бы использовать Repository.
UML модель брал с реального примера, где использовались названия Storage для репозиториев, и не совсем полностью подправил.
Хороший вопрос, не думал об этом, по идее, такая ситуация при моей реализации возникнуть может.
Скорее всего будут использованы skip и take последней спецификации, у которой они проставлены.
Думаю правильным решением оставить это на отслеживание разработчику, так как бросать ошибку - не вариант из-за того, что могут быть кейсы, когда надо перезаписать Skip и Take новой спецификаций.
Если отвечать на вопрос прямо, при текущей реализации, возможно менять Skip и take извне. Поэтому после объединения двух разных спецификаций, можно поставить необходимые Skip и Take
Понял, приму во внимание, спасибо
Большое спасибо за подробный комментарий, приму во внимание ваши замечания
Полностью поддерживаю! Swagger ни разу не подводил, даже с учётом сложнейших атрибутов описания вложенных схем данных.
Уверен, достаточно просто уметь писать код для генератора и уметь правильно настраивать его, и в 90% случаях этого будет более чем достаточно.
Вопрос к автору: автоматической генерации у вас все также нет. Как и совместимости с генераторами, например в typescript. Получается в целом вы разработали ещё одну спецификацию для описания API вручную..
Может быть вы ещё и миграции вручную пишете?)
Бесит также предложение о показе уведомлений
Спасибо за статью, сам совсем недавно столкнулся с проблемой невозможности объявить операторы в интрефейсах (реализовывал спецификацию), теперь это сделать гораздо проще, да и в использовании намного удобнее)
Полностью поддерживаю комментарий! При поисках бага, или разбора легаси кода, такое монотонное "отвлечение", помогает лучше пары часов дебага)
Иногда даже поесть отойдешь и в голову приходит решение :)
Хотел попросить более подробно объяснить разницу между интергационным и и сквозными тестами. На мой взгляд, это две вещи одной природы, интеграционный проверяет взаимодецствие с другими компонентами системы, т. е. их совместную работу, в это же время сквозной тест также использует несколько компонентов. Можно ли сказать, что сквозной тест включает в себя (содержит) интеграционный?
Замечательная статья, сам довольно часто играл в майнкрафт, теперь же знаю как именно происходит создание мира! Меня всегда удивляла его сложность и запутанность)
Да, тоже об этом подумал, когда читал
И да и нет, везде нужна мера, и в разговорах, и в молчании