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.
  • НаукаНаука

Комментарии • 50

  • @koteotake
    @koteotake 3 года назад +13

    Хорошая образовательная передача. Даже есть развлекательные моменты 12:52. Как говорят уважаемые люди, одобряю.

  • @andrejfox5350
    @andrejfox5350 3 года назад +9

    Долго ждал этот ролик, и наконец дождался! Петру спасибо за старания, тема вправду интересная.

  • @GoodDay-nd4ol
    @GoodDay-nd4ol Год назад +4

    Продолжай выпускать образовательный контент! У тебя отлично получается.
    Спасибо за выпуск.

  • @ALCohol-qu7ib
    @ALCohol-qu7ib 3 года назад +4

    Класс, это то, что нужно, думаю, это будет популярно, даже на том простом основании, что полезно.

  • @allallall2321
    @allallall2321 3 года назад +3

    Круто, спасибо оч толковый ролик.

  • @ekaterinazakusova
    @ekaterinazakusova 8 месяцев назад +1

    Такой весёлый спикер, спасибо за урок!))

  • @display_7
    @display_7 3 года назад +1

    Полезный ролик, спасибо!

  • @terezabisharyan5463
    @terezabisharyan5463 Год назад

    Спасибо Вам большое

  • @happyroden8826
    @happyroden8826 2 года назад +2

    содержательный текст для поддержки актива автора видео в виде комментариев от заинтересованных в нем подписчиков

  • @user-ot8fy6ow4f
    @user-ot8fy6ow4f 8 месяцев назад +1

    спасибо, очень полезно. сам как пхп разраб применяю в юнит тестах ассерты. приятно видеть параллели с другими языками (с любимым си, например)

    • @MrChelovek68
      @MrChelovek68 4 месяца назад

      Ну,дружище,думаю,это общий тренд.любитель с#

  • @stagirit384
    @stagirit384 3 года назад +4

    снято на асерты от Winderton

  • @danlin1651
    @danlin1651 3 года назад +2

    Даже в этом ролике Пётр кто-то да и уничтожил !)
    А так вышел крутой ролик.

  • @shokfake
    @shokfake 3 года назад

    Пётр я горжусь вами!

  • @edgull_tlt
    @edgull_tlt 2 года назад

    Спасибо

  • @neoplasma4406
    @neoplasma4406 3 года назад +3

    12:28 Не баг а Маслина )

  • @safocl9768
    @safocl9768 3 года назад

    виндертрон мой кумир... он мое божество

  • @ItMohican
    @ItMohican 2 года назад

    Что то не понятно, сначала Петр вроде приводил пример как нужно выводить ошибку при работе пользователя с программой, дал простое решение, а потом сказал, что в релизной сборке assert не использовать. ??:/

  • @TirexZan
    @TirexZan Год назад

    Куда пропал, друже? Возвращайся.

  • @ilyazvorygin7284
    @ilyazvorygin7284 2 года назад +3

    Дизлайк походу от виндертрона))

  • @pavelrid
    @pavelrid 3 года назад

    Нельзя выпиливать NDEBUG только для assert'ов на него может быть много чего завязано если проект сколь нибудь большой. Если так надо уж, то в сях можно сделать свой ассерт через define, но который не будет завязан на NDEBUG

    • @turbomove
      @turbomove  3 года назад +1

      По стандарту си NDEBUG предназначен исключительно для assert-ов, те кто завязывают на него свою логику вами виноваты. Для своего специфического дебага надо объявлять своё определение. Например в visual studio для этого объявлен _DEBUG

    • @pavelrid
      @pavelrid 3 года назад

      @@turbomove по какому стандарту, по стандарту NDEBUG никак не определяется. Макрос NDEBUG определяется либо средой, системой сборки или руками программиста. То, что определение макроса влияет на кодогенерацию в файле assert.h еще не делает этот макрос ИСКЛЮЧИТЕЛЬНЫМ для assert'ов

    • @princessmary5556
      @princessmary5556 9 месяцев назад

      @@pavelrid Согласно спецификации с++, макрос NDEBUG предназначен специально для управления макросом assert. Использование не по назначению - это какой то бред.

    • @princessmary5556
      @princessmary5556 9 месяцев назад

      Вы пишете: *Нельзя выпиливать NDEBUG только для assert'ов на него может быть много чего завязано* Говнокод в терминальной стадии?

    • @pavelrid
      @pavelrid 9 месяцев назад

      ​@@princessmary5556 действительно, проекты такие как Chromium, Blender это говнокод ... Я понимаю, чукча не читатель, чукча писатель, но это показывает ваш уровень, сначала надо думать, потом писать, это полезно и для ютуба и код писать лучше сначала подумав. А то одной фразой "NDEBUG предназначен специально для управления макросом assert" вы себе любое собеседование завалите в нормальную компанию.

  • @user-ko5yr9mo6d
    @user-ko5yr9mo6d 3 года назад +1

    пишет на си и компилит плюсами. гений. Ну а так норм, важную тему поднял

    • @turbomove
      @turbomove  3 года назад +1

      Си - подмножество плюсов, поэтому не вижу фатальной проблемы от cpp файла, а не с. Плюс код на си +/- всем понятен будет, в отличии от плюсов.

    • @user-ko5yr9mo6d
      @user-ko5yr9mo6d 3 года назад +1

      @@turbomove строго говоря не подмножество. На си можно написать такое, что в плюсах не скомпилится. Например int* p = malloc(sizeof(int)); в С++ не компилится, а в Си да

    • @turbomove
      @turbomove  3 года назад +4

      Это совсем бэд код, он и в си будет с варнингами. Но если уж совсем все плохо - extern "C" заставит компилятор C++ смириться с этим и проглотить.

  • @princessmary5556
    @princessmary5556 9 месяцев назад +1

    Тема не раскрыта. Например: вы рассказали, как можно сделать так, что бы assert`ы не выпиливались из релиза. Однако, возникает вопрос: а зачем? Ведь не зря же они по умолчанию выпиливают из релиза во всех адекватных сборках? Вы показали, как можно использовать ассерт в качестве инструмента для тестирования. Однако, ничего не сказали о том, что вообще то ассерты для этого не предназначены. А для чего же на самом деле они предназначены? Как их правильно использовать? Об этом вы ничего так и не сказали. Тема не раскрыта.

    • @turbomove
      @turbomove  9 месяцев назад

      Ну так раскройте тему:
      1) когда использовать ассерты?
      2) для чего в действительности предназначены ассерты?
      3) зачем можно не выпиливать, и почему «выпиливают в адекватных сборках»?
      4) как правильно использовать ассерты?

    • @princessmary5556
      @princessmary5556 9 месяцев назад +1

      ​@@turbomove Вы серьёзно хотите что бы я раскрыла тему ассертов в формате комментариев ютуба? Такой фигней я точно заниматься не буду. Людям, которым действительно интересна тема ассертов, могу порекомендовать почитать качественную литературу. Например: Стив Макконелл, "Совершенный код". Чрезвычайно полезная книга, в которой помимо прочего, тема ассертов очень хорошо раскрыта.

    • @turbomove
      @turbomove  9 месяцев назад

      ну раз нет конкретики, то первоначальный коммент с критикой не засчитывается, ибо не ясно что не так

    • @princessmary5556
      @princessmary5556 9 месяцев назад

      @@turbomove В таком случае, уровень вашего ролика так и останется на дилетанстком уровне. И это никак не зависит ни от моего первоначального коммента, ни от понимания конкретики сабжа, которая отсутствует у вас в голове.

    • @turbomove
      @turbomove  9 месяцев назад

      оооо дя я смотрю ты прям прфессионал))) куда мне - дитетанту. это ролик. не книга. хочешь "профессиональный" уровень - закапываешься в литературу. даж на мега-ульра конференциях все всегда "по верхам" - ибо время ограничего, а бубнеж на 4 часа, с обсуждением процесса сборки в крестах - никто смотреть не будет.