-
- Там вообще проблем нет, такой код выдаёт сразу варнинг. Это не проблема ни разу. Для тех кто варнинги не читает есть -Werror. - fk0(23.02.2018 13:58)De_user
- "Негативных" выходов из функции обычно много, а позитивный путь ровно один, до конца тела функции. - fk0(23.02.2018 13:55)De_user
- Есть ещё сложность с высвобождением ресурсов иногда. Тут уж кто как пишет. Мне больше всего нравится при любой деаллокации занулять указатель (хотя чревато «ошибкой лишней сущности», да), а при АВОСТ просто высвобождать всё ненулевое. Николай Коровин(220 знак., 23.02.2018 14:07)
- …и граничные условия документировать предельно чётко. Не «выполняет ориентацию», а «от такой-то точки в такую-то сторону до достижения, а если успели повернуть — то туда-то». Тогда вовремя обнаружится, что она ±оборот закладывает. Николай Коровин(110 знак., 23.02.2018 14:53)De_user
- В C++ это менее заметно из-за смарт-поинтеров и деструкторов. А C вполне можно делать goto error и там ненулевое деаллоцировать, действительно. Можно тупо в лоб, в каждом выходе, писать деаллокацою выше по тексту аллоцированного. Всяко оно влазит fk0(327 знак., 23.02.2018 14:16)
- считаю, что одна функция не должна аллокатить много всего разного. - Mahagam(23.02.2018 14:10)
- Все такие теоретики. А я считаю, что в языке должен быть lexical scoping. Как в lisp, pascal, perl. А пока его нет будут функции и на 10 экранов, которые трудно разбить. - fk0(23.02.2018 14:17)
- Главное, чтобы функция не совмещала лишние предназначения. А пока она делает что-то одно и качественно простое, на количественном уровне она может быть хоть с Талмуд. Хотя это редкость, конечно. Николай Коровин(160 знак., 23.02.2018 14:41)
- Функция вообще ничего ДЕЛАТЬ не должна. Функция должна вычислять и возвращать РЕЗУЛЬТАТ на основе АРГУМЕНТОВ. Побочные эффекты в общем случае -- зло. - fk0(23.02.2018 14:43)
- Зависит от определения понятия «делать» :) Да и вместо половины вычислений обычно измерения, с учётом нашей специфики. - Николай Коровин(23.02.2018 14:54)
- Функция вообще ничего ДЕЛАТЬ не должна. Функция должна вычислять и возвращать РЕЗУЛЬТАТ на основе АРГУМЕНТОВ. Побочные эффекты в общем случае -- зло. - fk0(23.02.2018 14:43)
- Главное, чтобы функция не совмещала лишние предназначения. А пока она делает что-то одно и качественно простое, на количественном уровне она может быть хоть с Талмуд. Хотя это редкость, конечно. Николай Коровин(160 знак., 23.02.2018 14:41)
- Обычно много надо в инициализаторе, а он один и легко полируется :) Вообще это структурно уже напоминает плюсы, конструктор, методы, деструктор :) Только вместо исключений старый добрый результат-отлуп типа «не шмогла». - Николай Коровин(23.02.2018 14:16)
- Все такие теоретики. А я считаю, что в языке должен быть lexical scoping. Как в lisp, pascal, perl. А пока его нет будут функции и на 10 экранов, которые трудно разбить. - fk0(23.02.2018 14:17)
- Есть ещё сложность с высвобождением ресурсов иногда. Тут уж кто как пишет. Мне больше всего нравится при любой деаллокации занулять указатель (хотя чревато «ошибкой лишней сущности», да), а при АВОСТ просто высвобождать всё ненулевое. Николай Коровин(220 знак., 23.02.2018 14:07)