vault backup: 2025-11-17 10:04:07

This commit is contained in:
akulij 2025-11-17 10:04:07 +07:00
parent a5b6445133
commit 60f0cbe4c1

View File

@ -44,3 +44,27 @@ ub: из-за различий архитектру цп и ос и для оп
При описании бест практис про Safety, привести пример, почему нужно (а еще потому, что при изменении логики функции самим тоже нужно следить, какие инварианты висят за пользователем) При описании бест практис про Safety, привести пример, почему нужно (а еще потому, что при изменении логики функции самим тоже нужно следить, какие инварианты висят за пользователем)
Практика: подумайте над тем, какие инварианты тут должны быть соблюдены и какие из них не соблюдены. или пропробовать найти несоблюденный инвариант и "взломать" программу?) Практика: подумайте над тем, какие инварианты тут должны быть соблюдены и какие из них не соблюдены. или пропробовать найти несоблюденный инвариант и "взломать" программу?)
допустим, нам нужно дя создания сокета узнать, можем ли мы использовать tcp/udp/icmp/etc, для этого используем сискол WSAEnumProtocolsA допустим, нам нужно дя создания сокета узнать, можем ли мы использовать tcp/udp/icmp/etc, для этого используем сискол WSAEnumProtocolsA
**Начать с проблемы, когда компилятор не может гарантировать безопасность по памяти (но без этого невозможно написать программу), возможно из ub**
**Рассказать про причины ub**
Именно для этого и было создано
**Рассказать, чем является unsafe, ответственность на программисте, про ub (НЕ является избавлением от borrow checker)**
**Рассказать про применение unsafe (взаимодействие с С, оптимизация (вспомнить небезопасную либу для бэкенда: rocket или actix), написание основы/базы языка)**
- [ ] Определении функции unsafe если соблюдение инвариантов висит на пользователе (при написании такой функции смотреть - является ли сам интерфейс функции safe)
- [ ] примеры из third party
- [ ] Рассказать про бест практис при написании unsafe:
- [ ] Лучший unsafe - отсутствующий unsafe
- [ ] Уменьшение зоны unsafe (легче найти баг + проще просчитать ub)
- [ ] Safety
- [ ] SAFETY
- [ ] assert_unsafe_precondition!
- [ ] ...
- [ ] Практика
- [ ] Лайфтаймы как помошники при взаимодействии с c abi
- [ ] Drop