Size: a a a

2020 July 16

MP

Max Payne in Embedded Group
Сиие Сууие
Слава богу не занимаюсь динамическим выделением памяти
я тоже стараюсь без динамических выделений, но проверять на NULL надо везде, где принимаешь поинтеры - вдруг ты забыл что-то вызвать с правильными агрументами
источник

VO

Vyacheslav Olkhovche... in Embedded Group
Max Payne
Мне только задолбали постоянные проверки на NULL, забытые free()/close() и

if (rc != 0) {
    return rc;
}
так не делай и не забывай.
источник

MP

Max Payne in Embedded Group
Vyacheslav Olkhovchenkov
так не делай и не забывай.
что не делать? не программировать?
источник

MP

Max Payne in Embedded Group
чем же мне зарабатывать тогда на жизнь? ;)
источник

VO

Vyacheslav Olkhovche... in Embedded Group
не проверяй на null.
источник

MP

Max Payne in Embedded Group
ты забыл добавить тэг <irony>
источник

VO

Vyacheslav Olkhovche... in Embedded Group
нет
источник

VO

Vyacheslav Olkhovche... in Embedded Group
варианты же есть разные
источник

VO

Vyacheslav Olkhovche... in Embedded Group
можно обернуть malloc в свою обертку которая будет падать по abort если что
источник

VO

Vyacheslav Olkhovche... in Embedded Group
можно делать sleep и повторную попытку взять еще память
источник

VO

Vyacheslav Olkhovche... in Embedded Group
можно еще что-то
источник

MP

Max Payne in Embedded Group
у меня может быть 0 маллока в программе, но все равно есть проверки на NULL
источник

VO

Vyacheslav Olkhovche... in Embedded Group
это ведь все бизнес-спецефично
источник

MP

Max Payne in Embedded Group
ибо любой поинтер, входящий в функцию, либо вылазящий из библиотеки нужно чекать
источник

СС

Сиие Сууие in Embedded Group
Max Payne
я тоже стараюсь без динамических выделений, но проверять на NULL надо везде, где принимаешь поинтеры - вдруг ты забыл что-то вызвать с правильными агрументами
Ну и гори оно все синем пламенем. А вообще тут я в основном использую глобальные переменные и передавать толком нечего, я ушел в деревянность просто по уши
источник

VK

Valentin Kornienko in Embedded Group
Сиие Сууие
Ну и гори оно все синем пламенем. А вообще тут я в основном использую глобальные переменные и передавать толком нечего, я ушел в деревянность просто по уши
<пятница></пятница>
источник

VO

Vyacheslav Olkhovche... in Embedded Group
если ты можешь как-то сгруппировать реакцию на null --можно сделать обертку и не делать такую проверку каждый раз
источник

аᶘ

асоциальный пикотран... in Embedded Group
Сиие Сууие
Я прихожу к мысли о том что "расширяемость" в плане ембеддед не очень хорошая затея, раньше я там что-то кренделя выписывал что и так и этак можно было, сейчас понимаю что легче прибить намертво и ЕСЛИ попросят поменять то уже прибивать что-то новое (а по опыту вижу что скорее переписывать снуля так как тягать за собой Легаси не очень)
Когда-то говорили на курсах что слишком мягкий код хуже чем жёсткий, и рамки как-то сдвинулись очень сильно
Ну у тебя ведь известная позиция фатального недостатка нулевой толерантности к коду, который написал не ты. Очень опасная позиция, как по мне. Если ты работаешь один и готов переписывать всё с нуля каждый раз, лишь бы не таскать legacy, то это окей. Но не представляю, как с таким мировоззрением работать в команде.
источник

VO

Vyacheslav Olkhovche... in Embedded Group
а вот если реакция каждый раз индивидуально -- то да, будешь проверять, но ныть в этом случае -- как-то странно
источник

MP

Max Payne in Embedded Group
Vyacheslav Olkhovchenkov
если ты можешь как-то сгруппировать реакцию на null --можно сделать обертку и не делать такую проверку каждый раз
к сожалению, лучший способ это делать propagate, который в Си делается руками
источник