Тёмный
Dmitry Afanasyev
Dmitry Afanasyev
Dmitry Afanasyev
Подписаться
О себе: в разработке с 2001 года, в веб-разработке с 2008 года. Продолжаю учиться и делюсь опытом. Бэкенд разработка на PHP, Laravel с использованием Git, MySQL / PostgreSQL, Redis, MongoDB.

► Выразить благодарность, поддержать донатом развитие канала:
★ www.tinkoff.ru/rm/afanasev.dmitriy164/2eqLm80777
★ www.donationalerts.ru/r/dmitry_afanasyev

epekyjyx
Комментарии
@absurdradio
@absurdradio 36 минут назад
Дима, нам не хватало твоих обливаний:)
@EdwardNorthwind
@EdwardNorthwind Час назад
Эх, почему нет механизмов позволяющих иметь подобный простой, выразительный дизайн, но и при этом делать всё это за один цикл. Ну не могу я себя перебороть, когда понимаю, что мне надо по листу пройтись 5 раз, вместо одного...
@jools333
@jools333 5 часов назад
Я бы ещё константы из Movie вынес в отдельный Enum и убрал бы switch по созданию состояния.
@EdwardNorthwind
@EdwardNorthwind Час назад
Почему бы не воспользоваться наследованием и логику по расчеты цены и бонусов оставить в Муви, тогда ни свич не нужен, ни Прайс с наследниками.
@alexhitch6963
@alexhitch6963 6 часов назад
Хорошее видео! Побольше таких!
@alexkom9070
@alexkom9070 6 часов назад
Порекомендуйте книгу по проектированию?
@DmitryAfanasyev
@DmitryAfanasyev 5 часов назад
"Чистая архитектура" - база
@onlybestmusic4185
@onlybestmusic4185 6 часов назад
с велкамбэком )
@vitall789
@vitall789 6 часов назад
Вместо array_push лучше $arr[] = ...;
@alexkom9070
@alexkom9070 7 часов назад
Классный паттерн состояние, можно много где применять, взял на заметку, спасибо.
@eaglesm1993
@eaglesm1993 8 часов назад
Мати рiдна, таки вернулся
@Aczamaz
@Aczamaz 8 часов назад
Ого, легенда вернулся!
@konstantin9864
@konstantin9864 9 часов назад
Фаулер это крутой мужик
@nt2548
@nt2548 9 часов назад
Спасибо!
@arta4649
@arta4649 9 часов назад
Поставил лайк за кошку! Шучу...за кошку+камбек+очень познавательный материал! Грац!:)
@timplenok9860
@timplenok9860 9 часов назад
Лайкос не глядя, давно ждал
@user-gr3ky3zu4i
@user-gr3ky3zu4i 10 часов назад
Давно вас не было, дождались😁
@ell1ar
@ell1ar 10 часов назад
У меня только один вопрос: где обливание водой из бутылки в начале видео?
@user-ex9ni9ok6e
@user-ex9ni9ok6e 10 часов назад
вернулся? дождались?
@DmitryAfanasyev
@DmitryAfanasyev 10 часов назад
Ага )))
@romanbush5164
@romanbush5164 День назад
Спасибо Дмитрий!
@aleksandrkokin6065
@aleksandrkokin6065 День назад
Спасибо за классный урок, давно хотел погрузится в рефакторинг!
@user-uf2ur4bw7m
@user-uf2ur4bw7m День назад
Крут как всегда! Спасибо за видео! 👏
@BopoH_L
@BopoH_L 5 дней назад
Очень содержательное видео с конструктивным разбором и советами применения, спасибо большое! DTO используется наряду с Порто на моем месте работы, в одном из Ташкентских финтехов. Ваши видео кстати входят в обязательное ознакомление в онбординге бекенд разработчиков 😁. Всех благ, не пропадайте
@user-nf1td4hh7y
@user-nf1td4hh7y 8 дней назад
Спасибо за вашу работу
@user-nd2zl6lm1t
@user-nd2zl6lm1t 12 дней назад
Дмитрий, здравствуйте. У меня почему-то не меняется расширение? Как было txt так и осталось. Винда 64
@DmitryAfanasyev
@DmitryAfanasyev День назад
Это решается в настройках проводника. Сейчас он у вас не показывает расширение файла. По этому вы просто дописываете php в название, но не заменяете расширение.
@saharaprotocol
@saharaprotocol 21 день назад
Спасибо.
@mymail333g
@mymail333g 24 дня назад
Спасибо за урок. Поставил бы второй лайк за ква-ква-пшп)))
@lisafox9026
@lisafox9026 27 дней назад
как можно растянуть объяснение на 13 минут и все равно не понятно рассказать? индусы к сожалению лучше рассказали.
@DmitryAfanasyev
@DmitryAfanasyev 2 дня назад
Так иди к индусам )))
@worktravel5945
@worktravel5945 Месяц назад
очень годный контент . Автору респект !
@c0ntrall472
@c0ntrall472 Месяц назад
Я может невнимательно смотрел видосы и документацию Apiato, но кто нить подскажет куда сводные таблицы пихать?! У меня есть секция MusicSection, контейнеры внутри: Artist, Album, Track, Tag, Playlist. Есть сводные таблицы типа artist_album (Когда альбом может быть у нескольких исполнителей), track_playlist (Когда трек может быть в разных плейлистах). Куда и как оформлять такие таблицы по канонам Porto?! А еще например есть контейнер Country (Страна), может быть вообще у любого контейнера в любой секции - это в Ship Лучше вынести?
@DmitryAfanasyev
@DmitryAfanasyev 2 дня назад
Предлагаю заглянуть в базу - "Чистая архитектура" Глава 34, параграф "организация и инкапсуляция". Так же в этой же книге обсуждается и по каким принципам организовывать код в модули. Мартин сразу предостерег что организация модулей которая лежит на поверхности, именно то как ты и описал, может оказаться не верной, но начать можно именно так.
@c0ntrall472
@c0ntrall472 День назад
@@DmitryAfanasyev о, у меня как раз эта книженция есть, но я ее еще не прочитал! Спасибо большое!
@Venitch.
@Venitch. Месяц назад
при обновлении композера возникла ошибка: Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1 заменил в composer.json: "require": "laravel/framework": "6.0.*", на "^6.*.*" и всё обновилось)
@vatakiller
@vatakiller 2 месяца назад
Верно ли я понимаю, что какой-то низкоквалифицированный араб (если судить по его проектам на гитхабе) придумал свой "гениальный" архитектурный паттерн, который секта ларавистов подхватила и сейчас пытается представить как что-то великое и сопоставимое с чистой архитектурой?
@DmitryAfanasyev
@DmitryAfanasyev День назад
Нет, вы понимаете не верно. Как минимум ошибка в сборе данных об авторе Porto которая и привела к ложным выводам. Так же сам анализ Porto почему-то не заставил задуматься о том что была допущена ошибка.
@vatakiller
@vatakiller 23 часа назад
​@@DmitryAfanasyev неверные? Этот чел пилит ларадок. Ларадок карл! Это же"инструмент" для yнтepoв, которые даже линукс на базовом уровне не могут освоить. Если бы я, будучи под синькой, вдруг что-то закоммител в эту репу, то на следующей день уволился бы и дропнул свой гитхаб с позором
@vatakiller
@vatakiller 23 часа назад
@@DmitryAfanasyev И что это вообще за терминология? Какие-то корабли, какие-то контейнеры, моря. Где нормальный академический язык? Use casess, bound contexts, агрегаты и тд.
@vatakiller
@vatakiller 22 часа назад
@@DmitryAfanasyev Кстати, только что чекнул его stackoverflow, вопросы ультра примитивные. Отвечает тоже только нубам. Короче, как по мне, этот чел просто пиарится на примитивщине и зарабатывает на этом бабки будучи крепким мидлом. Эдакий виндертрон-laravel-архитектор
@DmitryAfanasyev
@DmitryAfanasyev 4 часа назад
@@vatakiller а с чего это "use cases" и тп. стали вдруг эталоном и "академическим языком"? Это точно такие же определения от другого разработчика. И почему разрабатывая отдельную концепцию запрещается вводить свои определения?
@saharaprotocol
@saharaprotocol 2 месяца назад
а может ли быть подход структурирования папок вроде такого: ? Есть основная папка "модуля" app/Blog/ в ней вложены её контроллер, обсервер, репозиторий, реквест и тп. И так же другие "модули" app/Shop/.... app/Delivery/... т.е. все файлы которые относятся к конкретному "модулю" все в его папке. Так можно делать? Или лучше как в курсе? Если можно, то какие + и - подходов, если есть таковые? Спасибо.
@DmitryAfanasyev
@DmitryAfanasyev День назад
Да, можно. Это, так сказать, первый шаг в кастомную модульность. Но лучше не придумывать велосипед и изучить уже существующие пакеты реализовывающие модульность для Laravel. Например Porto/Apiato.
@saharaprotocol
@saharaprotocol День назад
@@DmitryAfanasyev Спасибо.
@bogdanlutsevich5894
@bogdanlutsevich5894 2 месяца назад
Если в установили более новую версию xampp, то вы можете заменить папки apache, php и phpMyAdmin скачав более старую версию xampp(не забудьте эти папки перед заменой где-то сохранить либо просто переименовать). Теперь у вас должно быть все как в курсе
@wickedtorpedo75
@wickedtorpedo75 2 месяца назад
Почему перестали выпускать, да понимаю удовольствие от этого мало, но можно раз в 2-3 месяца выпускать чо нибудь полнзное
@DmitryAfanasyev
@DmitryAfanasyev 10 часов назад
да, надо возобновлять! Спасибо за интерес! (удовольствия на самом деле от этого много. Проф выгорание настигало, настигало и настигло)
@eugenenovikov671
@eugenenovikov671 2 месяца назад
вы специально ударение ставить так рефактОринг?
@DmitryAfanasyev
@DmitryAfanasyev День назад
да, почти. коверкаю некоторые слова так как именно мне приятнее звычание. рефактОринг, экшОн и тп.
@dront111
@dront111 2 месяца назад
поржал с момента "supervisor - это прерогатива сис админа, разработчику это знать и запускать не нужно" ахахахах
@DmitryAfanasyev
@DmitryAfanasyev День назад
При разделении ответственностей - серверными делами занимаются сисадмины и девопсы. Если разраб "и швец и жнец и на дуде игрец" то может забрать ответственность у другого... но зачем?
@saharaprotocol
@saharaprotocol 2 месяца назад
queue - когда в английском языке это слово придумывали, то просто по клавиатуре ударили пару раз, что получилось - то получилось, так и оставили.
@atlantatesla9348
@atlantatesla9348 2 месяца назад
У вас отличная подача, благодаря вам начинаю понимать паттерны. Спасибо! 24:07 - "Давай попробуем. Да, я уже на самом деле попробовал, сейчас расскажу тебе, не переживай" Вы на этой фразе мега харизматичный)
@atlantatesla9348
@atlantatesla9348 2 месяца назад
Спасибо за урок. У вас отличная подача!
@y5rdg
@y5rdg 2 месяца назад
Спасибо
@alex-and-er
@alex-and-er 3 месяца назад
Забыл в SimpleSingleton классе закрыть конструктор!
@dmitryanosov8597
@dmitryanosov8597 3 месяца назад
Спасиба учител!
@user-gf7qw7hv8s
@user-gf7qw7hv8s 3 месяца назад
Ну походу я Верховный Ситх
@TheRedfordby
@TheRedfordby 3 месяца назад
сразу видно как профессионально вырос Дмитрий, в видео про SOLID белая тема IDE, а спустя 5 лет - черная.
@DmitryAfanasyev
@DmitryAfanasyev День назад
Я ради прикола пытался вернуться к светлой... чуть глаза не вытекли за 10 секунд. Не понимаю как раньше на светлой сидел.
@EAST1905
@EAST1905 3 месяца назад
Дмитрий, приветствую. С возвращением. Хотел узнать продолжениее по ларе будет или нет?
@soversus5374
@soversus5374 3 месяца назад
private в __wakeup больше не доступен.
@user-vh3wy3vs6x
@user-vh3wy3vs6x 4 месяца назад
1. как удалить модель из кэша, после апдейта или после добавление новой модели? 2. а как проверить на уникальность например в CreateUserAction (хотелось бы запрос сделать в БД, а не в кэш. или здесь не надо юзать UserRepository, а юзать User::query(), хотя... наверное нет)?
@DmitryAfanasyev
@DmitryAfanasyev 10 часов назад
1 - можно через Observer обновить кэш для модели; 2 - в laravel есть CreateOrUpdate - если не найдет, то создаст новую, если найдет, то обновит то что нашел.
@of_youtube
@of_youtube 4 месяца назад
Питонисты конечно геи, но объяснил паттерн хорошо, особенно часть с Director
@DmitryAfanasyev
@DmitryAfanasyev 10 часов назад
Под питонистами вы вероятно имели в виду PHP-шников? :D Канал-то "PHP-ориентированный" ))))
@Sextillionpleasures
@Sextillionpleasures 4 месяца назад
Я только html css js знаю +- норм. Смотрю, повторяю, ничего не понятно, но очень интересно! 2024 год)
@user-ge6pt5lp9u
@user-ge6pt5lp9u 4 месяца назад
Работал бы с таким напарником в проекте