Size: a a a

Software Design/Architecture/Zen

2020 December 07

AD

Andrey Dembitskyi in Software Design/Architecture/Zen
invariance
Всем привет. Возможно, будет оффтоп (: Уверен, многие тут знают про подход "early return", когда вместо кучи вложенных условий, ты делаешь flat-список условий и в каждом делаешь return (таким образом, каждое верхнее условие перекрывает все последующие). Это удобный хак, увеличивающий читаемость кода (в большинстве случаев).

Так вот, у меня возникла ситуация, когда я не уверен, какой из вариантов выбрать. Первый вариант выглядит примерно так:
if (cond) {
  if (cond) {
     ...
  } else {
     ...
  }
} else {
  if (cond) {
     ...
     if (cond) {
        ...
     }
  }
}

$em->flush();
return $response;

Этот вариант хреново читается, тут много условий.
Но, в flat варианте тоже есть недостаток: мне в каждом блоке условия нужно сделать не только return, но и предварительно flush, чтобы записать лог запроса в БД. В варианте выше flush нужно делать только в конце.

И вот я не знаю, какой вариант правильнее? Может есть еще какие-то варианты, как не убивать читаемость кучей вложенных кондишенов или повторяющимися флашами в каждом блоке?
вынести в отдельный метод
источник

AL

Anton Lakotka in Software Design/Architecture/Zen
ну и зависит от языка
источник

AL

Anton Lakotka in Software Design/Architecture/Zen
а хотя там $
источник

AL

Anton Lakotka in Software Design/Architecture/Zen
тогда, да. отдельный метод лучше всего
источник

i

invariance in Software Design/Architecture/Zen
Хммм. А можно в анонимную функцию засунуть
источник

i

invariance in Software Design/Architecture/Zen
Спасибо за мысль
источник

AL

Anton Lakotka in Software Design/Architecture/Zen
можно, если будет смотрется
источник

С

Семён in Software Design/Architecture/Zen
Коллеги, встал вопрос на чем реализовать крупный веб-проект. Есть вариант на Python, но есть переживания за то, что будет тупить при большом кол-ве активных юзеров(в 1000 в сутки активных).

Буду рад советам.
источник

RL

Romka Los in Software Design/Architecture/Zen
Семён
Коллеги, встал вопрос на чем реализовать крупный веб-проект. Есть вариант на Python, но есть переживания за то, что будет тупить при большом кол-ве активных юзеров(в 1000 в сутки активных).

Буду рад советам.
1000 активных в сутки - это не хайлоад.
источник

Kd

Konstantin dmz9 in Software Design/Architecture/Zen
такое и на пхп можно сделать чо уж там
источник

RL

Romka Los in Software Design/Architecture/Zen
Konstantin dmz9
такое и на пхп можно сделать чо уж там
+1
источник

С

Семён in Software Design/Architecture/Zen
Romka Los
1000 активных в сутки - это не хайлоад.
Там именно активные, постоянно действия осуществляются.
источник

С

Семён in Software Design/Architecture/Zen
Подобие биржи.
источник

RL

Romka Los in Software Design/Architecture/Zen
Семён
Там именно активные, постоянно действия осуществляются.
rps какой?
источник

С

Семён in Software Design/Architecture/Zen
Romka Los
rps какой?
Честно, не знаю.
Я в роли project manager.
источник

AC

Artur Chobanyan in Software Design/Architecture/Zen
Семён
Там именно активные, постоянно действия осуществляются.
Не важно сколько активных в сутки, важно сколько одновременно ?
источник

С

Семён in Software Design/Architecture/Zen
Если не пхп, то какой ещё вариант?
источник

AC

Artur Chobanyan in Software Design/Architecture/Zen
+ и контекст проекта важен
источник

E

Egor in Software Design/Architecture/Zen
Семён
Честно, не знаю.
Я в роли project manager.
почему тогда вы принимаете решение, а не тех лид?
источник

С

Семён in Software Design/Architecture/Zen
Egor
почему тогда вы принимаете решение, а не тех лид?
Тех Лида пока что нет. Я пока что просчитываю экономику проекта.
источник