My name is Dima, and I am a full-stack developer (PHP/JS) with over 10 years of experience. I am working on a project dedicated to the music industry - a web portal built using Laravel, Vue, Nuxt, and SCSS.
I pay a lot of attention to the development process, CI/CD, code quality, and, most importantly, explaining the decisions made during development.
Please note: this channel is not for beginners. Many of the solutions shown require a certain level of experience for both usage and implementation in the development process.
And, of course, don't forget: russia is a terrorist state trying to kill me, my loved ones (We are Ukrainians), and everyone who is not willing to live in sh...t. Therefore, let's support Ukraine any available resources.
Пікірлер
А ось мені не дуже заходить концепеція екшинів. Я декілька проектів робив екшинами. (Без пакету але концепцією) Так - це круто! Маленький клас, відповідає за щось одне, не дублюється - все ок. Але коли проект хоча б середнього розміру - це стільки багато класів що мені важче щось знайти (згадати) аніж мати один сервісний шар і шукати метод в класі (умовно) Але підхід - цікавий і часто піднімається на різних конференціях.
Ой хлопче, в Ruby On Rails на мою особисту думку це все набагато легше робиться, ти не пробував?
Вітаю. А що конкретно на рельсах легше? Запитую тому, що Laravel це буквально рельси на PHP. І або вже є відмінності, або я чогось не знаю в ларі. Ну і як варіант я щось не роблю свідомо :) Цікаво.
@@butthurtdeveloper8578 Буде складнувато пояснити в коментах ютубу ))). Скажу що в рельсах для вирішення many-to-many-polymorphic було б менше коду, без усяких танців з бубном з якимись трейтами та декораторами для скоупів, ще й в додачу є якісь складності з тестуванням. Скажу що в рельсах я таких проблем не зустрічав, і там набагато менше коду потрібно писати. Можливо я не дуже розуміюся на laravel екосистемі, але виглядає так, що ви(автор) або дуже ускладнюєте, або ліби які юзаються не дають змоги вирішувати типові задачі просто. Вибачаюсь, але як ви зрозуміли я маю трохи упереджене ставлення до php в цілому, тому не ображайтесь якщо виглядає так що я зайшов на ваш канал щоб постібати php. Я просто не розумію навіщо так складно писати і так багато коду для типової задачі. Ви так завжди мучаєтесь?
Що скажете про платформи для навчання LaravelDaily i Laracast ?? Чи є якісь поради ресурсів для навчання ?
Думаю це більш питання для спільноти. А я напишу те що кажу всім друзям що хочуть кодити. ВСІ курси важливі. Особливо на джуніор і нижче. Не знаю як в часи повномасштабної. Раніше в універах були курси ІТ контор і дуже раджу намагатися потрапити на їх всі (ну окрім 1с звісно). І моя порада яку ніхто ніколи не практикує - робіть пет проєкти. Жодні курси не навчать ліпше ніж робота над своїми ідеями.
I wanted to tell much more and much better. But Russia, a terrorist state, is destroying the energy system of Ukraine. And problems with power supply make it very difficult to voice the content. So, excuse me, but I'm going to take a mini "vacation". Videos will not be released so often, until problems in the power system decrease (or weather conditions improve).
Хотів розповісти набагато більше і набагато якісніше, але зі світлом ну дуже важко озвучувати контент. Тому, вибачте, але я візьму міні "відпустку". Відео будуть виходити не так часто, до зменшення проблем в енергосистемі (або покращення погодних умов).
Great topic!
*Прям відчувається що стартові рекомендації викарбувані через болючі стусани від робочих проектів, дякую - вам за цікавий матеріал, ютубу - за алгоритми рекомендації шо його запропонували* _(лайк, підписка, донат)_ 💛💙
Дякую за відео, сам використовую подібний модульний підхід. Цікаво було б послухати за взаємодію модулів, наприклад як бути з моделями. Коли декілька модулів використовують спільні моделі, але кожен з модулів доповнює цю модель. Вийде так що в модулі User модель користувача має релейшини які потрібні для модуля Order
04:32 це ж Eloquent? Чому доктрина?
До 11 версії Laravel сильно був зав'язаний саме на доктрину. в 11 від неї відмовились laravel.com/docs/11.x/upgrade#doctrine-dbal-removal думаю саме тому зараз проблем нема
great videos just remove the background music
Thank you very much for the feedback. Tell me, is the background music really that annoying? I can't afford proper soundproofing, and the music masks sound defects such as breathing, neighbors' screams, and air raid sirens :( With the music, they are less noticeable.
@@butthurtdeveloper8578 for me yes
Made the background music much quieter in the last video. I will be grateful for the feedback. Thx kzread.info/dash/bejne/lnZs28WQdqXMnpc.html
Треба зазначити, що все описане у відео (крім PHP8 attributes) підходить для більшості мов\фреймворків, які використовують для роботи із API. Відео варте уваги, якщо розумієте, про що у ньому йдеться)) Дякую!
За інші мови це абсолютно вірно. Тільки не можу бути впевненими чи є можливість писати тести саме по специфікації. Тести дають величезну додадану вартість написанню специфікації... на жаль без тестів зазвичай OpenAPI дуже швидко стає не актуальним. Ну або дуже жорстке ревью та QA команда...
JWT зло!
09:25 - через це і використовую постман, треба відправити логін і пароль, потім ще нажати десяток кнопок щоб вставити цей токен, там заскриптував все і точка, В нас ще більше треба зробити щоб отримати цей токен) 3 реквести один за одним на бекенд з різними пейлоадами) Дочері ти можеш прописати десь в конфігах, щоб не дописувати цей Bearer кожен раз, я так зробив у нас в сімфоні, юзаемо API Platform, крута штука, але бісить іноді жах, треба вчитися таке використовувати. І да, документацію, єдину яку читають - це onboarding, далі іноді заходиш щоб подивитися які реквести-респонси взагалі бувають) Лайк за швидкість, дивився на х1 але мій старий мозок потребує х0.75 в твоєму виконанні :D
Дякую за контент. Одне прохання - відсортуйте будь-ласка контент у плейлісті у порядку зростання, так зручніше переглядати ваш канал
Вітаю. Зроблено.
Warning. Xdebug doesn't work with swoole. Therefore, the xdebug setup is not relevant :( Details in the next video.
Warning. Xdebug не працює з swoole. Тому сетап xdebug не актуальний :( Подробиці в наступному відео.
++
Текст про ватостан порадував😆
І, доречі, можна трошки більше розкрити роботу з командами та їх скедуларами для екшенів в модульній структурі?
Клас! Друже, твої відси - це саме те, що потрібно конкретно мені конкретно зараз. Дуже подобається твоє архітектурне бачення для ларки. Але можу попросити окремим відосом розписати роботу івентів в модулях? З огляду на марку 11 і меджік в реєстрації лісенерів для івентів як це працює для модулів де з цим, як я зрозумів, є проблемки? Також дуже цікаво подивитись твої рекомендації щодо роботи екшенів в якості івентів та лісенерів. Ця тема дуже зацікавила мене і є що імпрувнути в моєму MVP ))))))
Привіт, дякую, дякую. Щодо запиту. Навіть не знаю що тут можу ще сказати. Але подумаю. І вони точно в планах майбутніх відео. Можливо команд не так багато, але ліснери та евенти будуть. Річ утому, що як вийшла Лара 11 - дочекався оновлення пакетів зробив маленьку демку де перевірив все що вміють Action в моделі. І проблем не знайшов тому видохнув і перестав реагувати на огляди 11 версії. Типу "мою" архітектуру не зачепили, а значить ок :) Але можливо я погано перевіряв...
прикол.. оце відписав поліз глянути і побачив що у мене Лара 10та... я прямо вірив що 11 :) Перевірю відпишу, або напишу відео
Оновився, протестував. Проблем не побачив. Фасад Event регить лістенери. Actions::registerCommands(module_path($this->moduleName, 'Actions')); - команди. І все ж по плану все це не одноразово буду показувати у відео.
Контенту для мідлів+ на ютубі мало. Дякую за роботу. Все буде Україна. За кожен перегляний відос обіцяю донат на ЗСУ. Й вам подяка за контент. P.S. Якщо не складно, можете в плейлисті порухати відео щоб вони йшли по порядку
Вітаю. Плейлисти вирівняв. І буду за ними слідкувати. Чомусь ютуб не спрацював. Дякую за підказку. І безмежно вдячний за підтримку ЗСУ!
Дякую за те що ділитесь корисною інформацією. Дуже цікавий та повчальний контент.
Дякую за корисні поради. А також за можливість навчатись . Цікавий контент .
Thankyou for such great knowledge. Please keep continuing and complete this series as I'm somewhat at begginer level php/laravel dev but I want to learn more complex things about laravel which isn't available easily at KZread in a formatted manner.
Thank you for your feedback. I really miss feedback from English-speaking audiences. I'm glad I can be helpful. One moment: If you are a beginner, I would ask you to be more careful with my videos. Since I can say things that beginners might find difficult to defend, for example, in job interview. I hope I don't harm your career.
Я якраз шукав як нормально об'єднати htmlRespons та jsonRespons. Дякую тобі.
Дуже цікаво. Хотілось би побачити роботу екшенів на реальному прикладі.
Вітаю. У наступному відео вже є перші екшени. Не стандартні, але все ж. Скоро змонтую відео з їх тестами. А в майбутньому їх буде дуже багато, кожен метод api, команда, або якась дія - action. Якщо все ок, то встигну ними набриднути :)
Дякую за цікавий та пізнавальний контент українською. Чекаю на нові відео
Цікавий підхід. Треба переходити на beckend
Топовий відос. Ми в свій час підсіли на Actions (не на пакет, а на підхід) і дуже раді що обрали це рішення. Близько 5 років проєкт уже працює на Actions декілька разів поміняв напрямок і бізнес повністю змінився, але архітектура усе пережувала і гарно себе почуває
О, а я вас знаю :) Дякую за відгук та українськомовний контент. Actions - моє кохання. Дуже радий чути, що позитивний досвід не лише у мене.
Оо дякую вам дуже гарний та детальний відосик 😮
Вітаю, особисто для мене не вистачає покликання на гітхаб із файлами.
Вітаю, під кожним відео є посилання на текстову версію. Там виділяю всі підходи й весь "важливий" код. Сторінку на весь проєкт не планую відкривати оскільки це комерційна історія яка, сподіваюсь, буде монетизована. Дякую за розуміння.
@@butthurtdeveloper8578 Це буде контент для патронів?
@@dmytro882 Ні. Працюю над проєктом який планую запустити та розвивати. Це й буде основою мого доходу - монетизація, інвестиції реклама тощо. Відео на каналі - це побічний продукт розробки. Таким чином набираю перших потенційних користувачів та не втрачаю софт скіли. Ну і, сподіваюсь, комусь допомагаю. Патреон якщо і буде, то точно без унікального технічного контенту для патронів. Інформація повинна бути доступною всім :)
Good explanation. Thank you for you work, man.
лайк, комент в підтримку каналу. Цікава твоя думка стосовно copilot, AI Assitant для phpstorm як варіант для наступних відосів
А я все равно бачу и розумию что ты там балакаешь. Дякую, но гроши не дам🤣
Супер дуже корисний контент. Дякую.
крута штука, дивно що ніколи не стикався з нею
Windows + WSL не відкриває localhost (The connection was reset) може якісь ідеї як пофіксити?
Одразу прошу вибачення у всіх. Не підкажу. І буду відмовляти всім в коментарях в такому "дебагі" в сліпу. Бо 400 підписників це 400 людей у яких виникають по 20 проблем на день. І фізично допомогти не можливо Раджу дивитися можливо щось зайняло 80 порт. Зайти на 0.0.0.0. Розібратися як WSL відкриває порти. І якби це запитував прям друг або колега - жартами змусив би перейти на лінукс :)
@@butthurtdeveloper8578 дякую, це просто більше питання до юзерів WSL але все ок вже зробив
Коли краще використовувати tall stack для Laravel ?
Тут не підкажу. Але є моменти по парі пунктів 1) tailwind жахлива технологія. Це, напевно, єдина технологія проти якої я стою горою. Обертати css властивості в класи по одному - це буквально інлайновий код. Як доберусь до фронту про це буде відео. 2) З адмінками ларавеля не маю досвіду. Можливо вони ОК, і це моя помилка. Останні н-років працюю над проєктами з дуже чутливими даними де адміна який може все апріорі бути не може тому таке ... А глобально тут треба відчувати. Якщо над головою стоїть замовник і оре що треба все на вчора і чхати він хотів на секюрність, оптимізацію і тд - думаю tall це вихід.
@@butthurtdeveloper8578 а що до Livewire використовуєте?
Мене "на ти", будь ласка. Нічого. На laravel лише АПІ. Всі адмінки - vue 3 + самописні. Знову ж таки, експертності в адмінках Laravel нема, тому не раджу мене слухати. Перестав шукати адмінки років 7 як, коли на ларавель була лише October admin (чи якось так)
І це ще одна залежність від розробників тої адмінки, бо якщо треба щось кастомне то доводиться купу костилів туди запихати. Мені колись дістався проект з Laravel Admin, я довго плювався поки його випиляли й перейшли на окремі репозиторії для фронта й бека. Якщо є окремо фронт-розробник то я на 100% погоджуюсь з автором ролику, що краще його зробити окремо й делегувати окремій людині. Якщо один на проекті й часу на розбиратись з vue нема то готова адміна може бути як варіант для MVP, з часом випиляєте, коли воно стрельне, а якщо помре - то вже буде не важливо
Не можу зрозуміти чому використовуєте Gitlab для вашого проекту а не GitHub. Це власне бажання чи цьому є якесь пояснення?
Історично github дуже відстає від lab. Хаб дуже пізно дозволив приватні репозиторії безкоштовно (десь в 2019). Github action були "новиною" і "проривом" лише для тих хто не працював з лабом, бо там це було зі старту. Лаб дозволяє селф хоститися. Це означає що будь-який бізнес з реально цінним або сенсатів кодом може тримати код у себе на серверах, а не десь там. І скоріше за все працюючи з європейцями - американцями у них буде гітлаб. Ну або ж гітхаб-бітбакет і окрема людина яка налаштовує дженкінси. Знову таки обмежень нема. Але по зручності саме devops фічам гітлабу конкурентів небачу (не те що кожен день аналізую ринок, але все ж)
А ну і гітхабі навіть груп проєктів нема. Можна загуглити як західні блогери дивуються і хвалять групи в лабі )
@@butthurtdeveloper8578 Зрозумів, вдячний за відповідь
Вітаю, так з цікавості, чому не використовуєте Laravel Sail, які мінуса у порівняні з кастомним докером?
Вітаю У відео про це говорив. Якщо коротко 3 основні причини: 1) Sail не можна використовувати в проді. Це означає що середовище розробки в проді буде відрізнятися від девів. І помилки будемо отримувати не на етапі розробки, а на проді. Це нівелює основний позитив докеру - консистентність середовища. 2) Докер сервіси не обмежені DB, PHP та кеш. Сервісів буде багато: fulltext пошук, imgproxy, swager і потенційно багато всякого. І для них все одно доведеться відмовитися від sail(у) 3) Він великий і має багато зайвого. Це власне основна причина чому його не можна використовувати в продакшені. Убунта, всі залежності для всього, і май скл і постгресс і все що потенційно може бути. Контейнерів багато, їх треба розгортати для тестів, для деплою, при нормальній (з командою) розробці контейнери підіймаються дуже багато разів на день, і будь яка оптимізація тут буде корисна. Знову ж не знаю Ваш рівень, якщо ви новачок і вчитесь саме кодити - Sail прекрасне рішення.
@@butthurtdeveloper8578 вдячний за відповідь, прочитав потім вже в текстовій версії теж, дуж крута робота. Саме хочу навчтитися та зрозуміти всі принципи як налаштовувати весь процес з 0 для розробки 80% проектів як на Laravel так і Wordpress. Докер наче знаю але щоб використати його првильно і скласти всі знання докупи невиходить так як багато нюансів. Дуж мало структурованої інфи по налаштуванні dev,prod. Скрізь доводиться збирати все по частинам з інету так як точної інфи як має це виглядати від А до Я правильно немає.
@@karlson2804 Тут дам одну пораду. Слухати чи ні вибір кожного. Або laravel (й інші фреймфорки) або WP. Код і підходи WP дуже специфічні. Більшість склалась історично, і не змінюється десятки років так я зворотня сумісність важлива. Фреймворк розробнику дуже боляче дивитися на код WP. Це не означає що WP погана технологія. Вона ТОП якщо робите блог, лендінг, якісь магазинчики тощо. Але, будь ласка, не робіть на ній, нейромережі, державні реєстри, потрали керуванням будівництвом і т.д.. З цим усім до мене приходили замовники з криками "Ми тут MVP зробили, а ти дороби. WP - найкраща у світі для парсингу 3д креслень".
FYI: updated the text version and scripts. Added volume for .npm and .composer cache.
FYI: трохи оновив текстову версію і скрипти. Додав volume для .npm та .composer кешу.
Я хоч і не пишу на php, але було цікаво глянути
Дякую. З часом буде таке ж відео, але для JS. Для фронту буде багато відео, але трохи пізніше. Це якщо цікавить frontend. Якщо ні, то наступне відео днями буде маленьке але, сподіваюсь, корисне не залежно від технології
@@butthurtdeveloper8578 мене теж цікавить саме фронтенд
Вітаю. Наступні десь 10 відео будуть по беку. Це має практичний сенс і, сподіваюсь, на реліз nuxt4. Це десь місяць. Але одразу перепрошую, такі часи що жодних термінів обіцяти не можу. По фронтенду: налаштовую storybook, на його основі тести. + тести accessability, css property, + те ж що роблю для php CI/CD лінтери код complexity, і так далі. Насправді це не жарт - я реально роблю проєкт, а відео роблю по моментах які думаю що будуть цікавими, або ж часто бачу(або робив сам) помилки. Якщо цікаві такі теми, треба почекати. Якщо ні - дякую за відгук.
Чудово, але чи можна цю приблуду законфіжити під конкретну версію пихи? Я що сь по докам не знайшов. Типу, щоб воно розуміло, що не завджи треба конструктор класу викликати при створенні нового екземпляру, наприклад. І наприклад не юзаємо стрікт тайпи в коді, то це можливо вирубити для фіксів кодстайлу?
Вітаю. По-перше, дякую за україномовний контент! Використовую, здається, з php7 (точно до релізу 8). Жодних питань при переході з версій не виникало. Щодо стрікт типів - за замовчуванням вимкнено, і можна увімкнути. Ця збірка це красиво запакований github.com/PHP-CS-Fixer/PHP-CS-Fixer в якості код стайлеру, та github.com/PHPCSStandards/PHP_CodeSniffer/ як статік код аналізатор. Набір правил за замовчуванням зібраний під Laravel (або під інші фреймворки, це є в документації) і його можна переробити абсолютно під себе. Буль яке правило (sniff або fixer) можна додати, відключити або налаштувати. І правила за замовчуванням не жорсткі. Його впровадження набагато легше ніж умовний phpstan з lvl 7 врубити. Тому і рекомендую всім підряд.
@@butthurtdeveloper8578 навзаєм, подяка за українську в ютубі. Ну от я перевірив і мені фіксами він все вище зазначене "повиправляв" :\
@@oleksii_letscode Тут прошу вибачення. Не перевіряв, бо для цього треба мати кодову базу з конкретними кейсами. Все ж нагадаю що це просто набір правил, які можна налаштувати.
Це так. Проте таких налаштувань не знайшов, чи не зрозумів як налаштувати. Тому і питаю. Як мінімум стрікт тайпи прибрати б для початку 💁♂️
@oleksii_letscode phpinsights.com/insights/code.html#declare-strict-types Якщо я правильно зрозумів проблему. Але питання в, тому що для laravel він removed за замочуванням 🤷♂
Канал доданий в список, де відео завжди буде отримувати лайк авансом!
Я вже думав усе, радий що повернувся
Makefile`ом не користуєшся?
Користуюсь, але саме тут не побачив необхідності, бо команд мало і вони базові. І оскільки сетап інструкцію читають, то користуюсь цим, щоб інші розробники трохи розуміли що відбувається.
Довго не міг зрозуміти чому виникає ця помилка INFO spawnerr: can't find command '$(ENV_COMMAND)', потім зрозумів що можна зробити так: /bin/sh -c $COMMAND. І дійсно допомогло. Дякую за відео, багато чого вивчив нового для себе.
Good
годнота