Гарантии и страховки в программировании

Поделиться
HTML-код
  • Опубликовано: 10 мар 2021
  • #soer #itubeteam
    Основной канал для общения и публикации новых видео - Телегарм - t.me/softwareengineervlog
    Спонсорство - donate.s0er.ru
    Сайт платным контентом - soer.pro
    Зеркало для видео Дзен Видео - zen.yandex.ru/id/5f578bdf22e2...
    GitHub - github.com/soerdev
    Чат для программистов - / discord
    Группа ВК - codeartblog

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

  • @MrRobotM
    @MrRobotM 3 года назад +15

    Теперь я знаю технику безопасности программирования как свои 2 пальца! )

  • @stanislavsh6582
    @stanislavsh6582 3 года назад +7

    Это все конечно хорошо. Только вот для джуна, зачастую, проблема разобраться в том что от тебя вообще хотят, потому что ты вроде кодить-то умеешь, а вот как это умение соотносится с бизнесом в котором ты оказался - непонятно. И ты тратишь кучу времени на выяснение, что собственно тебе-то сделать надо, именно потому, я думаю, джуны и не очень сильно задумываются о всех этих гарантиях и страховках.
    Ну серьезно, вспомните как только закончили вуз. Вам рассказали про структуры данных, про языки, про алгоритмы, вы приходите на работу, там своя терминология, вводят в курс, зачастую, неохотно(ну, по крайней мере меня не особо вводили, просто: вот нужно написать штуку которая должна это делать, вот протокол - делай), ты сидишь, что-то там кодишь, потом оказывается что половина того что ты там накодил вообще не имеет отношения к задаче, решение которой тебе доверили, ты переписываешь, потом еще и правишь баги, в процессе тебе докидывают всякие требования, типа вот эта вот фича ну очень нужна, а ведь вчерашние студенты еще и хотят показать что они-то не непонятные люди с горы и хотят оптимизации везде вопхнуть, даже там где не надо, и получается, что о каких-то там гарантиях задумываются в последнюю очередь, обычно, когда отдел обеспечения качества накидает багрепортов и нужно скорее все это фиксить. Ну, а когда ты уже сеньер-помидор в какой-то сфере, понимаешь, как работает бизнес, какие задачи в нем решаются, что представляет ценность для пользователя и т.д. - ты начинаешь думать уже не о том, как и что делать, а как делать так, чтобы оно было устойчиво к изменениям, чтобы работало правильно и т.д.
    Лично мое мнение.

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

      Поэтому джунов нужно менторить, и направлять в нужную сторону. Джун не должен отвечать перед заказчиком, на то он и джун

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

    Спасибо, актуально для меня.

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

    Какой всё-таки у человека ясный ум вот так говорить по делу на камеру, без склеек, без листа, без слов-паразитов.
    Kudos, одним словом.

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

    Полезное видео, спасибо

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

    Понятно. Не считайте таблицы стрельбы по формулам - сделайте их сейчас, пока уровень радиации в норме. И не вздумайте считать счётчик Гейгера, сразу выводите максимальное значение, когда пропадет сигнал соответствующей номерной радиостанции).
    Спасибо за этот небольшой обзор такой важной темы. Для встраиваемых систем - архиважной.

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

    Хорошо, но мало. Как вам мысль расширить побольше "окно" с автором? как-т слишком узко, даже не весь вмещается в месте, которое под него выделено в видео.

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

    Класное превью-)

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

    Относительно полезно. Почему просто не выводить логи ошибок и логи дебага? Всё остальное должно выявляться через клиент-серверную статистику как это реализовано в Jetbrains и фиксацию версий библиотек и интерпретаторов, если программно не получается сделать такую логику, то всё остальное усложнит сопровождение программы по итогу. Раньше в техникуме говорили это одним ёмким словом - костыль или велосипед... И на системных администраторов обычно ложится задача интеграции, и они должны соблюдать зависимости пакетов для программы в исходниках. Тестировщики как раз и выполняют роль страховки новых версий программ, а вообще лучше собирать уже готовые бинарники. Меньше времени уйдёт на интеграцию программы и проверок логики.

  • @LinDahai88
    @LinDahai88 3 года назад +21

    "Безопасное программирование" - это техника избежания производственных травм от чужого кода :)

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

      Тогда нужен холодный стул. Просто холодный стул.

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

      а ещё лучше от своего

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

      Психологических травм от чужого кода

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

      @@vladimirpetrov8918 просто стул-унитаз.

    • @0x4f6c
      @0x4f6c 3 года назад

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

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

    извини, если ты уже рассказывал, но что у тебя за планшет на котором ты рисуешь? При работе из дома думаю мог бы быть полезным

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

    Если уж говорить о гарантиях и страховках, то говорить надо о доменной модели и ее инвариантах. "Make Illegal States Unrepresentable". При отсутствии гарантий корректности x y с точки зрения модели > 0 гарантирует примерно ничего. Можно случайно сложить мышей и рубли, при том что и тех и других будет больше 0. Когда говорят о гарантиях компилятора, обычно речь именно о гарантиях строгих типов в доменной модели, а не о том, что компилятор умеет складывать встроенные типы.

  • @user-pg8ry1tm3t
    @user-pg8ry1tm3t 3 года назад

    А как же написание кода на основе тестирования. Для рефакторинга - маст хэв...

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

    Где камин (???

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

    Не понял, чем отличается страховочный код от тестов.

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

      Тем что тесты, это по сути отдельная программа, проверяющая корректность результата целевой программы в тех или иных случаях, а страховка в данном контексте непосредственно часть целевой программы и отвечает за обеспечения корректности результата работы программы.
      Тестом мы проверяем что в случае деления x на y.
      1. Если исходные данные: x = 1, y = 1 результат 1
      2. Если исходные данные: x = 1, a y = 3 результат 0.333 и т.д. с точностью до определенного знака
      3. Если исходные данные: x = 1, а y = 0 результат сообщения о том что на ноль делить нельзя
      Страховка же как раз в самой программе должна обеспечить все эти результаты.
      Собственно это видео о том что программисту необходимо понимать в каких случаях эту страховку делать и почему, а в каких можно положится на библиотеки, язык программирования, платформу, аппаратное обеспечение. Так же автор затронул вопрос о достаточности или недостаточности страховки, как раз в контексте того что обеспечивает страховку ваш код, библиотеки, платформа или аппаратное обеспечение.

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

    Автор, посоветуйте литературу по безопасному программированию.

    • @M.Makart
      @M.Makart 3 года назад +1

      Хоть я не автор, могу посоветовать известную книгу "Совершенный код" Стива Макконнелла. Там рассказывается обо всём, но есть глава о защитном программировании (занимает 27 страниц в русском издании).

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

      Ховард, Лебланк - Защищенный код / Michael Howard and David LeBlanc - Writing Secure Code
      Ховард, Лебланк - 24 смертных греха компьютерной безопасности
      Ховард М., Лебланк Д., Виега Д. - 19 смертных грехов, угрожающих безопасности программ

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

    У тебя

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

    Ни один из языков программирования имутабельность не способен даже близко гарантировать. WriteProcessMemory , инжект dll.

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

      Перепутал уровень абстракции, ты говоришь про окружение, а не про ЯП.

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

    какой душный дед)))

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

    Нудно и не понятно в итоге ничего... 😒

  • @Natural_Mindset
    @Natural_Mindset 3 года назад +5

    Превьюха полна презрения от синьора к джунам. Не, ну серьёзно, это мышцы века так ослаблены?

    • @user-fest
      @user-fest 3 года назад +2

      😂 точно, тоже показалось)))

    • @romandemin8601
      @romandemin8601 3 года назад +10

      В словах Soera презрения нет. Информацию дает полезную. А вглядываться в то кто как выглядит и какие у человека могут быть проблемы да ещё и выносить это в комментариях не стоит.

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

      @@romandemin8601 ой, моралист подъехал.
      Да никто его не выставляет тут. Просто любопытство.
      К тому же он сам себя в публичные блоггеры записал, так что неизбежно такие вопросы будут

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

      @@Natural_Mindset это птоз

  • @rt-yc1op
    @rt-yc1op 3 года назад

    Что у вас с правым глазом?

    • @rt-yc1op
      @rt-yc1op 3 года назад +3

      @@video001122 понял

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

      @@user-ox1dj5ox8f Перегрузка полушария. Да, вестник инсульта, но тут еще могут быть причины

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

      @@user-ox1dj5ox8f сначала проанализируй свой диагноз, затем уже думай, лезть или нет