
Tim
08.08.2018
12:50:21
я считаю, что если есть внутренняя логика (исключая вызовы других классов и т.д.), которая не может зависеть только от полей этого класса, то этот класс не атомарный

Dan
08.08.2018
12:50:23
Атомарной можно считать чистую абстрактную функцию

Tim
08.08.2018
12:50:59
то есть в атомарном классе вся внутренняя логика зависит только от его полей
ты согласен с этим утверждением?

Google

Tim
08.08.2018
12:51:17
я на самом деле сам в нем на 100% не уверен, но всё же
при необходимости в рантайме можно добавлять поля, типа кэшинг тот же
(можно их менять, и тогда скорее всего будет пиздец полный. типа симуляции вызовов методов с параметрами – перед вызовом меняешь поле на другое)

Максим
08.08.2018
12:58:44

Anton
08.08.2018
12:59:12
ну, я его использую конечно, куда без него в руби

Максим
08.08.2018
12:59:23

Anton
08.08.2018
12:59:25
но не в бизнес логике

Максим
08.08.2018
12:59:34
просто процедурно всё делаешь или как?

Anton
08.08.2018
12:59:52
ну, я функциональные объекты использую и все
т.е. по сути у меня все через функции в функциях

Google

Anton
08.08.2018
13:00:08
и ооп в персистенс уровне и энтити

skynet
08.08.2018
13:17:27
proc / lambda
Так чтоли?)

Anton
08.08.2018
13:22:42
ну, можно просто
class Something
def call(payload)
end
end

Tim
08.08.2018
13:24:11
а в чем профит

Максим
08.08.2018
13:24:33

Anton
08.08.2018
13:24:39
в том, что изолированные объекты, которые по сути функции

Максим
08.08.2018
13:24:49
все сервисы у меня типа просто класс который можно каллнуть
и они что то делают
остальное всё приватное

Anton
08.08.2018
13:25:12
они без мутирующего стейта, от этого в них можно прокинуть зависимости + писать процедурный код в логике, что легче понимать чем паттерн на паттерне

Tim
08.08.2018
13:25:18
ну сервисы да, #perform

Anton
08.08.2018
13:25:29
ну и в тестах вместо объекта можно прок/лямбду прокинуть можно

Tim
08.08.2018
13:26:01

Максим
08.08.2018
13:26:15
я вот почему то решил что у меня джобы это перформ

Tim
08.08.2018
13:26:16
ну и я сам склоняюсь к тому что иммутабельное лучше

Максим
08.08.2018
13:26:18
а сервисы это колл

Tim
08.08.2018
13:26:25
но не всегда возможное

Anton
08.08.2018
13:30:15

Google

Alexander
08.08.2018
13:31:16

Tim
08.08.2018
13:31:36

Anton
08.08.2018
13:31:40
Из за многопоточности?
не совсем, у меня загружаются все инстансы сервисов на старте приложения, а потом они переиспользуются из раза в раз

Tim
08.08.2018
13:32:19
ооп, вдохновлённое фп?

Anton
08.08.2018
13:32:23

Dmitriy
08.08.2018
13:32:23

Максим
08.08.2018
13:32:27
да

Anton
08.08.2018
13:32:30

Максим
08.08.2018
13:32:30
это реал не ооп

Anton
08.08.2018
13:33:05
да вообще сложно сказать что где вдохновлялось, проблема в том, что чистый ооп не работает и чистый фп тоже, приходится миксовать

Максим
08.08.2018
13:33:17
вообще нравится подход к ооп как у бугаенко или как его там

Tim
08.08.2018
13:33:23
>чистый ооп не работает
не верю

Максим
08.08.2018
13:33:24
читали его статьи?

Tim
08.08.2018
13:33:26
конечно

Anton
08.08.2018
13:33:52

Tim
08.08.2018
13:33:53
ну в общем именно он поменял мое мышление об ооп и всем таком
открыл глаза так сказатб

Anton
08.08.2018
13:34:02
поэтому я и сказал, что жду когда ты разочаруешься

Google

Tim
08.08.2018
13:34:15
)

Anton
08.08.2018
13:34:23

Максим
08.08.2018
13:35:07
типа блин иногда читаешь его
и вроед те вещи к которым привык он обсирает
и ты такой типа
блин а ведь он прав
хелперы это не ооп
какого хуя

Tim
08.08.2018
13:35:30
++

Admin
ERROR: S client not available

Anton
08.08.2018
13:35:36

Tim
08.08.2018
13:35:43
геттеры и сеттеры инкапсуляцию нарушают

Максим
08.08.2018
13:35:54
пиздец
и место женщины на кухне!

Tim
08.08.2018
13:36:07
))

Максим
08.08.2018
13:36:12
ну это шутка конечно же он не это совсем имел ввиду

Tim
08.08.2018
13:36:28
я уже не помню чтобы он такое говорил

rekero
08.08.2018
13:36:51

Dmitriy
08.08.2018
13:37:04

Максим
08.08.2018
13:37:09
собсно там я с ним и познакомился

Google

rekero
08.08.2018
13:37:15
вяло говном поперекидывались несколько дней

Anton
08.08.2018
13:37:23
по сути, это просто кеширование, что бы из раза в раз не делать объект
от сюда проблема мутабельности, но при этом я еще ни разу не видел, что бы это мешало

Dmitry
08.08.2018
13:38:11
+++

Anton
08.08.2018
13:38:13
зато давно не видел проблем в духе “бля, у меня тут поменялось что-то но я хз где и что"

Roman
08.08.2018
13:38:41
или "у меня тут в дев все норм, а в проде почемуто перетирается"

Anton
08.08.2018
13:38:54
не, такого тоже нет
ну короче, сложнее писать код, но проблем меньше
+ эту ошибку дурака не обойти ибо все просто развалится

Dmitriy
08.08.2018
13:40:27
мне кажется, нужно постараться, чтобы стейт переписать. Если конечно переменные класса не использовать

Alexander
08.08.2018
13:40:43

Anton
08.08.2018
13:40:49
вот все зависимости
https://github.com/davydovanton/cookie_box/blob/master/lib/decks/operations/create.rb#L8
репозиторий для работы с данными + слаг генератор
который что-то там делает (не важно что, главное интерфейс и результат)

Максим
08.08.2018
13:41:31
если честно так и не понял что такое слаг

Alexander
08.08.2018
13:43:06

Anton
08.08.2018
13:43:23
если что-то не то идет, то все упадет на момент старта

Максим
08.08.2018
13:44:23
ну то что это хьюман ридабл название чего то