Как стать автором
Обновить
0
0
Сарибжанов Ильдар @Bluz

web-developer

Отправить сообщение
Идея не писать дублирующий код — хороша. Но вот с реализацией через json-конфиг хочется поспорить.

Не прозрачно получилось. Когда придет новый разработчик, надо ему объяснить, что для реализации стандартных КРУД'ов надо в json'чик добавить несколько строк конфига. А если забыть это сделать, то большинство без зазрений совести сделают artisan make:controller, и в общем-то будут правы.

И да, если в вашем случае потребуется некий специфический метод для одной сущности, то всё равно придется добавлять новый контроллер.

На мой взгляд, реализовать некий КРУД-сервис, который будет реализовывать нужные методы, а в основных контроллерах по сущностям инжектить этот сервис, и в методах контроллера вызывать 1 метод сервиса. Такое решение хотя бы у новых людей не будет вызывать оторопь.
Это потому что вы неправильно всё исправили =))

function foo($baz)
{
    if ($baz < 0) {
        return 0;
    } 
    
    if ($baz > 100 && $baz <= 1000) {
        return do_f1();
    } 
    
    if ($baz > 1000 && $baz <= 10000) {
        return  do_f2();
    } 
    
    if ($baz > 10000 && $baz <= 100000) {
        return  do_f3();
    } 
    
    return  do_f4();
}


Вот так мне нравится больше
Ой, про единую точку возврата уже накидали, но хочется ещё подискутировать не эту тему.

Читать вот это
function foo(baz) {
    if (baz < 0) {
        return 0;
    }

    //  ...
    //  do any for result
    return result;
}


Много проще чем это,
function foo(baz) {
    if (baz < 0) {
        result = 0;
    } else {
        //  ...
        //  do any for result
    }

    
    return result;
}


особенно если проверок может быть много
function foo(baz) {
    if (baz < 0) {
        result = 0;
        
    } else if(baz > 100 && baz <= 1000) {
        result = do_f1();
        
    } else if (baz > 1000 && baz <= 10000) {
        result = do_f2();
    
    } else if (baz > 10000 && baz <= 100000) {
        result = do_f3();
    
    } else{
        result = do_f4();
    }
    
    return result;
}


Эта гирлянда вообще вызывает ассоциации с ктулху.

А уж если как-то так получается, что иерархия if/else'ов уходит вглубь на пару уровней, то совсем тушите свет, потому что третьему уровню контекст теряется: кто и зачем туда попал?
А вариант использовать препроцессоры для CSS?

В SCSS я использовал такие варианты:

.block-name {
    &__element-1 {}

    &__element-2 {
        &--modification{}
    }
}


В html всё понятно, что придется печатать, хотя не встречал проблем с этим.
На сколько я знаю, ЕМНИП, если режут справа внизу, то аппендицит удаляют при любом раскладе, даже если ничего не нашли. Так делают из соображений, чтобы в следующий раз, если в первый раз не вырезали и если реально будет аппендицит, то шрам на пузе не смутил врачей.

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность