Size: a a a

Конференция C++ Russia

2020 February 26

AV

Alexey Veselovsky in Конференция C++ Russia
Sergey
Постоянное трение - это когда тебе надо везде проверять на nullptr, а если не проверил, то UB
Если не проверил, то санитайзер за руку поймает.
источник

S

Sergey in Конференция C++ Russia
Тут основная идея в том, что тебе не потребуется санитайзер и неправильные действия будут просто выглядеть неправильно
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Чтобы примерно понять что код делает - достаточно почитать верхний краткий уровень вот этот. Но чтобы полностью понять что происходит - придётся размотать это целиком в голове в здоровенную портянку со связями, пройти через все 100500 слоев абстракции. А это сложно. Проще бывает когда код более «плоский».

На чем собственно всякие Го и играют.
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Sergey
Тут основная идея в том, что тебе не потребуется санитайзер и неправильные действия будут просто выглядеть неправильно
В плюсах - все равно всегда нужен
источник

S

Sergey in Конференция C++ Russia
Так то да. Но мне почему то кажется, что когда тебе приходится доставать санитайзеры и дебаггеры, то ты находишься не в самом продуктивном своем состоянии. Суть ФП в том, что при его правильном применении он ловит  многие косяки на этапе компиляции.
ЗЫ: за то время, пока я писал на скале мне ни разу не был нужен ни санитайзер ни дебаггер. По времени это было гдет год.
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Sergey
Так то да. Но мне почему то кажется, что когда тебе приходится доставать санитайзеры и дебаггеры, то ты находишься не в самом продуктивном своем состоянии. Суть ФП в том, что при его правильном применении он ловит  многие косяки на этапе компиляции.
ЗЫ: за то время, пока я писал на скале мне ни разу не был нужен ни санитайзер ни дебаггер. По времени это было гдет год.
Зачем доставать? Ты просто ВСЕГДА и ПО УМОЛЧАНИЮ собираешь своё приложение с этой опцией. Никаких доп. усилий от программиста не требуется
источник

AV

Alexey Veselovsky in Конференция C++ Russia
И работаешь как обычно. Просто теперь если ты сделаешь что-то не так, то санитайзер тебе четко укажет на проблемное место
источник

S

Sergey in Конференция C++ Russia
Alexey Veselovsky
Зачем доставать? Ты просто ВСЕГДА и ПО УМОЛЧАНИЮ собираешь своё приложение с этой опцией. Никаких доп. усилий от программиста не требуется
И катишь в прод с санитайзером😝
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Sergey
И катишь в прод с санитайзером😝
В том числе. Оно для этого и придумывалось. Как минимум на часть прода.
источник

S

Sergey in Конференция C++ Russia
Насколько я помню, их бывает несколько: адресный, на память, на многопоточность, UB и на мем лики
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Ага
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Обычное сочетание: ASan + LSan + UBSan
источник

S

Sergey in Конференция C++ Russia
И всех в прод?!
источник

AZ

Alexander Zaitsev in Конференция C++ Russia
Sergey
И всех в прод?!
да, и все в прод. всегда так делаем. мы правда ещё и в прод выкатываем без оптимизаций - так безопаснее
источник

AZ

Alexander Zaitsev in Конференция C++ Russia
всякие фокусы от UB в ногу практически не стреляют
источник

S

Sergey in Конференция C++ Russia
Вообще огонь!
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
Sergey
На эту тему я процитирую слова товарща Фаулера: Меньше - это больше. Все решает эффективность. Когда ты что то видишь в первый раз оно тебе может показаться сложным и непонятным. Но когда ты перешел через порог входа и начал понимать, что происходит все начинает быть быстрее и веселее. Я не спорю с тем, что С++ всегда был той вещью, которой легко было отстрелить себе ногу или какую нибудь другую конечность. Но по сути в этом вся его идеология сводится к тому, что у тебя есть достаточно большой объем инструментов, который может очень гибко решать очень сложные задачи, а может рождать кошмарные конструкции, все зависит от того, как пользоваться :-D. Монады - это еще одна такая конструкция, которая позволяет сделать язык более выразительным и решить какое то количество типовых задач.
Дело-то в том, что все императивные вещи понятны обычно минут через 10, а если не очень - сходил на митап по санитайзерам. Что такое монады я до конца понять не могу уже не первый месяц) Т.е. мне все понятно в каждой конкретной монаде, но покажи новую и я как баран на новые ворота смотрю
источник

AV

Alexey Veselovsky in Конференция C++ Russia
Sergey
И всех в прод?!
Хм. Тебя количество опций компилятору пугает, или что?
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
Не слишком ли высок порог?
источник

AZ

Alexander Zaitsev in Конференция C++ Russia
Alexey Veselovsky
Хм. Тебя количество опций компилятору пугает, или что?
это мы ещё редко в С++ сообществе подбираем набор опций компилятора для релиза с помощью машинного обучения... :)
источник