vault backup: 2025-11-17 10:04:07
This commit is contained in:
parent
a5b6445133
commit
60f0cbe4c1
24
4.2/2.md
24
4.2/2.md
@ -44,3 +44,27 @@ ub: из-за различий архитектру цп и ос и для оп
|
||||
При описании бест практис про Safety, привести пример, почему нужно (а еще потому, что при изменении логики функции самим тоже нужно следить, какие инварианты висят за пользователем)
|
||||
Практика: подумайте над тем, какие инварианты тут должны быть соблюдены и какие из них не соблюдены. или пропробовать найти несоблюденный инвариант и "взломать" программу?)
|
||||
допустим, нам нужно дя создания сокета узнать, можем ли мы использовать 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
|
||||
Loading…
x
Reference in New Issue
Block a user