
Sergey
26.05.2018
10:50:01

Denis
26.05.2018
10:51:17
велосипеды
зато свои)
скучно

Google

Sergey
26.05.2018
10:54:11
зато свои)
хотел родить шутку в стиле яжматери но чет не вышло....

Hell
26.05.2018
15:47:01
Как обьяснить июню, что switch case это плохо?

Sergey
26.05.2018
15:50:34

Dmitriy
26.05.2018
15:53:51
свитч добавляет 2 (!!!) уровня вложенности. Отсюда ухудшение читаемости, основная логика функции или метода должна быть на первом уровне всегда. Это удобнее
*на первом уровне после сигнатуры

Hell
26.05.2018
15:55:03

Dmitriy
26.05.2018
15:55:20
еще необязательность брейков - это потенциальный баг, причем серьезный.

Sergey
26.05.2018
15:55:39

Aleh
26.05.2018
15:55:51

Sergey
26.05.2018
15:55:54

Dmitriy
26.05.2018
15:56:03

Sergey
26.05.2018
15:56:04
как?)
ну он как минимум скажет что нету бряк)

Aleh
26.05.2018
15:56:12
так это может быть фичей

Google

Dmitriy
26.05.2018
15:56:19
вот-вот

Hell
26.05.2018
15:56:24

Sergey
26.05.2018
15:57:29
но да, если есть возможность заменить на chain or responsibilities/strategy то стоит заменить. Но иногда это не дает профита никакого

Hell
26.05.2018
16:00:05

Sergey
26.05.2018
16:00:20

Aleh
26.05.2018
16:00:24

Hell
26.05.2018
16:00:42
э...

Sergey
26.05.2018
16:00:54
не концентрируй внимание на свитче а то он подумает что проблема именно в этом
и продолжит говнокодить но просто теперь в более маленьких файлах

Hell
26.05.2018
16:01:39
вы вобще блог автора книги по DI читали?

Sergey
26.05.2018
16:02:37

Aleh
26.05.2018
16:02:45
)))

Denis
26.05.2018
16:02:53
А смысл банить?)

Hell
26.05.2018
16:03:33
В смысле? Я все сделал, как описано в его блоге

Sergey
26.05.2018
16:03:48

Hell
26.05.2018
16:04:26

Sergey
26.05.2018
16:04:34

Google

Sergey
26.05.2018
16:05:10

Hell
26.05.2018
16:08:18
и причем здесь switch?)
Итак, у меня была проблема: изначально был выбран switch case который потом разрастался и превращал метод клааса и сам класс в Бога

Aleh
26.05.2018
16:09:22
убери разрастание, если надо постоянно что-то добавлять, то воспользуйся OCP

Hell
26.05.2018
16:15:15
проблема не в switch case, а в разрастался
после проведения рефакторинга в классы, имплементирующие единый интерфейс и у которых появятся зависимости, ты все еще будешь каждый класс инстанцировать в своем case или все таки сообразишь, что это отображение "ключ case -> интанц класса"

Aleh
26.05.2018
16:15:40
и?

Hell
26.05.2018
16:17:08
Зачем нужен здесь swich case, если есть словарь?

Sergey
26.05.2018
16:17:43

Hell
26.05.2018
16:19:14

Sergey
26.05.2018
16:21:00
не знаю, напиши лексер какой для разнообразия
или реализацию регулярок

Sergey
26.05.2018
16:23:33
короч возвращаясь в вопросу - switch/case не являются плохим решением само по себе. Но если ты возьмешь инструмент и воспользуешься им не по назначению - да получится херня
можешь подумать например чем switch от dictionary отличается в плане того как оно в рантайме работает, как оно там по памяти, что быстрее и т.д.

Hell
26.05.2018
16:24:11

Sergey
26.05.2018
16:24:23

Hell
26.05.2018
16:25:59

Aleh
26.05.2018
16:26:27
каких таких?
задачи бывают разные, именно поэтому есть разные инструменты и разные конструкции, внезапно)

Sergey
26.05.2018
16:27:04

Google

Sergey
26.05.2018
16:27:55
хотя я просто посочувствую твоему коллеге.... учить он там кого-то собрался

Hell
26.05.2018
16:31:46

Sergey
26.05.2018
16:32:14
и потом сравни плюсы и минусы
ну то есть ты же можешь сформулировать что тебе этот самый clean code дает?
можешь человеку просто дать почитать чего по OCP или тот же clean code Мартина

Hell
26.05.2018
16:34:32

Admin
ERROR: S client not available

Sergey
26.05.2018
16:34:48
навигация по коду это не основное ради чего все это делается

Hell
26.05.2018
16:35:12
навигация по классам гораздо лучше чем по case-ам

Sergey
26.05.2018
16:38:10
ну ок

Hell
27.05.2018
07:51:51
ну ок
Какие еще буду приемущества, если вместо switch case будет словарь

militska
27.05.2018
07:54:45
разные варианты реакций? по одному вараинту дополнительно письмо отправить, по другому файлы удалить, по третьему ещё пару объектов создать

Дмитрий
27.05.2018
09:10:40

Sheldhur
28.05.2018
05:35:55
ку
кто почту массово рассылал, по сколько писем безболезненно за раз можно отправлять?
чтобы потом никаких проблем со спамом не словить

Dmitriy
28.05.2018
05:42:18
все зависит от настроек клиентских почтовиков и твоего

Google

Sheldhur
28.05.2018
05:46:50
каких настроек?

Dmitriy
28.05.2018
05:48:55
от многих многих многих настроек, от fail2ban до черных или белых списков спамлистов

Sheldhur
28.05.2018
05:51:02
спасибо капитан

Dmitriy
28.05.2018
05:56:07
обращайтесь еще

Andrew
28.05.2018
07:21:59
Добырй день
Подскажите пожалуйста, для чего DomainEvent в DDD
Вот мы имеем все действия которые были совершены над моделью, они записаны. Дальше что? Что это дает?
Как, где, когда и зачем это можно или нужно использовать?
Как понять какой евент диспатчер использовать Symfony или свой кастомный DomainEventDispatcher?
Как лучше получать сущность, каждый раз собирая ее из ивентов или из БД (Redis)?
Кешировать DomainEvents?

Aleh
28.05.2018
07:39:43

Andrew
28.05.2018
07:39:51
Ага, есть такое

Aleh
28.05.2018
07:39:58

Andrew
28.05.2018
07:40:35
Какой диспатчер? Куда и зачем посылать?

Aleh
28.05.2018
07:41:04

Andrew
28.05.2018
07:41:26
Оба)
DomainEventDispatcher и Symfony Event Disp

Aleh
28.05.2018
07:42:00
Ивенты помогают снизить связи между частями и помогают начать мыслить про цикл жизни сущности с точки зрения того, что с ней происходит

Andrew
28.05.2018
07:42:01
Когда какой-то ексепшен вылетяет, используем второй