Запитання з тегом «code-contracts»

4
Навіщо використовувати кодові контракти
Нещодавно я натрапив на основу Microsoft для кодових контрактів. Я прочитав трохи документації і постійно запитував: "Чому я коли-небудь хотів би це зробити, оскільки це не робить і часто не можу зробити статичний аналіз". Тепер у мене вже є такий стиль оборонного програмування, з такими винятками, як охорона: if(var == …

2
Коли використовувати [Pure] на конструкторі?
Я дізнаюся про кодові контракти в .NET, і я намагаюся зрозуміти ідею чистих конструкторів. Документація кодових контрактів зазначає: Усі способи, які викликаються в рамках договору, повинні бути чистими; тобто вони не повинні оновлювати будь-який попередній стан. Чистим методом дозволяється змінювати об'єкти, створені після вступу в чистий метод. А в PureAttributeдокументації …

6
Програмування на основі контракту та тест на одиницю
Я дещо захисний програміст і великий прихильник контрактів Microsofts Code. Тепер я не завжди можу використовувати C #, і в більшості мов єдиним інструментом, який я маю, є твердження. Тому я зазвичай закінчую такий код: class { function() { checkInvariants(); assert(/* requirement */); try { /* implementation */ } catch(...) …

2
кодові договори / твердження: що з дублюючими чеками?
Я великий шанувальник написання тверджень, контрактів або будь-якого типу чеків, доступних мовою, якою я користуюся. Одне, що мене трохи турбує, - це те, що я не впевнений, що є загальною практикою роботи з дублюючими чеками. Приклад ситуації: Спочатку я записую наступну функцію void DoSomething( object obj ) { Contract.Requires<ArgumentNullException>( obj …

4
Обробка змін в архітектурі мікросервісів, керованих подіями
Я роблю дослідницький проект, де досліджую варіанти обробки змін в архітектурі мікросервісів, керованих подіями. Отже, скажімо, ми отримали додаток, де ми отримали чотири різні сервіси. Кожна з цих служб має власну базу даних для зберігання локальних даних. У цьому налаштуванні чотири служби спілкуються один з одним за допомогою шини подій. …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.