Coldfusion, как и большинство языков, предоставляет множество способов выполнить одно и то же.Задача программиста состоит в том, чтобы выбрать правильный для ситуации.Конечно, «правильный» может иметь много толкований, но я бы сказал, что правильный путь ясен, лаконичен и масштабируем.
В этом случае нет реальных различий в производительности или «строках кода».Однако использование возврата для совершенно другой ветви кода не совсем понятно для меня, но использование стиля раннего возврата для выхода из функции из-за недопустимых условий (опять же IMO) более понятно.Рассмотрим следующие случаи:
if (not isdefined("url.param1")) {
return;
}
if (not len(url.param1)) {
return;
}
if (not refind("[0-9]+", url.param1)) {
return;
}
doSomethingToValid(url.param1);
против
if (isdefined("url.param1")) {
if (len(url.param1)) {
if (refind("[0-9]+", url.param1)) {
doSomethingToValid(url.param1);
}
}
}
В первом случае я вижу все проверки, которые будут применены в списке, и могу получить все изпуть вперед, который позволяет мне сосредоточиться на реальной сути рутины.Во втором случае я похоронил существенную часть процедуры глубоко во вложенном разделе ifs, и когда мне нужно добавить еще одно правило для проверки, структура кода просто усложняется.