Ролик в студию. Ты просто мастер объяснять. Постоянно смотрю даже то, что знаю!😂
@CutCodeRu
3 ай бұрын
Благодарю)
@Daniil260620000
3 ай бұрын
Ждём ролик про тесты!)
@CutCodeRu
3 ай бұрын
🫡
@PaBvvaH
3 ай бұрын
Очень прошу запиши такой ролик! только что
@CutCodeRu
2 ай бұрын
👌
@Моргенштерн-о4ь
3 ай бұрын
Полписался. Да сними пожалуйста развернутый ролик о TDD
@PunctRu
3 ай бұрын
3:03 имеют ли смысл эти интерфейсы в отрыве от соответствующего модуля? 4:15 "взаимодействуем исключительно с помощью интерфейса и публичных методов что нам доступны" 8:17 А как же open/closed? Мы оставляем публичный метод которым нельзя пользоваться и старший разраб должен это контролировать?
@webdev2030
3 ай бұрын
Как полюбить писать тесты?
@CutCodeRu
3 ай бұрын
расскажу)
@aspiex
3 ай бұрын
Ждем TDD
@CutCodeRu
2 ай бұрын
👀
@friendvane7612
3 ай бұрын
Классный материал, будут интересны и другие видое в этом направлении
@ЕвгенийРыбкин-ф6м
3 ай бұрын
Спасибо за ролик! Подход с коммуникаторами очень похож на подход API + Adapter в чистой (слоеной) архитектуре Было бы очень интересно посмотреть пример проекта с изолированными модулями
@alexanderk8992
3 ай бұрын
странный подход, но чем-то интересный. а почему в данном случае интерфейс отделен (namespace) от реализации? в чем преимущество?
@strandedinthe0737
2 ай бұрын
в том что реализации может быть много
@alexanderk8992
2 ай бұрын
@@strandedinthe0737 это точно преимущество?
@strandedinthe0737
2 ай бұрын
@@alexanderk8992 в нормальном патерне это называется порты и адаптеры
@alexanderk8992
2 ай бұрын
@@strandedinthe0737 я про неймспейсы.
@EscapefromWunderland-jz2yc
3 ай бұрын
Даешь приложение в рамках концепкии!
@CutCodeRu
2 ай бұрын
окай
@slikeiv4477
3 ай бұрын
Выглядит класно, но боюсь в комуникаторе будет срачь если приложение долгоживущие. Нужно делать коммунткаторы как можно тонкими
@CutCodeRu
3 ай бұрын
да проектировать нужно на старте, и модули по хорошему должны быть тонкими, но и как я говорил в начале ролика - для не сложных проектов
@pavlobezdvernyi9348
3 ай бұрын
если долгоживущие, то можно просто РПЦ а если РПЦ то в прото файлах ты и так описываешь интерфейс сервиса
@CutCodeRu
3 ай бұрын
@@pavlobezdvernyi9348 угу, specification first
@Sosed00
2 ай бұрын
В комментариях вы говорите, что выбирая Laravel, надо быть готовым к компромисам. Отсюда делаю выводы, что сложные проекты делать на Laravel нецелесообразно. Тогда зачем выдумывать велосипед, если уже есть архитектура от разработчиков фреймворка? Как минимум, не будет страданий при поддержке. Наверное можно сделать велосипед в пакете. Туда никто не полезет.
@asxenonify
2 ай бұрын
Странный подход, не ясно зачем крутить эти интерфейсы, как по мне лишняя абстракция. Если модуль не доступен, то и интерфейсы работать не будут, а если доступен модуль, то смысл городить этот огород. Модульная система хорошо реализована в Yii2, тут по этому ролику понять ценность предлагаемого автором невозможно.
@muhammadumarsotvoldiev8768
3 ай бұрын
Очень прошу запиши такой ролик!
@CutCodeRu
3 ай бұрын
🌟
@silentage6310
3 ай бұрын
имхо, неудачное название комуникатор. может быть Connector, Bridge, или даже просто ...Module
@CutCodeRu
3 ай бұрын
Ну это уже все есть) хочется по свежее
@silentage6310
3 ай бұрын
@@CutCodeRu у меня коммуникатор только с телефонами ассоциируется.
6:08 - интересно, но мне кажется это сложнее, чем приучить себя регулярно делать гимнастику. Особенно когда на работе есть живой тестировщик
@thisfil
3 ай бұрын
Выглядит как-будто бы просто вы одним доменом завязываетесь на фасад другого домена
@alexplishkin5811
3 ай бұрын
Отличное видео. Я тоже так делаю. Но вместо Communicators называю просто папку Contracts.
@CutCodeRu
3 ай бұрын
Хехе
@InfoPolza
3 ай бұрын
По больше всего этого
@CutCodeRu
3 ай бұрын
ок!
@ЮрийПлохов-к2в
3 ай бұрын
Ждем следующие видео на эту тему. С примерами и так далее
@CutCodeRu
3 ай бұрын
сделаем!
@kind1y
3 ай бұрын
Очень прошу, запиши такой ролик!
@CutCodeRu
2 ай бұрын
ок!
@ИльяСорокин-д9ц
2 ай бұрын
Я к такому же пришёл в итоге, только да, как и ниже кто-то писал у меня всё приложение зависит от папки с контрактами. И обмазал это php insight + deptrac Но тут стучится проблема Eloquent. Чтобы изолировать модели базы данных от слоя управления мы их очевидно вешаем на интерфейсы А так как в пыхе нет интерфейсов на публичные свойства, приходится либо костылями (контракт магического геттера + phpDoc), либо гет методами лечить проблему. В первом случае мы открываем знания о то что можно записать в поле модели в слое управления, что запрещено архитектурно Во втором случае мы ломаем архитектурную концепцию eloquent и начинаем делать чуждые ей геттеры Плюс в системе с единой моделью базы данных очень быстро ключевые модели обрастут деталями других модулей То есть мы сразу ставим правило что модели должны быть анемичными(иначе теряется смысл модульности), а вся логика уйдёт в севисы доменного слоя. И тут ещё приходит проблема, что есть слой модуля, а есть доменный слой и они имеют разное предназначение. Слой модуля - это слой управления доменом. У этого слоя свои сервисы и свои модели(дто) Доменный же слой ультратонкий в котором всё что есть это модели(не eloquent, а в отдельных случаях большого домена - кастомные, которые не зависят от бд) и сервисы Единственная зависимость домена - контракты и модель eloquent. Но мы так же можем архитектурно убрать проблему сохранения моделей не в том месте и создание странных ситуаций тем, что повесим зависимость домена на разбитый контракт модели на write и read-интерфейсы. В общем, та модульность которую ты показал это лишь малая часть огромной работы которую нужно провести для борьбы с хаосом завимостей и нарушения ответственности слоёв. И то не факт что это поймут в боевом проекте. Я такое экспереентирую только в пет проектах. Потому что у меня есть печальный опыт когда боевой проект, написанный с нуля, через полтора года закрылся от крайне высоких затрат на поддержку оверинжиниринга так как никто кроме архитектора не понял написанного и поломал быстро проект до неподдерживаемого состояния.
@CutCodeRu
2 ай бұрын
@@ИльяСорокин-д9ц рассказ о том как мы пришли к doctrine) а так со всем согласен, спасибо за такой комментарий!
@ИльяСорокин-д9ц
2 ай бұрын
@@CutCodeRu по-сути так и есть. Чем больше ты ломаешь архитектуру laravel и пытаешься сделать её чище чем ближе ты к симфони. Проблема больше кроется в том, что ларавель не предназначен быть чистым по изначальной задумке) Нужно много компромиссов как с архитектурой так и с потенциальными разработчиками. И где-то на грани этого балансировать. Вот тебе пример, чувак в нарушение слоёв вызывает в ресурсе бизнес-действие. Как от этого защититься? Повесить зависимость слоя управления от контрактов + php stan. Сломать это можно, но на ревью такой костыль будет кричащим. Как это реализовать иначе? Делать viewModel слоя управления и кастить из элоквент во viewModel. Цена поддержки мега высокая. Цена контракта будет минимальной, но если мы делаем контракт с магическим геттером то автоматически лишаем себя возможности передавать наверх простые ДТО. А иначе придётся писать геттеры и ломать концепцию eloquent... Чтобы сделать лару чистой придётся заключить очень много компромиссов. Скажем так, архитектурные скилы типового разработчика на ларавель на порядок ниже симфониста. И я сейчас, например, часто сталкиваюсь с тем, что разрабы не понимают элементарных архитектурных паттернов, отличных от стандартных лары. И не понимают почему некоторые паттерны лары не жизнеспособны в большом проекте.
@CutCodeRu
2 ай бұрын
@@ИльяСорокин-д9ц да все верно и выбирая ларавел надо быть готовым к куче компромиссов
@Abdugoffor_Qodirov
3 ай бұрын
❤
@CutCodeRu
2 ай бұрын
🤗
@НиколайШи-с9о
3 ай бұрын
Почему у тебя User.php лежит внутри модуля? Это не правильно если он используется контрактом то он должен лежать рядом с контрактами
@petrgolubovskiy1573
Ай бұрын
Thanks❤
@CutCodeRu
Ай бұрын
🙏
@user-page_mage
3 ай бұрын
Вы просто супер жду ролик про тесты.
@CutCodeRu
3 ай бұрын
ок, сделаем!
@vasiliyrozhkov945
3 ай бұрын
Классный ролик! Очень полезный материал!👍
@CutCodeRu
3 ай бұрын
🤗
@CutCodeRu
3 ай бұрын
🙌
@bogdanchirukin1050
3 ай бұрын
а как в такой модульной системе widart/laravel-modules придерживаться изоляции?
@CutCodeRu
3 ай бұрын
также
@anastasyawork3279
3 ай бұрын
Очень прошу ролик про интерфейсы, и про то, как их можно связывать с классами, и как использовать дальше в проектах!
@CutCodeRu
2 ай бұрын
сделаем!
@gembla_info
2 ай бұрын
Недрочибельно.
@CutCodeRu
2 ай бұрын
Вы просто не старались!
@gembla_info
2 ай бұрын
@@CutCodeRu В том-то и дело, что старался((( Очень старался((( И так и сяк. Ну ни как.
@АртурЗарипов-б2й
3 ай бұрын
Большое спасибо!
@CutCodeRu
3 ай бұрын
🙌
@CutCodeRu
3 ай бұрын
👌
@kakao_with_milk
3 ай бұрын
пожалуйста сделайте ролик с тдд и более подбробный ролик на реальном простом примере модулей
Пікірлер: 74