@oop_ru

Страница 332 из 785
Anton
13.09.2017
12:24:23
всех с праздником!

Artem
13.09.2017
13:05:12
может тут есть кто активно юзает cqrs + es?
пилил скорее crs (без query) + es. проект на 4 месяца в соло. прокладка для небольшого биллинга - там было удобно. по цене не дорого, но не было версионирования команд и боли с bc.

даже можно сказать удобно

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

Google
Artem
13.09.2017
13:09:18
а, сорри, тут про ООП чат :)

Aleh
13.09.2017
13:30:32
И снова ходил в отпуск, и опять вернулся из него, с небольшим сообщением про парадигмы программирования. Если попытаться ответить на вопрос, какую из парадигм или идей (прочитанных, услышанных, изученных) я нахожу максимально полезной - не в теории, а на практике, то я ответил бы неожиданно. Это будет не ООП, не ФП, и не другие П, ДДД и ТДД. Это будет контрактно-ориентированное программирование. Положительный эффект от него заметен настолько явно, что в своей работе мы закрепили это даже в соглашениях о кодировании: - все без исключения публичные функции и методы имеют неотключаемые в релизе проверки входных аргументов и выходных результатов - все остальные функции и методы могут иметь отключаемые или неотключаемые в релизе проверки входных аргументов и возвращаемых значений - любой код может иметь отключаемые в релизе проверки в середине логики. Судя по количеству дефектов в джире, это реально работает, без регистрации и СМС. Часто отпадает даже необходимость в тестах и отладчике.

контрактно-ориентированное программирование - костыль для тех, у кого нет нормальной системы типов?

Alexandr
13.09.2017
13:33:14
контракты немножко о большем, нежели просто о типах, так-то

Aleh
13.09.2017
13:36:56
ну это вопрос насколько хорошо ваша система типов позволяет описывать тройки хоара?

Sergey
13.09.2017
13:38:19
я не знаю кто такой этот "архитектор говорит" но формулировка заставляет меня усомниться в том что именно подразумевает автор

как минимум смущает что DbC он называет "парадигмой" и зачем-то туда добавляет всякие там ddd и tdd

например всякие Мэты Прайсы будут говорить что "наиболее эффективна комбинация из ATDD + TDD"

а Кент Бэк будет биться с Мэйерсом за tdd vs dbc просто потому что люди то разные и подходы они под себя делали с их мироощущениями и т.д.

https://www.youtube.com/watch?v=KtHQGs3zFAM

вот например еще один спор на тему tdd vs dbc

как по мне когда кто-то говорит "мы пробовали юзать X и это работает" то, если конечно к этому высказыванию не добавлена исчерпывающая информация о контексте (какие проекты, какая команда, что еще пробовали, насколько плотно) то смысла в этом высказывании нет

Mykola
13.09.2017
14:16:10
всем привет!

Google
Mykola
13.09.2017
14:16:56
как оно? есть что нового интересного?

@fes0r , когда в Киев?

Sergey
13.09.2017
14:19:03
давно тебя не было)

Mykola
13.09.2017
14:19:34
я был

я почитываю)

Sergey
13.09.2017
14:22:05
@fes0r , когда в Киев?
ну пока не планировал, @Enleur не зовет же)

Sergey
13.09.2017
14:22:45
так приезжай чо) только пока ивентов не намечается, разве что php friends небольшой митапчик

Sergey
13.09.2017
14:23:45
как оно? есть что нового интересного?
как ты относишься к вопросу CQRS + ES? Особенно в контексте стоимости.

для каких проектов ок, для каких не стоит, может есть какие-то мысли

Anton
13.09.2017
14:28:37
CQRS хорошо всегда. На стоимость разработки влияет слабо, а плюсов много. ES только если с DDD вкомплекте. Соответственно дорого и далеко не всегда нужно. Все личное имхо.

Anton
13.09.2017
14:29:16
Дорого это про DDD

Sergey
13.09.2017
14:29:18
и понятно что большинство приложений по сложности не далеко от бложиков ушли

Дорого это про DDD
но почему ты считаешь что ddd это дорого?)

может быть DDD нужно тогда когда "дорого"?)

то есть вопрос масштабов

Anton
13.09.2017
14:29:55
Вот да, скорее даже так

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

Sergey
13.09.2017
14:32:04
ну это понятно, и есть всякие ивент сторминги и прочие штуки

Google
Sergey
13.09.2017
14:32:28
с другой стороны - ES дает тебе такую предсказуемость разработки которую не дает никакой другой подход

