Рубрика «contracts»
C++20 утверждён! Чего ждать и к чему готовиться разработчикам в C++23
2020-02-19 в 6:56, admin, рубрики: abi, abi c++, c++, c++ библиотеки, C++20, c++23, concepts, contracts, coroutine, coroutines, IT-стандарты, malloc, modules, ranges, Блог компании Яндекс, Компиляторы, Программирование, стандарт, стандартизацияНа днях в Праге прошла встреча международного комитета по стандартизации C++. И-и-и-и…

C++20 готов! Осталось поставить штампик от ISO, но это чисто формальный шаг, с которым не должно быть проблем.
Поздравляю всех с этим замечательным событием! Concepts, Coroutines, Modules, Ranges, std::format, constexpr new и constexpr алгоритмы+vector+string, datetime, jthread, span, bit_cast и многие другие мелкие и большие нововведения.
Что успели добавить и поправить в последний момент, что предложили разломать и что все хотят видеть в C++23 — обо всём этом под катом.
Читать полностью »
5 заповедей TypeScript-разработчика
2019-07-27 в 16:13, admin, рубрики: best practices, clean code, contracts, type casting, type checking, TypeScript, Проектирование и рефакторинг, Разработка веб-сайтов, Совершенный код
Всё больше и больше проектов и команд используют TypeScript. Однако просто применять TypeScript и выжимать из него максимум пользы — это очень разные вещи.
Представляю вам список высокоуровневых передовых практик использования TypeScript, которые помогут получить максимум преимуществ от применения этого языка.
Пробуем контрактное программирование С++20 уже сейчас
2019-03-14 в 16:33, admin, рубрики: c++, C++20, code quality, contracts, quality assurance, контрактное программирование, ПрограммированиеПробуем контрактное программирование С++20 уже сейчас

В С++20 появилось контрактное программирование. На текущий момент ни один компилятор ещё не реализовал поддержку этой возможности.
Но есть способ уже сейчас попробовать использовать контракты из C++20, так как это описано в стандарте.
Как перестать беспокоиться и начать писать тесты на основе свойств
2018-12-22 в 23:59, admin, рубрики: contracts, property-based testing, tdd, Программирование, Совершенный код, Тестирование IT-систем, Тестирование веб-сервисовВ последнее время все чаще встречаются упоминания о некоем волшебном средстве — тестировании на основе свойств (property based testing, если надо погуглить англоязычную литературу). Большинство статей на эту тему рассказывают о том, какой это классный подход, затем на элементарном примере показывают как написать такой тест используя какой-то конкретный фреймворк, в лучшем случае подсказывают несколько часто встречающихся свойств, и… на этом все заканчивается. Дальше изумленный и воодушевленный читатель пытается применить все это на практике, и упирается в то, что свойства как-то не придумываются. И к большому сожалению часто на этом сдается. В этой статье я постараюсь расставить приоритеты немного по другому. Начну все-таки с более-менее конкретного примера, чтобы объяснить что это за зверь такой. Но пример, надеюсь, не совсем типичный для подобного рода статей. Затем попробую разобрать некоторые проблемы, связанные с этим подходом, и как их можно решить. А вот дальше — свойства, свойства и только свойства, с примерами куда их можно приткнуть. Интересно?
Читать полностью »
Пишем Guard
2017-06-13 в 8:34, admin, рубрики: .net, check, contracts, copy paster, exceptions, github, guard, java, nuget, open source, opensource, validation, исключения, кодогенерация, проверки, разработка
Привет!
Есть несколько способов проверять аргументы на правильность. Например, для проверки на null можно использовать:
- if (!ReferenceEquals(arg, null)) throw…
- Code Contracts: Contract.Requires(!ReferenceEquals(arg, null))
- Guard.IsNotNull(arg, nameof(arg))
В статье я рассмотрю только третий вариант (все примеры кода — для C#, однако некоторые из них будут полезны и в Java).
ReactOS нанимает на работу и платит в Евро
2012-09-09 в 21:06, admin, рубрики: bugtracker, bugzilla, CFI, contracts, jira, open source, reactos, операционные системы, тестирование, метки: bugtracker, bugzilla, CFI, contracts, jira, open source, reactos
Заранее приношу извинения за желтизну заголовка, но что поделать, если он полностью соотвествует действительности?
В связи с качественноным шагом в сторону более профессионального подхода к разработке, а так же финансирования, мы теперь наконец можем объявить о том, что готовы нанять за деньги толковых людей к нам в команду.
Подарок тестерам
Специально ко дню тестировщика мы запустили профессиональную среду сопровождения процесса разработки. На смену старой-доброй BugZilla пришла продвинутая-навороченная JIRA.

JIRA можно рассматривать как следующий этап в развитии Багзиллы, и ставшую стандартом де-факто систему отслеживания ошибок, которая используется в крупнейших компаниях — и цены на сайте Atlassian как-бы намекают. Но, для открытых проектов пользоваться системой можно абсолютно бесплатно и без ограничений, за что им отдельное спасибо. Для ReactOS очень важным является то, что Bugzilla — это «bugtracker», в то время, как JIRA — это issue tracker. Отличие состоит в том, что с помощью JIRA можно заниматься не просто отслеживанием ошибок, но и планированием задач, отслеживанием хода разработки и создания плана разработки (roadmap).Читать полностью »
Контракт «share» — передача данных в метро приложениях Windows 8
2012-07-20 в 2:13, admin, рубрики: .net, contracts, microsoft, windows, Windows 8, WinRT, XAML, метки: c++, contracts, Windows 8, winrt, XAML В Windows 8 в метро-приложениях появилась возможность передачи данных (Sharing) между приложениями. В дальнейшем для простоты в статье буду употреблять термин «шаринг».
В целях безопасности передачей данных управляет сам пользователь и вызывается с боковой панели соответствующей чудо-кнопкой Share
или сочетанием клавиш Win + H.
В качестве примера можно привести возможность передачи своего местоположения с карт или понравившуюся фотографию в почтовое приложение или твиттер.
Реализация контракта «шаринг» может стать очень мощным маркетинговым инструментом. Вы можете предоставить возможность поделиться своими достижениями в игре или приложении с друзьями, что может способствовать увеличению популярности вашего приложения.
Здесь я буду употреблять термины приложение-поставщик для приложения которое «расшаривает» данные. И приложение-приемник для приложения который может принять расшаренные данные.
Читать полностью »
Контракты и расширения Windows 8
2012-07-10 в 9:01, admin, рубрики: contracts, Extensions, windows, Windows 8, Блог компании Microsoft, контракты, разработка, расширения, метки: contracts, Extensions, Windows 8, контракты, расширения
Если вы интересовались разработкой приложений в metro-стиле под Windows 8, вы, наверное, уже знаете, что жизненный цикл этих приложений ближе к жизненному циклу приложений на Windows Phone. Это означает, что приложение, фактически не исполняется, когда пользователь его не видит. Таким образом, возникает вопрос, как приложения могут взаимодействовать друг с другом и системой.
В Windows 8 для приложений в metro-стиле для взаимодействия приложений друг с другом используются контракты, а для взаимодействия с системой – расширения.
Разнообразных контрактов и расширений достаточно много. Написать пост про то, какие контракты и расширения доступны разработчику, меня натолкнула статья Windows 8. Контракт «поиск» в деталях, после которой я решил систематизировать свои знания и собрать в одном месте краткие, буквально в несколько строчек, «how to» по большинству контрактов и расширений, с примерами из Windows SDK Samples.Читать полностью »


