Size: a a a

Saint P Ruby Community

2020 May 15

IM

Igor Morozov in Saint P Ruby Community
Dmitry
а почему тебя смущает present?? в плане как сам метод или то, что defensive programming?
оба пункта смущают, на самом деле.

present? чаще не нужен, чем нужен. можно на его код посмотреть.

а вот в случаях, когда он нужен, мы можем с уверенностью говорить, что с данными есть проблема.
источник

IM

Igor Morozov in Saint P Ruby Community
ну просто present? это !blank?

blank? на строках это дичайшая регулярка, которая проверяет на вайтспейсы. очевидный мусор
на Enumerable это алиас для empty?
на объектах это алиас для nil?

это точно то, что люди имеют ввиду, когда пишут blank? и present?
источник

IM

Igor Morozov in Saint P Ruby Community
я понимаю, почему это надо было использовать раньше, особенно в контексте приложений, работающих по multipart/form-data. когда нет нормальных инструментов для приведений типов, и вообще типов в протоколе нет.

но теперь-то это совсем не нужно. а люди пишут
источник

D

Dmitry in Saint P Ruby Community
ну в active_support много ненужной фигни, это да
источник

D

Dmitry in Saint P Ruby Community
но не могу сказать, что меня это сильно расстраивает)
источник

D

Dmitry in Saint P Ruby Community
если это приводит к каким-то неприятным неожиданностями, это фигово, а так - ну натащили всякой фигни и пока не разгрузили
источник

D

Dmitry in Saint P Ruby Community
Igor Morozov
нет, конечно. но он не даёт даже на тот минимум, который для меня важен
а что тебе не хватает в рельсах в плане организации кода?
источник

D

Dmitry in Saint P Ruby Community
меня вот плане идеалогии смущает, что там до сих пор нет папки для сервис объектов из коробки
источник

IM

Igor Morozov in Saint P Ruby Community
да тут проще сказать, что они ценного дают

говорят, как ходить в базу
говорят, как сетапить зависимости
говорят, как мигрировать базу
как настраивать HTTP слой
как настраивать view слой с шаблончиками
генераторы всяких штук
экосистему, чтобы взять гем и использовать его, не отходя от задумки автора.

на том в общем-то всё из классного

доменная логика? пихай в модели
валидации хттп параметров? да суй в модели
источник

D

Dmitry in Saint P Ruby Community
Igor Morozov
но это мелочь, на самом деле. в целом, фреймворк не даёт ответы на многие вопросы по поводу организации кода

энджины вообще выглядят как что-то для избранных. а ведь вещь очень хорошая
engine мне кажется в рельсах как-то коряво сделан. не могу сформулировать почему, но полноценной и нормальной изоляции как в django это сделано нету
источник

IM

Igor Morozov in Saint P Ruby Community
про предметную область — в моделях, ок.

а как сделать, чтоб модели не становились огромными со временем?
источник

D

Dmitry in Saint P Ruby Community
ну да, помню еще лет 6-7 назад говорили fat models, thin controllers)
источник

D

Dmitry in Saint P Ruby Community
точнее, до сих в пор в куче проектов модели по сотни строк
источник

AD

Anton Davydov in Saint P Ruby Community
Dmitry
меня вот плане идеалогии смущает, что там до сих пор нет папки для сервис объектов из коробки
так оно не решит твоих проблем, ну будет папка свалка, что из этого получится дельного?
источник

D

Dmitry in Saint P Ruby Community
Anton Davydov
так оно не решит твоих проблем, ну будет папка свалка, что из этого получится дельного?
каких проблем? в любом случае, идеалогически это подталкивает к separation of concerns, srp
источник

P

Pavel in Saint P Ruby Community
источник

AD

Anton Davydov in Saint P Ruby Community
я к тому, что вот у тебя из коробки появится условный active_service, будет аналог какой-нибудь драй транзакции или интерактора, это не решит ровным счетом никаких проблем как и то, что сейчас люди пихают в папку services свою логику
источник

AD

Anton Davydov in Saint P Ruby Community
это не решит проблем зависимостей между бизнес логикой, не решит проблемы кросс вызовов, не решит проблемы того, что люди пихают вообще все что угодно в сервисы и не решит проблемы изоляции областей (я бы сказал про домены, но думаю плохое слово тут). можно сказать, что энджины решают эту проблему, но я хз, мне кажется, что там те же самые проблемы будут
источник

NB

Nikita Bulai in Saint P Ruby Community
Зависимость между бизнес логикой... что ты тут имеешь ввиду? 🤔 бизнес логика = бизнес правила, они вроде зачастую зависимы между собой.. или мы о разном ..
источник

D

Dmitry in Saint P Ruby Community
Anton Davydov
это не решит проблем зависимостей между бизнес логикой, не решит проблемы кросс вызовов, не решит проблемы того, что люди пихают вообще все что угодно в сервисы и не решит проблемы изоляции областей (я бы сказал про домены, но думаю плохое слово тут). можно сказать, что энджины решают эту проблему, но я хз, мне кажется, что там те же самые проблемы будут
на каком уровне ты имеешь в виду изоляцию?
источник