Backend TV
Backend TV
  • 39
  • 422 419
Паттерн Адаптер на реальном примере в PHP
#php #designpatterns #programming #программирование #itubeteam
Разбираем паттерн Adapter усложняем программу, видим как он помогает избавиться от дублирования кода. Сравниваем что было, если бы не использовали адаптер. В конце смотрим UML-схему.
Друзья, я решил немного сменить формат, приглашаю на новый канал th-cam.com/channels/xZuK_V-Jtgvxi_JDB6hojQ.html
มุมมอง: 4 316

วีดีโอ

Паттерн Строитель на примере проектирования БИГ МАКА
มุมมอง 2.4K2 ปีที่แล้ว
#php #designpatterns #programming #программирование Аналогия о том как лучше понять паттерн Строитель. Не забудьте налить колы =) Друзья, я решил немного сменить формат, приглашаю на новый канал th-cam.com/channels/xZuK_V-Jtgvxi_JDB6hojQ.html
Паттерн Абстрактная фабрика на реальном пример в PHP
มุมมอง 4.4K2 ปีที่แล้ว
#SoerAward #php #designpatterns #programming #программирование Рассказываю как с помощью паттерна абстрактная фабрика упростить код. Старался не пересказать википедию, а показать пример с пользой от использования паттерна. Друзья, я решил немного сменить формат, приглашаю на новый канал th-cam.com/channels/xZuK_V-Jtgvxi_JDB6hojQ.html
Паттерн Фабрика на реальном примере в PHP
มุมมอง 10K2 ปีที่แล้ว
#php #designpatterns #programming #программирование Рассказываю как с помощью фабрики избежать дублирования кода. Старался не пересказать википедию, а показать пример с пользой от использования паттерна. Друзья, я решил немного сменить формат, приглашаю на новый канал th-cam.com/channels/xZuK_V-Jtgvxi_JDB6hojQ.html
Паттерн Singleton на реальном примере в PHP
มุมมอง 4.6K2 ปีที่แล้ว
#php #designpatterns #programming #программирование Разбираем паттерн Singleton с использованием в реальном коде. Старался не пересказать википедию, а показать пример с пользой от использования паттерна. Друзья, я решил немного сменить формат, приглашаю на новый канал th-cam.com/channels/xZuK_V-Jtgvxi_JDB6hojQ.html
Установка composer на MacOS
มุมมอง 1.9K2 ปีที่แล้ว
За минуту рассказываю как установить composer на MacOS Поддержать автора 👨‍💻 : Тинькофф www.tinkoff.ru/rm/sardyko.ivan2/DxuTY29617 Сбер 4274 3200 7445 1066 ссылка на скрипт: drive.google.com/file/d/10KvhvxA5rIDiF9JIWhtxa7Jzt1Iid11X/view?usp=sharing Друзья, я решил немного сменить формат, приглашаю на новый канал th-cam.com/channels/xZuK_V-Jtgvxi_JDB6hojQ.html
Уроки PHP 8 - типы данных: Boolean
มุมมอง 5043 ปีที่แล้ว
Продолжаем курс по PHP 8. Начинаем разбирать типы данных, в этом уроке затронем логический тип boolean. Для чего нужен, рассматриваем преобразование типов, ну и в конце задачка для тебя, зритель! пиши в комменты по задачке или просто так, комментом или лайком ты поможешь продвинуть видео чуть выше чем оно могло быть без тебя =) Друзья, я решил немного сменить формат, приглашаю на новый канал th...
Уроки PHP 8 - Выражения и операторы
มุมมอง 4213 ปีที่แล้ว
Продолжаем курс по PHP 8. Разбираем как строятся выражения, какие бывают операторы, отличие простых выражений от составных. Рассмотрим что такое идентификаторы и литералы, какие бывают виды операторов, а также побочные эффекты выражений. Друзья, я решил немного сменить формат, приглашаю на новый канал th-cam.com/channels/xZuK_V-Jtgvxi_JDB6hojQ.html #курсы php #php learn #tutorial 00:00 - Привет...
Уроки PHP 8 - Инструкции
มุมมอง 6873 ปีที่แล้ว
Продолжаем изучение PHP 8. Что такое инструкция в php? почему это важно понимать? Готовим окружение к запуску файлов. Смотрим онлайн-песочницу php sandbox. точка с запятой в php, сокращенные встраиваемые блоки php c директивой short_open_tag. Это продолжение серии курсов по PHP8, второй урок "инструкции" Друзья, я решил немного сменить формат, приглашаю на новый канал th-cam.com/channels/xZuK_V...
Уроки PHP 8 - Вводный урок
มุมมอง 1.6K3 ปีที่แล้ว
Начинаем изучение PHP 8. Зачем нужен язык, где и как применяется, с какими базами данных работает. Что поддерживает. Чем отличается php от javascript, разница между клиентом и сервером. Это вводный урок по PHP8 Друзья, я решил немного сменить формат, приглашаю на новый канал th-cam.com/channels/xZuK_V-Jtgvxi_JDB6hojQ.html #курсы php #php learn #tutorial 00:00 - Приветствие 00:08 - Что такое PHP...
Установка Ubuntu на виртуалку [2021]
มุมมอง 2233 ปีที่แล้ว
Установка Ubuntu на виртуалку [2021]
Laravel - создание контроллера
มุมมอง 1.1K4 ปีที่แล้ว
Laravel - создание контроллера
Установка и запуск Laravel без Apache и Nginx
มุมมอง 8544 ปีที่แล้ว
Установка и запуск Laravel без Apache и Nginx
Как стать хакером?
มุมมอง 20K5 ปีที่แล้ว
Как стать хакером?
Laravel + Docker. (Nginx + Fpm + Mysql) Подробный разбор
มุมมอง 39K5 ปีที่แล้ว
Laravel Docker. (Nginx Fpm Mysql) Подробный разбор
Wordpress - обзор бесплатного плагина Book Showcase
มุมมอง 1.1K5 ปีที่แล้ว
Wordpress - обзор бесплатного плагина Book Showcase
Какой язык программирования выбрать в 2019 году?
มุมมอง 1.7K5 ปีที่แล้ว
Какой язык программирования выбрать в 2019 году?
Решаем задачку на CODEWARS, используем функции str_split, str_repeat
มุมมอง 2K5 ปีที่แล้ว
Решаем задачку на CODEWARS, используем функции str_split, str_repeat
Cравнение фреймворков Laravel и symfony на конец 2018 года
มุมมอง 5K5 ปีที่แล้ว
Cравнение фреймворков Laravel и symfony на конец 2018 года
Установка COMPOSER на Windows за минуту
มุมมอง 43K6 ปีที่แล้ว
Установка COMPOSER на Windows за минуту
SSH-доступ без логина и пароля (по ключу шифрования)
มุมมอง 20K6 ปีที่แล้ว
SSH-доступ без логина и пароля (по ключу шифрования)
Необычный урок по php - foreach
มุมมอง 6686 ปีที่แล้ว
Необычный урок по php - foreach
Курс по Laravel#01 - route, blade extends
มุมมอง 1.7K6 ปีที่แล้ว
Курс по Laravel#01 - route, blade extends
PHP простые примеры с числами, строками, var_dump, in array
มุมมอง 2.5K6 ปีที่แล้ว
PHP простые примеры с числами, строками, var_dump, in array
Установка PHP на Windows 10
มุมมอง 109K6 ปีที่แล้ว
Установка PHP на Windows 10
Установка python на windows
มุมมอง 6466 ปีที่แล้ว
Установка python на windows
Град в Санкт-Петербурге 22 июля 2017
มุมมอง 1.4K7 ปีที่แล้ว
Град в Санкт-Петербурге 22 июля 2017
PHP для новичков, самые основы
มุมมอง 7957 ปีที่แล้ว
PHP для новичков, самые основы
Наследование, инкапсуляция, полиморфизм в PHP
มุมมอง 2.5K7 ปีที่แล้ว
Наследование, инкапсуляция, полиморфизм в PHP
отключение обновлений в windows 10 навсегда
มุมมอง 3.9K7 ปีที่แล้ว
отключение обновлений в windows 10 навсегда