ну то есть тебе надо что-то добавить - делаешь проекцию данных и вуаля

проще исследовать домен

и на определенных масштабах это становится финансово выгодно

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

Anton
13.09.2017
14:33:35
Серег, ты знаешь, я сам за CQRS + ES обеими руками, но для этого нужен соответствующий проект коих к сожалению не много

Mykola
13.09.2017
14:34:12
кароч... с cqrs оно как получается... так же как и с ддд

так же как и с блокчейном)

Anton
13.09.2017
14:34:21
неа

Mykola
13.09.2017
14:34:27
типа можно пользовать

но можно и не пользовать

Anton
13.09.2017
14:34:33
CQRS ок и реально круто

Mykola
13.09.2017
14:34:43
канеш круто!

Sergey
13.09.2017
14:34:45
CQRS ок и реально круто
а какой смысл в CQRS без ES?

Mykola
13.09.2017
14:34:46
как и ддд

Anton
13.09.2017
14:34:57
А вот ES (ну и DDD) далеко не всегда

Mykola
13.09.2017
14:35:02
да понятно, что с ES

Sergey
13.09.2017
14:35:05
так же как и с блокчейном)
ну че смарт контракты это весело

Mykola
13.09.2017
14:35:09
в разрыве не круто)

да все весело

Google
Mykola
13.09.2017
14:35:21
хорошие штуки

но вот нужны ли они?

хз хз

я все больше сталкиваюсь с другими вопросами

Sergey
13.09.2017
14:35:54
А вот ES (ну и DDD) далеко не всегда
а как без ES делать CQRS? как у тебя тогда read model выглядит? или ты о том варианте где у тебя write model генерит ивенты но мы тупо храним стэйт и есть read model которую можно склепать из ивентов?

Anton
13.09.2017
14:36:13
Ага

Mykola
13.09.2017
14:36:13
типа что выгоднее: костыль прямо сейчас, или идеальное решение потом никогда? :)

Anton
13.09.2017
14:36:58
Была мысля (помойму от Udi Dahan) что CQRS нужен тогда когда большая часть агрегатов - Saga.

Sergey
13.09.2017
14:37:06
типа что выгоднее: костыль прямо сейчас, или идеальное решение потом никогда? :)
ну мне казалось что ты уже должен был этот этап пройти и придти к единственному разумному решению - кастыль прямо сейчас ибо идеальных решений нет

Mykola
13.09.2017
14:37:40
я даже дальше пошел

Dmitriy
13.09.2017
14:37:53
лучше говно сделать сейчас чем потом

Mykola
13.09.2017
14:37:55
я теперь думаю, что и костыль не нужен)

Anton
13.09.2017
14:38:14
Код шредингера!

Sergey
13.09.2017
14:38:25
Mykola
13.09.2017
14:38:49
причина костыля в том, что ты что-то сделал слишком круто когда-то давно, и теперь оно не влезает в требования заказчика

которые не столь круты

:)

живой пример: делаем сесурити у проекта, чтоб ни одна вош не пролезла

Sergey
13.09.2017
14:39:29
причина костыля в том, что ты что-то сделал слишком круто когда-то давно, и теперь оно не влезает в требования заказчика
предлагаешь делать более гибкие решения и делать меньше слабых предположений?)

Google
Mykola
13.09.2017
14:39:34
полгода делаем

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

Sergey
13.09.2017
14:40:31
как же так ты не подумал про бэкдоры?

Mykola
13.09.2017
14:40:34
и ты такой смотришь, а твоя система сесурити настолько хороша, что дырочку ну никак не запилить

приходится лепить костыль

перехватывать сесурити

Sergey
13.09.2017
14:41:18
ну я слабо понимаю о чем ты...

Mykola
13.09.2017
14:41:36
ты не знаешь что такое сесурити? ?

security по нашему

Sergey
13.09.2017
14:41:50
я знаю что такое сесурити, я плохо понимаю в контексте апворка как оно там внутри

и что вы делали

и зачем вам дырочка

Mykola
13.09.2017
14:42:05
я не имею ввиду апворк

в апворке все гораздо сложнее

Sergey
13.09.2017
14:42:27
ну ок, а зачем дырочка то?

Mykola
13.09.2017
14:42:29
даже влазить в подробности не хочу

ну как... бывает, что у клиента есть партнер, который делает какие-то нестандартные запросы там

и он не умеет в ориджины и другие хедеры

(потому шо легаси у него на колдфюжине написано, например)

Sergey
13.09.2017
14:43:51
сделать адаптер?)

Страница 332 из 785