Гарантии и страховки в программировании
HTML-код
- Опубликовано: 10 мар 2021
- #soer #itubeteam
Основной канал для общения и публикации новых видео - Телегарм - t.me/softwareengineervlog
Спонсорство - donate.s0er.ru
Сайт платным контентом - soer.pro
Зеркало для видео Дзен Видео - zen.yandex.ru/id/5f578bdf22e2...
GitHub - github.com/soerdev
Чат для программистов - / discord
Группа ВК - codeartblog
Теперь я знаю технику безопасности программирования как свои 2 пальца! )
Это все конечно хорошо. Только вот для джуна, зачастую, проблема разобраться в том что от тебя вообще хотят, потому что ты вроде кодить-то умеешь, а вот как это умение соотносится с бизнесом в котором ты оказался - непонятно. И ты тратишь кучу времени на выяснение, что собственно тебе-то сделать надо, именно потому, я думаю, джуны и не очень сильно задумываются о всех этих гарантиях и страховках.
Ну серьезно, вспомните как только закончили вуз. Вам рассказали про структуры данных, про языки, про алгоритмы, вы приходите на работу, там своя терминология, вводят в курс, зачастую, неохотно(ну, по крайней мере меня не особо вводили, просто: вот нужно написать штуку которая должна это делать, вот протокол - делай), ты сидишь, что-то там кодишь, потом оказывается что половина того что ты там накодил вообще не имеет отношения к задаче, решение которой тебе доверили, ты переписываешь, потом еще и правишь баги, в процессе тебе докидывают всякие требования, типа вот эта вот фича ну очень нужна, а ведь вчерашние студенты еще и хотят показать что они-то не непонятные люди с горы и хотят оптимизации везде вопхнуть, даже там где не надо, и получается, что о каких-то там гарантиях задумываются в последнюю очередь, обычно, когда отдел обеспечения качества накидает багрепортов и нужно скорее все это фиксить. Ну, а когда ты уже сеньер-помидор в какой-то сфере, понимаешь, как работает бизнес, какие задачи в нем решаются, что представляет ценность для пользователя и т.д. - ты начинаешь думать уже не о том, как и что делать, а как делать так, чтобы оно было устойчиво к изменениям, чтобы работало правильно и т.д.
Лично мое мнение.
Поэтому джунов нужно менторить, и направлять в нужную сторону. Джун не должен отвечать перед заказчиком, на то он и джун
Спасибо, актуально для меня.
Какой всё-таки у человека ясный ум вот так говорить по делу на камеру, без склеек, без листа, без слов-паразитов.
Kudos, одним словом.
Полезное видео, спасибо
Понятно. Не считайте таблицы стрельбы по формулам - сделайте их сейчас, пока уровень радиации в норме. И не вздумайте считать счётчик Гейгера, сразу выводите максимальное значение, когда пропадет сигнал соответствующей номерной радиостанции).
Спасибо за этот небольшой обзор такой важной темы. Для встраиваемых систем - архиважной.
Хорошо, но мало. Как вам мысль расширить побольше "окно" с автором? как-т слишком узко, даже не весь вмещается в месте, которое под него выделено в видео.
Класное превью-)
Относительно полезно. Почему просто не выводить логи ошибок и логи дебага? Всё остальное должно выявляться через клиент-серверную статистику как это реализовано в Jetbrains и фиксацию версий библиотек и интерпретаторов, если программно не получается сделать такую логику, то всё остальное усложнит сопровождение программы по итогу. Раньше в техникуме говорили это одним ёмким словом - костыль или велосипед... И на системных администраторов обычно ложится задача интеграции, и они должны соблюдать зависимости пакетов для программы в исходниках. Тестировщики как раз и выполняют роль страховки новых версий программ, а вообще лучше собирать уже готовые бинарники. Меньше времени уйдёт на интеграцию программы и проверок логики.
"Безопасное программирование" - это техника избежания производственных травм от чужого кода :)
Тогда нужен холодный стул. Просто холодный стул.
а ещё лучше от своего
Психологических травм от чужого кода
@@vladimirpetrov8918 просто стул-унитаз.
Всегда держите в уме, что травмы от своего кода можно получить опосредованно: через других людей, которые пытаются разобраться в вашем коде ;)
Таким образом, травмы от чужого кода психологические, а от своего - физические.
извини, если ты уже рассказывал, но что у тебя за планшет на котором ты рисуешь? При работе из дома думаю мог бы быть полезным
Если уж говорить о гарантиях и страховках, то говорить надо о доменной модели и ее инвариантах. "Make Illegal States Unrepresentable". При отсутствии гарантий корректности x y с точки зрения модели > 0 гарантирует примерно ничего. Можно случайно сложить мышей и рубли, при том что и тех и других будет больше 0. Когда говорят о гарантиях компилятора, обычно речь именно о гарантиях строгих типов в доменной модели, а не о том, что компилятор умеет складывать встроенные типы.
А как же написание кода на основе тестирования. Для рефакторинга - маст хэв...
Где камин (???
Не понял, чем отличается страховочный код от тестов.
Тем что тесты, это по сути отдельная программа, проверяющая корректность результата целевой программы в тех или иных случаях, а страховка в данном контексте непосредственно часть целевой программы и отвечает за обеспечения корректности результата работы программы.
Тестом мы проверяем что в случае деления x на y.
1. Если исходные данные: x = 1, y = 1 результат 1
2. Если исходные данные: x = 1, a y = 3 результат 0.333 и т.д. с точностью до определенного знака
3. Если исходные данные: x = 1, а y = 0 результат сообщения о том что на ноль делить нельзя
Страховка же как раз в самой программе должна обеспечить все эти результаты.
Собственно это видео о том что программисту необходимо понимать в каких случаях эту страховку делать и почему, а в каких можно положится на библиотеки, язык программирования, платформу, аппаратное обеспечение. Так же автор затронул вопрос о достаточности или недостаточности страховки, как раз в контексте того что обеспечивает страховку ваш код, библиотеки, платформа или аппаратное обеспечение.
Автор, посоветуйте литературу по безопасному программированию.
Хоть я не автор, могу посоветовать известную книгу "Совершенный код" Стива Макконнелла. Там рассказывается обо всём, но есть глава о защитном программировании (занимает 27 страниц в русском издании).
Ховард, Лебланк - Защищенный код / Michael Howard and David LeBlanc - Writing Secure Code
Ховард, Лебланк - 24 смертных греха компьютерной безопасности
Ховард М., Лебланк Д., Виега Д. - 19 смертных грехов, угрожающих безопасности программ
У тебя
Ни один из языков программирования имутабельность не способен даже близко гарантировать. WriteProcessMemory , инжект dll.
Перепутал уровень абстракции, ты говоришь про окружение, а не про ЯП.
какой душный дед)))
Нудно и не понятно в итоге ничего... 😒
Превьюха полна презрения от синьора к джунам. Не, ну серьёзно, это мышцы века так ослаблены?
😂 точно, тоже показалось)))
В словах Soera презрения нет. Информацию дает полезную. А вглядываться в то кто как выглядит и какие у человека могут быть проблемы да ещё и выносить это в комментариях не стоит.
@@romandemin8601 ой, моралист подъехал.
Да никто его не выставляет тут. Просто любопытство.
К тому же он сам себя в публичные блоггеры записал, так что неизбежно такие вопросы будут
@@Natural_Mindset это птоз
Что у вас с правым глазом?
@@video001122 понял
@@user-ox1dj5ox8f Перегрузка полушария. Да, вестник инсульта, но тут еще могут быть причины
@@user-ox1dj5ox8f сначала проанализируй свой диагноз, затем уже думай, лезть или нет