ความคิดเห็น

  • @_pheax
    @_pheax 9 วันที่ผ่านมา

    спасибо и удачи

  • @moneybobr
    @moneybobr หลายเดือนก่อน

    Не работает

  • @EsteraGhica
    @EsteraGhica หลายเดือนก่อน

    А как вы думаете, стоит ли добавлять путь к папке в переменные среды системы вручную или лучше использовать сторонние утилиты? лично я долго выбирал курсы по IT, рассматривал разные компании, но в итоге остановился на Skypro, и это помогло мне найти первого заказчика))

  • @ЮрийРябов-ф8я
    @ЮрийРябов-ф8я หลายเดือนก่อน

    Имхо достаточно неудачный пример для демонстрации паттерна, да и основной его смысл явно не озвучен, а точнее акцент смещен на избавлении от if/switch, хотя паттерн не про это. Суть же в чем - что бы передать обязанность создания конкретного объекта дочернему классу, через создание этого самого фабричного метода с возвратом понятного интерфейса, что бы в суперклассе можно было работать зная лишь интерфейс будущего объекта. Если относительно примера из видео. В классе (абстрактном) в котором заводим фабричный метод хорошо бы как минимум для наглядности иметь и другие методы, которые будут работать с будущим объектом, произведенным в конкретной реализации. //* ФАБРИЧНЫЙ МЕТОД *// //Интерфейс для возврата из фабричного метода interface PaymentServiceInterface { public function getFee(): int; public function pay(int $sum): bool; } //Класс, объект которого вернет фабричный метод конкретного подкласса class VtbPaymentService implements PaymentServiceInterface { public function getFee(): int { return 0; } public function pay(int $sum): bool { $sumTotal = $sum + $this->getFee(); return "VTB: Payed {$sumTotal}"; } } //Класс в котором использован фабричный метод abstract class Payment { private $service; /** * @param $service */ public function __construct() { // !!! ПОЛЕЧАЕМ ОБЪЕКТ ИЗ РЕАЛИЗАЦИИ ФАБРИЧНОГО МЕТОДА !!! $this->service = $this->getService(); } //Тот самый ФАБРИЧНЫЙ МЕТОД, через интерфейс которого мы можем работать в этом классе, не имея его конкретной реализации abstract protected function getService(): PaymentServiceInterface; //Рабочий метод, в котором используются будущий объект от фабричного метода public function payOrder(array $order): array { $orderSum = $order['sum']; $paymentServiceFee = $this->service->getFee(); $payed = $this->service->pay($orderSum); return [ 'payed' => $payed, 'sum' => $orderSum, 'paymentServiceFee' => $paymentServiceFee, ]; } } //Конкретный класс в котором мы реализуем фабричный метод и отдаем ожидаемый объект с которым работают методы суперкласса class VtbPayment extends Payment { public function getService(): PaymentServiceInterface { return new VtbPaymentService(); } } //Sber или Nal или любой другой класс реализующий PaymentServiceInterface //Как именно будет выбираться конкретный класс в данном случае не имеет значения $paymentService = new VtbPayment(); $order = [ 'sum' => 1000 ]; $paymentService->payOrder($order); //* /ФАБРИЧНЫЙ МЕТОД *//

  • @aziat3945
    @aziat3945 หลายเดือนก่อน

    хорошо кэп)

  • @manjuan1505
    @manjuan1505 หลายเดือนก่อน

    МАНУАЛ ПОЛНАЯ НЕ РАБОЧАЯ ХУЕТА!!!!

  • @wickedtorpedo75
    @wickedtorpedo75 หลายเดือนก่อน

    Мне кажется либо правила open closed нарушена либо паттерн неправильно реализована

  • @ArchDevWorkshop
    @ArchDevWorkshop 2 หลายเดือนก่อน

    Спасибо за ролик! Объясните пожалуйста чем в этой задаче Билдер отличается от паттерна Декоратор? Вроде такой же принцип

  • @igornetineya5389
    @igornetineya5389 2 หลายเดือนก่อน

    как ты схему включил в ide? на 8:40)))

  • @Дмитрий-п7х3ъ
    @Дмитрий-п7х3ъ 3 หลายเดือนก่อน

    Дружище, огромное тебе спасибо) я чуть до ручки не дошёл при поиске годного видоса. Незаслуженно мало лайков!

  • @grifffon1044
    @grifffon1044 3 หลายเดือนก่อน

    Не находит файл... Какая может быть причина? С диска скачивал и удалял, все равно не находит mac@MacBook-Pro ~ % chmod +x composer-install-macos.sh chmod: composer-install-macos.sh: No such file or directory

  • @soversus5374
    @soversus5374 3 หลายเดือนก่อน

    Идеально было бы, если бы не было никаких if и case. Например подгружался бы объект, который был выбран при оплате. А так, всеми этими case, получается тот же if, только в другом виде. Таки образом, не надо править код, если потребуется добавить или удалить способ оплаты.

    • @matveyru2976
      @matveyru2976 3 หลายเดือนก่อน

      это можно сделать, например, если мнемоника типа явно коррелирует с именем класса, например "sber" -> SberPayment, либо где-то хранить таблицу соответствия

  • @АнатолийПлетос
    @АнатолийПлетос 3 หลายเดือนก่อน

    Огромное спасибо, 6 лет видео, а выручает и сегодня, пожал бы руку тебе, жаль экран мешает)

  • @soversus5374
    @soversus5374 4 หลายเดือนก่อน

    Раньше это называлось оберткой.

  • @valerakuznetsov
    @valerakuznetsov 4 หลายเดือนก่อน

    спасибо вам учителем надо быть

  • @valeriagutsaeva5042
    @valeriagutsaeva5042 4 หลายเดือนก่อน

  • @vitche727
    @vitche727 4 หลายเดือนก่อน

    если $reportData = null will be Error

  • @mekhdi_ars
    @mekhdi_ars 4 หลายเดือนก่อน

    Лев! На макос 11 через brew не установилось, а тут вот так просто. Спасибо)

  • @fenix_63
    @fenix_63 5 หลายเดือนก่อน

    Так в классе PaymentHelper опять же куча ветвлений. В чём тогда вообще смысл? Мы всё равно не избавились от ветвлений, а только заменили if else на switch

  • @Atatalalala
    @Atatalalala 5 หลายเดือนก่อน

    не работает, в консоли всё равно пишет "php" не является...

  • @SteevenHookah
    @SteevenHookah 5 หลายเดือนก่อน

    Спасибо, не работает

  • @yuritian8830
    @yuritian8830 5 หลายเดือนก่อน

    у меня нет подходящих матов чтобы выразить свою благодарность!

  • @draackul
    @draackul 5 หลายเดือนก่อน

    Спасибо. Чёткое быстрое решение проблемы без воды. То, что надо. Все бы так делали.

  • @ЕвгенийС-щ7у
    @ЕвгенийС-щ7у 5 หลายเดือนก่อน

    Полная херня. Класс А создают только долбоебы.

  • @vadimkh
    @vadimkh 5 หลายเดือนก่อน

    если сервисы могут быть вызваны в разном порядке, то всё равно надо будет конфигурировать инстанс. вынести всё в отдельный файл init_log.php где создать объект и настроить его, а в других файлах делать require_once init_log.php ?

  • @mikasfree6371
    @mikasfree6371 6 หลายเดือนก่อน

    Спасибо коллега. Все работает.

  • @user-so5fx5zx2n
    @user-so5fx5zx2n 6 หลายเดือนก่อน

    Очень полезное видео. Спасибки❤

  • @Sergey-fg1uu
    @Sergey-fg1uu 6 หลายเดือนก่อน

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

    • @pr0zitiv
      @pr0zitiv 4 หลายเดือนก่อน

      OpenSSH отключить доступ по паролю

  • @allinfo3926
    @allinfo3926 6 หลายเดือนก่อน

    Я тут не вижу логику. Мы IF заменили на switch. И плодим не IF, а плодим case. В одном файле плодили IF, - сделали фабрику и в другом файле плодим case. И в чем прикол? оО?

  • @palach_666
    @palach_666 7 หลายเดือนก่อน

    Спасибо от души)

    • @backendtv1345
      @backendtv1345 7 หลายเดือนก่อน

      И вам спасибо! Пока сложно со временем, ролики планирую записывать по мере его появления)

  • @suleymanaliev1459
    @suleymanaliev1459 7 หลายเดือนก่อน

    Смотря на схему получается что мы добавляем сущности и расширяем систему, но в классе где описан switch мы изменям. А если избавится от точки изменения? допустим сделать более динамический способ создания сущности и добавлении оплаты в фабрику?

  • @wildhovercraft7242
    @wildhovercraft7242 7 หลายเดือนก่อน

    Привет, пробую поднять тестовый веб на win server 2016 (на виртуалке Hyper-V), ставил всё из архива, чтоб не собирать по кусочкам файлы, да и актуальность не так важна. Апач поднялся. Открываю в браузере localhost, папка test есть, а вот содержимое (index.php) не отображает вообще. В сервисах апач и SQL запущены, в логах ошибок нет. Как быть?

  • @animatsuki5345
    @animatsuki5345 7 หลายเดือนก่อน

    от души, брат

  • @АлександрРадько-д3ш
    @АлександрРадько-д3ш 7 หลายเดือนก่อน

    Четко, быстро, без воды. Поставил бы 10 лайков, если возможно

  • @Toleg80
    @Toleg80 7 หลายเดือนก่อน

    выдает сообщение об ошибке. Делал все по инструкции

  • @warmybo
    @warmybo 7 หลายเดือนก่อน

    спасибо! хоть один нормальный человек объяснил!

  • @yalmeme
    @yalmeme 8 หลายเดือนก่อน

    в чем проблема просто сделать один класс или функцию payment, в которую передавать вместе с заказом параметр например paymentType и внутри по этой развилке через if/case производить нужные действия? это же элементарная логика. я понимаю зачем можно разнести каждый тип оплаты в отдельный класс, но зачем городить еще интерфейс, хелпер и называть это "паттерн фабрика" - не понимаю.

  • @ТимофейМахотин
    @ТимофейМахотин 8 หลายเดือนก่อน

    Я обязательно напишу с чем я не согласен, когда пойму с чем, именно, я не согласен:)

  • @peters6007
    @peters6007 8 หลายเดือนก่อน

    А что со звуком? Ты нормальный?

  • @bibizan_planet_pictures
    @bibizan_planet_pictures 8 หลายเดือนก่อน

    php не является внутренней или внешней командой исполняемой программой или пакетным файлом.Я все добавил в path , все равно не работает

  • @marinakharitonova5009
    @marinakharitonova5009 9 หลายเดือนก่อน

    Thanks a lot!

  • @earth_burns
    @earth_burns 9 หลายเดือนก่อน

    супер, спасибо большое!!!

  • @mmt_poizon
    @mmt_poizon 10 หลายเดือนก่อน

    Спасибо! помогли

  • @Hard_Reset_Channel
    @Hard_Reset_Channel 10 หลายเดือนก่อน

    почему ты выбрал thread safe версию?

  • @Atikan37
    @Atikan37 11 หลายเดือนก่อน

    Выручил! Спасибо большое!

  • @mclotos
    @mclotos 11 หลายเดือนก่อน

    а зачем ставить composer в свою систему, когда у тебя уже установлен docker?

  • @vesh95
    @vesh95 ปีที่แล้ว

    6:02 renderView можно было сделать стабильным и передавать туда массив по старинке, а getData выполнить до его вызова

  • @Stas-ir3gh
    @Stas-ir3gh ปีที่แล้ว

    Класс! Спасибо.

  • @Denisko123
    @Denisko123 ปีที่แล้ว

    Ниче не понял. Изначально у тебя было два разных объекта логгера, с префиксом и без, с сохранением в файл и в лог. Как это решает твой синглтон ? Ты их тупо одинаковыми сделал. Не хочешь каждый раз создавать set-ы, сделай наиболее часто используемые данные по дефолту. Странный пример, короче. Лучше на примере подключения к БД показывать, типа один раз подключаемся к базе и все. Там уж точно ничего не меняется.

  • @melancholic_017
    @melancholic_017 ปีที่แล้ว

    aaaaa,aaaaaaa,aaaaa,aaaaa,aaaaaa,AAA