0. [fact] Вот мы пользуемся
std::optional<bool>. Или std::optional<SomePtrType>, когда хотим разграничивать три стейта: осознанный true, осознанный false и отсутствие значения (аналогично с указателями). И очень легко попадаемся на тупейшие баги:
if (value) {...}
Где вместо значения внутри проверяется наличие этого самого значения.
Если будете писать свою реализацию опшионала, запрещайте сразу неявный каст в
bool для типов, которые сами умеют в bool кастоваться. Столько нервов потом сэкономите...Имхо вот это хорошее место, где язык мог бы подпушить писать более хороший код. Сейчас уже к сожалению такой пропозал отклонят, т.к. он ломает огромное кол-во кода.
Мы у себя рекомендуем не использовать неявный каст опшионала и operator*. Вы скажете, что альтернатива
.value() это лишняя проверка. А я отвечу, что - эта проверка нам и нужна: скорость дебага гораздо важнее потерянных наносекунд в рантайме, т.к. падение сервиса -- денюжки
- какой смысл микрооптимизировать
if, если рядом сетевой поход на 500мс- никто не мешает написать аналогичный метод без проверки. Зато защищаемся от потенциальных проблем в логике.
1. [article] You should delete tests.
Автор имеет в виду:
- флапающие
- те, которые мешают вам разрабатывать быстро
Вообще уметь писать тесты -- тоже скилл. Иногда бывает, что тесты в канаве, потому какое-то базовое изменение ломает тебе не тот самый единственный тест, который проверяет ровно эту функциональность, а ещё и 100 других тестов, в которых проверяется абсолютно другая логика, но и эта заодно, просто потому что так сложилась и в тесте, условно, проверяют не одно поле, а весь респонс. Я сижу сейчас рефакторю такие места, а то реально больно бывает.
2. [article] Making Postgres 42,000x slower because I am unemployed.
Причём чувак пытается сделать это не сделав мегагигачадзапрос, а исключительно конфигурацией в postgresql.conf. Ну и у него получается. Забавненько.
3. [article] Would you like an IDOR with that? Leaking 64 million McDonald’s job applications.
Даже у больших компаний масштаба world бывают базовые проблемы с секурити. Штош. Хорошо, что это нашли.
4. [lightning talk] :
Без комментариев.