Assert для повышения надежности, отладки и тестирования программ. [программирование]
HTML-код
- Опубликовано: 14 апр 2021
- #ПетрБезумный #Программирование #ityoutubersru
#ityoutubers
💾 Помоги автору щедрым донатом:
✅ Донат: www.donationalerts.ru/r/crazz...
✅ Patreon (помощь раз в месяц): / crazzzypeter
Многие не знают об очень крутой штуке - конструкции Assert, которая доступна практически во всех языках программирования и способна сильно упростить жизнь при отладке, тестировании программ. А также повысить надежность программ.
В этом видео показаны несколько трюков с Assert, а также распространенные ошибки при использовании Assert, и способы их избежать.
Повторить эти ПИРАТСКИЕ ТРЮКИ ПРОГРАММИСТА сможет каждый!
(слегка подрезал формат у @HowdyhoNet )
Видео будет особенно полезно всем, кто начинает свой путь в мире программирования.
Пишите в комментариях, узнали ли вы что-то новое или полезное из этого видео?
А также пишите о чем вы хотели бы видеть ролики на моем канале?
Ах да, в этом ролике мы учим @wndtn использовать assert-ы адекватно, раз курсы Яндекса по c++ не помогли.
💾 Темы, затрагиваемые в этом ролике:
Программирование, Assert, ObjectPascal, Pascal, Delphi, C++, C, js, javascript, python, Разработка, Программирование для начинающих, Компилятор, Отладка, Релиз, ityoutubersru. Наука
Хорошая образовательная передача. Даже есть развлекательные моменты 12:52. Как говорят уважаемые люди, одобряю.
Долго ждал этот ролик, и наконец дождался! Петру спасибо за старания, тема вправду интересная.
Продолжай выпускать образовательный контент! У тебя отлично получается.
Спасибо за выпуск.
Класс, это то, что нужно, думаю, это будет популярно, даже на том простом основании, что полезно.
Круто, спасибо оч толковый ролик.
Такой весёлый спикер, спасибо за урок!))
Полезный ролик, спасибо!
Спасибо Вам большое
содержательный текст для поддержки актива автора видео в виде комментариев от заинтересованных в нем подписчиков
спасибо, очень полезно. сам как пхп разраб применяю в юнит тестах ассерты. приятно видеть параллели с другими языками (с любимым си, например)
Ну,дружище,думаю,это общий тренд.любитель с#
снято на асерты от Winderton
Даже в этом ролике Пётр кто-то да и уничтожил !)
А так вышел крутой ролик.
Пётр я горжусь вами!
Спасибо
12:28 Не баг а Маслина )
виндертрон мой кумир... он мое божество
Что то не понятно, сначала Петр вроде приводил пример как нужно выводить ошибку при работе пользователя с программой, дал простое решение, а потом сказал, что в релизной сборке assert не использовать. ??:/
Куда пропал, друже? Возвращайся.
Дизлайк походу от виндертрона))
Нельзя выпиливать NDEBUG только для assert'ов на него может быть много чего завязано если проект сколь нибудь большой. Если так надо уж, то в сях можно сделать свой ассерт через define, но который не будет завязан на NDEBUG
По стандарту си NDEBUG предназначен исключительно для assert-ов, те кто завязывают на него свою логику вами виноваты. Для своего специфического дебага надо объявлять своё определение. Например в visual studio для этого объявлен _DEBUG
@@turbomove по какому стандарту, по стандарту NDEBUG никак не определяется. Макрос NDEBUG определяется либо средой, системой сборки или руками программиста. То, что определение макроса влияет на кодогенерацию в файле assert.h еще не делает этот макрос ИСКЛЮЧИТЕЛЬНЫМ для assert'ов
@@pavelrid Согласно спецификации с++, макрос NDEBUG предназначен специально для управления макросом assert. Использование не по назначению - это какой то бред.
Вы пишете: *Нельзя выпиливать NDEBUG только для assert'ов на него может быть много чего завязано* Говнокод в терминальной стадии?
@@princessmary5556 действительно, проекты такие как Chromium, Blender это говнокод ... Я понимаю, чукча не читатель, чукча писатель, но это показывает ваш уровень, сначала надо думать, потом писать, это полезно и для ютуба и код писать лучше сначала подумав. А то одной фразой "NDEBUG предназначен специально для управления макросом assert" вы себе любое собеседование завалите в нормальную компанию.
пишет на си и компилит плюсами. гений. Ну а так норм, важную тему поднял
Си - подмножество плюсов, поэтому не вижу фатальной проблемы от cpp файла, а не с. Плюс код на си +/- всем понятен будет, в отличии от плюсов.
@@turbomove строго говоря не подмножество. На си можно написать такое, что в плюсах не скомпилится. Например int* p = malloc(sizeof(int)); в С++ не компилится, а в Си да
Это совсем бэд код, он и в си будет с варнингами. Но если уж совсем все плохо - extern "C" заставит компилятор C++ смириться с этим и проглотить.
Тема не раскрыта. Например: вы рассказали, как можно сделать так, что бы assert`ы не выпиливались из релиза. Однако, возникает вопрос: а зачем? Ведь не зря же они по умолчанию выпиливают из релиза во всех адекватных сборках? Вы показали, как можно использовать ассерт в качестве инструмента для тестирования. Однако, ничего не сказали о том, что вообще то ассерты для этого не предназначены. А для чего же на самом деле они предназначены? Как их правильно использовать? Об этом вы ничего так и не сказали. Тема не раскрыта.
Ну так раскройте тему:
1) когда использовать ассерты?
2) для чего в действительности предназначены ассерты?
3) зачем можно не выпиливать, и почему «выпиливают в адекватных сборках»?
4) как правильно использовать ассерты?
@@turbomove Вы серьёзно хотите что бы я раскрыла тему ассертов в формате комментариев ютуба? Такой фигней я точно заниматься не буду. Людям, которым действительно интересна тема ассертов, могу порекомендовать почитать качественную литературу. Например: Стив Макконелл, "Совершенный код". Чрезвычайно полезная книга, в которой помимо прочего, тема ассертов очень хорошо раскрыта.
ну раз нет конкретики, то первоначальный коммент с критикой не засчитывается, ибо не ясно что не так
@@turbomove В таком случае, уровень вашего ролика так и останется на дилетанстком уровне. И это никак не зависит ни от моего первоначального коммента, ни от понимания конкретики сабжа, которая отсутствует у вас в голове.
оооо дя я смотрю ты прям прфессионал))) куда мне - дитетанту. это ролик. не книга. хочешь "профессиональный" уровень - закапываешься в литературу. даж на мега-ульра конференциях все всегда "по верхам" - ибо время ограничего, а бубнеж на 4 часа, с обсуждением процесса сборки в крестах - никто смотреть не будет.