- 162
- 139 997
Lenkowski
Poland
Приєднався 5 бер 2023
ŻYCIE JEST ZA KRÓTKIE ŻEBY PISAĆ KIEPSKI KODZIK!
Nazywam się Marcin Lenkowski i nauczę Cię skutecznie programować. Wierzę, że dobre oprogramowanie to podstawa biznesu, a dobry programista to taki, który dobrze rozumie biznes.
Jestem tu po to, by pomóc Ci pisać czysty kod, zwiększać Twoją wiedzę architektoniczną i świadomie budować Twoją karierę. Tak, by legendarne 20K nie było dla Ciebie żadnym zagadnieniem.
Nazywam się Marcin Lenkowski i nauczę Cię skutecznie programować. Wierzę, że dobre oprogramowanie to podstawa biznesu, a dobry programista to taki, który dobrze rozumie biznes.
Jestem tu po to, by pomóc Ci pisać czysty kod, zwiększać Twoją wiedzę architektoniczną i świadomie budować Twoją karierę. Tak, by legendarne 20K nie było dla Ciebie żadnym zagadnieniem.
Masz dość błędów w kodzie? Zobacz co dla Ciebie przygotowałem!
🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴
🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴
🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴
Chcesz rozwijać swoje programistyczne umiejętności?
Sprawdź kursy na lenkowski.net/
👉 KURS SOLIDa: lenkowski.net/produkt/solid/
👉 KURS WZORCÓW: lenkowski.net/produkt/kurs-wzorcow-projektowych/
👉 KURS Startupu: lenkowski.net/produkt/kurs-startupu-dla-programistow/
🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴
🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴
Chcesz rozwijać swoje programistyczne umiejętności?
Sprawdź kursy na lenkowski.net/
👉 KURS SOLIDa: lenkowski.net/produkt/solid/
👉 KURS WZORCÓW: lenkowski.net/produkt/kurs-wzorcow-projektowych/
👉 KURS Startupu: lenkowski.net/produkt/kurs-startupu-dla-programistow/
Переглядів: 322
Відео
Under fetching czy over fetching? Optymalizacja API z chatem GPT!
Переглядів 1,1 тис.14 днів тому
🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴 🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴 🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴 Chcesz rozwijać swoje programistyczne umiejętności? Sprawdź kursy na lenkowski.net/ 👉 KURS SOLIDa: lenkowski.net/produkt/solid/ 👉 KURS WZORCÓW: lenkowski.net/produkt/kurs-wzorcow-projektowych/ 👉 KURS Startupu: l...
Te błędy zdradzają, że jesteś juniorem! STUPID - czyli jak NIE programować?
Переглядів 2,6 тис.Місяць тому
🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴 🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴 🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴 Dobre praktyki są dobre, ale warto znać też pułapki które czekają na młodego kodera! W dzisiejszym odcinku, przed dłuższą przerwą, biorę na tapet STUPID i opowiem Ci jak NIE programować. Jednocześnie, chciałbym ...
Hexagon? Nie popełniaj tych 5 błędów!
Переглядів 1,2 тис.Місяць тому
🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴 🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴 🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴 W dzisiejszym odcinku mamy gościa specjalnego - Damian Dziaduch, którego możecie znać już z poprzedniego odcinka - o co pytają seniorzy. Damian opowie Ci o najczęstszych błędach popełnianych podczas pracy z arch...
Singleton - czy to czarna owca wzorców projektowych?
Переглядів 8802 місяці тому
🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴 🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴 🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴 Czy singleton to prawdziwa "czarna owca" wśród wzorców projektowych? 🐑 W tym odcinku przyjrzymy się bliżej temu wzorcowi, który z jednej strony może pomóc, a z drugiej - wywołać istny chaos w Twojej aplikacji! D...
Laravel Vapor? Najtańszy serwer to brak serwera! Serverless w PHP
Переглядів 1,2 тис.2 місяці тому
🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴 🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴 🔴 DARMOWY KURS: Od juniora do seniora lenkowski.net/senior/ 🔴 Koszty AWSa wciąż rosną, a serwery... w sumie nie są używane. No, ale jak już są, to przecież działać muszą! Jest na to rozwiązanie - i to dość skuteczne. AWS Lambda to rozwiązanie, które nie jest mocno popularn...
Pytania dla PHP junior developera. Jak wejść do IT?
Переглядів 1,8 тис.3 місяці тому
Pytania dla PHP junior developera. Jak wejść do IT?
ValueObject vs Dto - subtelna czy wielka różnica?
Переглядів 2 тис.3 місяці тому
ValueObject vs Dto - subtelna czy wielka różnica?
Interfejsy? Po co mi interfejsy? Czyli jak lepiej projektować kod?
Переглядів 1,8 тис.3 місяці тому
Interfejsy? Po co mi interfejsy? Czyli jak lepiej projektować kod?
Te soft skille zrobią z Ciebie lepszego programistę! feat. Anita Przybył.
Переглядів 5044 місяці тому
Te soft skille zrobią z Ciebie lepszego programistę! feat. Anita Przybył.
Refaktoryzacja w PHP - jak to zrobić to dobrze?
Переглядів 8844 місяці тому
Refaktoryzacja w PHP - jak to zrobić to dobrze?
Co poza kodem? Czego uczyć się poza składnią?
Переглядів 8174 місяці тому
Co poza kodem? Czego uczyć się poza składnią?
PHPStorm szybszy niż ChatGPT? Jak IDE może Ci pomóc?
Переглядів 1,4 тис.5 місяців тому
PHPStorm szybszy niż ChatGPT? Jak IDE może Ci pomóc?
Jestem Seniorem. Co teraz? Czyli jak zostać tech-leadem? Rozmawiam z Radosławem Maziarką.
Переглядів 4795 місяців тому
Jestem Seniorem. Co teraz? Czyli jak zostać tech-leadem? Rozmawiam z Radosławem Maziarką.
Jak znaleźć pracę w IT? O co chodzi z tymi testami? Czy certyfikaty zrobią ze mnie hardcore'a?
Переглядів 6305 місяців тому
Jak znaleźć pracę w IT? O co chodzi z tymi testami? Czy certyfikaty zrobią ze mnie hardcore'a?
Nowy PHP 8.4 i jak się nim pobawić? Sprawdź!
Переглядів 2,7 тис.5 місяців тому
Nowy PHP 8.4 i jak się nim pobawić? Sprawdź!
15 stereotypów o programistach - które są w 100% prawdziwe!
Переглядів 6045 місяців тому
15 stereotypów o programistach - które są w 100% prawdziwe!
PHPStorm w akcji: Przybornik Test Driven Developera
Переглядів 8666 місяців тому
PHPStorm w akcji: Przybornik Test Driven Developera
Sobótka i Aniserowicz o marce osobistej i rozwoju programisty!
Переглядів 1,8 тис.6 місяців тому
Sobótka i Aniserowicz o marce osobistej i rozwoju programisty!
Pierwszy krok do marki osobistej - czyli PHPCon! + KONKURS!
Переглядів 5736 місяців тому
Pierwszy krok do marki osobistej - czyli PHPCon! KONKURS!
Code, Love & PHP - relacja z PHPers Summit 2024!
Переглядів 1,5 тис.6 місяців тому
Code, Love & PHP - relacja z PHPers Summit 2024!
Czego nie zrobi za Ciebie framework - czyli struktura projektu w PHP
Переглядів 2 тис.7 місяців тому
Czego nie zrobi za Ciebie framework - czyli struktura projektu w PHP
Brudny jak Laravel. Największy grzech popularnego frameworka.
Переглядів 1,6 тис.7 місяців тому
Brudny jak Laravel. Największy grzech popularnego frameworka.
AI będzie patrzeć Ci na ręce! Programista reaguje na komputery od Microsoftu.
Переглядів 2 тис.7 місяців тому
AI będzie patrzeć Ci na ręce! Programista reaguje na komputery od Microsoftu.
Wzorce projektowe PHP w akcji. Fabryka na strategii!
Переглядів 1,2 тис.7 місяців тому
Wzorce projektowe PHP w akcji. Fabryka na strategii!
Strategia, czyli jak lepiej programować w PHP. Jak pisać czysty kod?
Переглядів 1,4 тис.8 місяців тому
Strategia, czyli jak lepiej programować w PHP. Jak pisać czysty kod?
Gangsterzy czystego kodu. Kto odkrył wzorce projektowe?
Переглядів 5628 місяців тому
Gangsterzy czystego kodu. Kto odkrył wzorce projektowe?
Test Driven Development w praktyce PHP
Переглядів 1,3 тис.8 місяців тому
Test Driven Development w praktyce PHP
Swoole czy Franken? Reverb to porażka? Mockery - why? Tata a Marcin powiedział #3
Переглядів 5378 місяців тому
Swoole czy Franken? Reverb to porażka? Mockery - why? Tata a Marcin powiedział #3
Testy w PEST. Czy TDD to zawsze najlepszy wybór?
Переглядів 6378 місяців тому
Testy w PEST. Czy TDD to zawsze najlepszy wybór?
❤
🔥
cytując klasyka odwrócona piramida testowa to scam!
😂 panie, kto to panu tak 🫢😂
Jak dla mnie niekoniecznie dobry, jak trzeba np. zrobić MVP w miesiąc, a nie ma się diagramów przepływu, encji itd. Projekt jak masz w fazie "projektowanie spontanicznie powstaje w trakcie implementacji" to nawet ciężko testy zaplanować. I ten MVP to jest dopiero faza eksperymentalnego projektowania, a potem dopiero można zaplanować testy, interfejsy itd. jak już się wie, jak to ostatecznie będzie wyglądać. Eksperymentalna implementacja -> Projekt -> TDD -> Refactor xD
Ok, zgoda! Pod warunkiem że idziesz faktycznie procesem który opisałeś a nie "Eksperymentalna implementacja -> L4 -> Wypowiedzenie" 😂
@@lenkowski-net XD
bardzo przydatne informacje. dzięki!
Następny odcinek prosimy GRASP vs SOLID myślę, że możesz sobie dużo przypomnieć, a widzów zaciekawić ;)
Ciekawa propozycja, ale rok 2025 to u mnie rok Test Driven Development 😅 Przynajmniej do startu kursu TDD: lenkowski.net/kurs-test-driven-development/
O kurde, był Pan u nas na serwisie Jeepem xD
Sprawdź instagrama @lenkowski_dev - jest i dowód owej wizyty 😂
Poproszę odcinek o 'pewnych sztuczkach'. Pozdrawiam :)
Hey! Co tam w materku?
CBSe Guarana - ulubiona ❤️
Komentarz dla zasięgu. Dziękuje Ci Marcin za zajebiste i wartościowe materiały!
Dzięki! Szczęśliwego nowego roku 🔥
Komentarz dla zasięgu i lecimy z oglądaniem! :)
Fajnie, że nagrywasz:)
Dzięki - z noworodkiem jest trochę trudniej, ale też damy radę 🔥
Błenos ajres! :D
Soy el Coronel Molares! 😆
Dla zasięgu :) Warto posłuchać, warto pamiętać o overfetchingu :)
Tak jest! ✌️
Komentarz dla zasięgu za super materiał :)
Dzięki za wsparcie! Doceniam ❤️
A mnie to zawsze szlag trafia z tymi interfejsami. Pół biedy jak mają tylko jedną implementację. Gorzej jak tych implementacji jest więcej, potem muszę szukać w yamlach jak to jest pokonfigurowane, w między czasie zapomnę to co czytałem przed chwilą, więc muszę się wrócić, odstawić sobie implementacje którą znalazłem na potem, przejść do tej implementacji, as tam znowu interfejsy xD.
Po co Ci interfejs z JEDNĄ implementacją? To już zupełny bezsens 🤪
Fajny temat, jak zawsze świetnie podany, ale ... ;) Od jakiegoś czasu nie podoba mi się tendencja "migającego" kodu. Jak dla mnie za szybko on znika. Możesz przemyśleć zmianę tego elementu prezentacji?
Tak, tutaj był to spory problem. W kilku innych filmach również. W nowych będzie lepiej 🔥 dzięki za feedback!
Ja z innej strony powiem, że ambitny zespół programistów utopił bardzo dobry i rokujący projekt, przez nadgorliwość w dobrych praktykach i innych aspektach kodu. Na siłę chcieli pokazać jak to potrafią "DDD", "CQRS", "mikroservice" i inne rzeczy, których nauczyli się na bardzo drogich kursach, wciskanych przez fajnych youtuberów, gdzie samo w sobie zadanie ich nie wymagało, bo projekt był relatywnie prosty. Także dla mnie junior, to także programista doświadczony, który idąc za trendami używa nieadekwatnych narzędzi do powierzonego mu zadania.
Dzięki za komentarz, bo to prawda - nie ma nic gorszego niż CV Driven Development! Mówiłem o tym wielokrotnie i będę powtarzał! Overengeenering jest tak samo zły jak premature optimization, czyli jeden z elementów tego tu STUPIDa 🫣
@@lenkowski-net I to jest zdrowe podejscię. Piona
Dobrze poruszony temat, czasem kod napisany jest w taki sposób, że na siłe wcisnięte wzorce robią tylko to, że dane przechodzą przez parę klas które robią to samo ale profesjonalnie wyglądają. Fajnie jak kod pięknie wygląda ale oprócz tego, że musi dobrze działać trzeba pamętać, że "code has to make money" więc zabieranie na siłę czasu żeby był piękny, często generuje straty. Umówmy się, nie wszyscy na co dzień piszemy programy kosmiczne i aplikacje bankowe.
@@tomekp7545zdaje się, że nawet w NASA czasem się o kod nie zadba, zapraszam do odcinka o TDD 😅
Dyskutowałem z Tobą jakieś 2 odcinki temu - miałem sporo zastrzeżeń co do tego w jaki sposób przedstawiałeś materiał. Teraz zaskoczyłeś mnie - całkiem pozytywnie. Nie był bym sobą gdybym się nie przyczepił. Moim zdaniem niektóre sekcje nawet za mało szczegółowo - kompletnie za krótki filmik do takiej tematyki - tu można by było siedzieć pół dnia i tłumaczyć różne aspekty. Na 10 min przekazać wszystko to challenge. Moim zdaniem w połowie elementów powinno być ze 2x więcej informacji - inaczej większość z tego można traktować jako ciekawostkę / szczątkową wiedzę. To co prawda tylko moja opinia i nie musisz na niej kompletnie bazować.
Doceniam feedback (w tym negatywny). Zastanawiałem się nad podzieleniem tego na osobne odcinki, być może to pomysł na następny rok 😅
Po co w każdej linii, na którą klikniesz, pokazują się data, godzina, twoje nazwisko i jakiś tekst?!
Bo gitblame prawdę Ci powie. W kodzie produkcyjnym to bardzo przydatne ☺️
Hej. Pytanie - czy są jakieś naprawdę dobre repozytoria, które mogą być "wzorcem architektury" z Sèvres? Chodzi o to jak naprawdę dobrze można zorganizować projekt w heksagonie albo w innej architekturze w PHP. Takie wzorcowe szkielety. Przydałby się też jakiś cheatsheet opisujący w prosty sposób te różnice.
Dzięki za sugestię, jak zrobię w końcu kurs heksagonu to te elementy napewno się tam znajdą. Na dzisiaj nie mam takich materiałów, choć github.com/CodelyTV/php-ddd-example wygląda bardzo inspirująco
Panowie świetny materiał, dzięki. Odnośnie pomysłu na odcinek z Deptrac'iem to myślę, że nie tylko ja bardzo chętnie bym go zobaczył na kanale :)
Zobaczymy co da się zrobić ☺️
Całkiem spoko się słuchało. Z chęcią bym również posłuchał o Deptracu, a także o tym, jak pracować z Dockerem na środowisku deweloperskim i produkcyjnym.
W planach mam odcinek o makefile na początek! Dzięki za sugestie - coś wymyślimy 🔥
Ten filmik to coś pięknego na YT
🙌
bardzo wartościowe 43minuty, super :)
Dzięki, Damian zrobił super robotę 🔥
@@lenkowski-net ty również 🙂
Chciałbym tylko nadmienić, że beginner tak czy siak musi (znaczy nie musi, ale na pewno zacznie..) zacząć od tego, bo nawet jeżeli założymy ułomność MVC i sprowadzimy go tylko do prostego podziału/ wydzielenia sekcji pracujących to tak naprawdę, jeżeli ktoś w ogóle nie rozumie konceptu rozdzielania aplikacji na poszczególne sekcje pracujące i logikę to dla niego dokładanie kolejnych trudności czy w ogóle przechodzenie od razu na microservices itd.. to jest strzał w kolano i tak jak szybko zaczął naukę tak szybko to zostawi. Sam koncept MVC ogarnąć nie jest prosto, gdy ktoś jeszcze niedawno klepał wizytówki firmy one-pageowe, bądź z 2 podstronami w pure html, css, js. Ale też film nie jest dla początkujących, natomiast jeżeli ktoś trafi na ten film to też niech ma na uwadze, że nauka ma swój bieg i pewne etapy trzeba przejść, przemęczyć się, ale zrozumieć, a dopiero potem szukać lepszych opcji, myślę, że warto to dodać, żeby ktoś kto tu wpadnie przypadkiem szukając coś o MVC nie zlękł się :D Zresztą pierwsze angulary chyba też były w MVC samym oparte.. jak dobrze pamiętam, także powoli do celu, na wszystko przyjdzie czas, a dużo firm tak czy siak nadal szuka ludzi ze znajomością MVC stricte, więc coś w tym jednak jest, może idealne nie jest, ale skoro popyt na rynku jest duży to chociaż warto od tego zacząć, żeby szybko wskoczyć w rynek i dopiero wtedy móc się edukować mając już stanowisko i możliwości lepsze rozwoju. Btw.. jak coś - nie znam się, od kilka lat ładnych nie kodziłem już, inna branża.
Singleton istnieje wyłącznie dlatego, że ludzie pisząc kod obiektowy chcieli mieć globalny stan. Nic w tym ciekawego do momentu, kiedy w normalnych językach jest to osiągalne praktycznie za darmo (C, C++, Rust), czy też w ogóle nie jest to zupełnie potrzebne (OCaml, Haskell, Lisp). Więc jeśli miałbym odpowiedzieć na to pytanie, powiedziałbym, że programowanie obiektowe to paradygmat, w którym bohatersko rozwiązuje się problemy nieznane w innych paradygmatach.
Hehe no, coś w tym może być 😅
Nie to żeby coś, ale wszystko jest dokładnie z Twoim kodem tak jak to zaprogramowałeś, to nie jest wina singletona. Równie dobrze, mogłeś napisać w dowolnym pliku "echo microtime(true);" I mieć problem, że z każdym uruchomieniem go, dostajesz różny wynik.
Tamten test służy zaprezentowaniu, że nasz singleton faktycznie działa. Tu się wszystko zgadza. Problem jednak pojawia się, gdy w innej usłudze chcemy pewne elementy (jak zapis do pliku) przykryć. Singleton użyty w ten sposób niestety mam na to nie pozwoli 🫣
@@lenkowski-net Chyba możemy się zgodzić co do tego, że się nie zgadzamy. Jakbyś sprecyzował tezę to było by mi prościej się odnieść, bo nie ukrywam że nie rozumiem tego zdania "Problem jednak pojawia się, gdy w innej usłudze chcemy pewne elementy (jak zapis do pliku) przykryć." Mogę się zgodzić (Co do nagrania), że owszem w wielowątkowych środowiskach może dojść przy takim kodzie do sytuacji, że istnieje więcej niż 1 instancja singletona, ale nie wynika to z samego rozumowania singletona i to czym jest, tylko z błędnej implementacji. Singleton ma zapewnić istnieje 1 instancji, więc skoro są więcej niż 1, to oznacza to, że został on źle zaimplementowany, a nie że to jest jego wada. Nie można mówić, że wadą singletona jest to, że może być więcej niż 1 instancja, gdy sam singleton mówi o tym, że by go tak nazywać musi istnieć maksymalnie 1 instancja. W wielowątkowych środowiskach wdrożenie tego wzorca jest po prostu trudniejsze, ale nie niemożliwe. Każdy z wzorców ma swoje wady i zalety, które wynikają z jego cech. Np. stosowanie fabryki powoduje, że ogólna złożoność kodu wzrasta, ponieważ wraz ze wzorcem wprowadzanych jest wiele nowych interfejsów i klas, a przecież można by było wszędzie sypać new MyClass() i nie ma tego problemu, to sobie nawymyślali jakieś fabryki... No i niby można się z tym zgodzić, ale czy jest to powód, żeby od razu skreślać wzorzec fabryki? Wydaje mi się, że nie, bo oprócz tego, minusu, który wynika z jej cech, są też plusy. Po prostu implementacja jest trudniejsza niż proste "new MyClass". Albo taki np. autowire czy tam incjection dependency. Każdy Mid i Senior powie, że spoko, bo ułatwia robotę, ale np. taki Junior, może nie ogarniać, skąd w metodzie kontrolera wzieły się te klasy, gdzie jest jakiś konstuktor, a IDE mu tak fajnie nie podpowie gdzie się one tworzą i zrozumienie tego, skąd metoda jest wywoływana jest na pewno trudniejsze, bo przecież można zrobić: "$service = new MyService(new MyOtherService(), new MyOtherService2())". Przecież z punktu widzenia jakiegoś Juniora, taki kod jest bardziej zrozumiały, chociaż pewnie Ty i ja uznamy, że no taki Kontener z DI to jest spoko rzecz, bo nie ma potem takich tasiemców na 10 linii jak jakieś klasy korzystają z innych klas, które korzystają z innych itd. Jak się pierwszy raz coś takiego na oczy widzi, to to jest czarna magia, więc jest to z pewnością jakiś minus, że zrozumienie tego jest trudniejsze, ale nie wydaje mi się, że jest to dostateczny powód, by z tego nie korzystać. Wdrożenie samemu tego jest z całą pewnością trudniejsze niż wywoływania "$service = new MyService(new MyOtherService(), new MyOtherService2())". I tak samo jest z Signletonem, ma swoje cechy z których wynikają plusy i też minusy, jeśli chcesz by singleton miał jedną instancję, w środowisku wielowątkowym, to nic nie stoi na przeszkodzie, żeby zaimplementować ten wzorzec z wykorzystaniem wzajemnego wykluczenia. W zasadzie nie ma takiego problemu, którego odpowiednia implementacja, nie rozwiązywała go, również z testami etc. Czy jest trudniej? No z całą pewnością, ale to jest dokładnie tak samo jak z fabryką, czy DI, czy w zasadzie jakimkolwiek wzorcem z którego można skorzystać. A czy łamie SOLID, to jest kwestia sporna, ale nawet przyjmując, że łamie, to co to zmienia, wydaje mi się, że dobry programista nigdy nie powinien zamykać się w takich ramach myślenia, że nie będę łamał SOLID, dlatego, że nie będę go łamał. Pachnie mi jakąś wiarą w idea dla samej idei. Jeśli czasem plusy przewyższają minusy, to nie widzę powodu dla którego kluczowo trzymać się zasad SOLID, tylko po to by się ich trzymać. Te idea są po to, żeby wnosić wartość dodatnią, a nie po to by były. Więc jeśli dzisiaj będę miał mały projekt, który będzie miał funkcjonować tylko przez N-dni to nie widzę, powodu, żeby np. nie złamać zasady DRY i chamsko na szybko przekopiować kod z jednego miejsca, do drugiego, niż na siłę marnować niepotrzebnie czas, tylko bo to by nie złamać zasady DRY i zmarnować X dni na to, żeby napisać co zgodnie z tą zasadą, pomimo, że nie przynosi to wymiernej korzyści, bo po N-dniach cały ten kod i tak będzie już nie miał wartości biznesowej.
tl;tr?
Więc podsumowując uważam, że jeśli istnieją realne korzyści z zastosowania Singletona, to powinno się z niego skorzystać, a zamykanie się w bańce "Nigdy nie korzystam z Singletona, bo...", jest według mnie dziwne, jeśli przez to zamknięcie spowoduje że będę miał o wiele więcej roboty, a nie będzie realnych korzyści. Taka sztuka dla sztuki.
@@karolkolanko594 dzięki za komentarz. Ja powiedziałem w filmie że: 1. Nie lubię Singletona (opinia) 2. Ma on rację bytu i czasem jest potrzebny (fakt) 3. DI over Global (opinia / fakt) I nie ma tam stwierdzenia które zacytowałeś w "cudzysłowiu"...
Dałem lajka👍 a będzie jeszcze jakiś odcinek o testach?
2025 rok to będzie rok testów na moim kanale, bo nadchodzi porządne szkolenie Test Driven Development 🔥 Duuuużo tego będzie 😎
@@lenkowski-netdla mnie się podoba 🙂
jak sie stosuje jedna zmienna do jednej metody (np getInstance()) to w ciele tej metody mozna ja zadeklarować: static $instance;
Tak, ale to nie wynika z klasy tylko ponownie ze stanu globalnego, co jest IMO jeszcze większym pogrążeniem w nicości 😅
THX! ;d
Milego oglądania 🍿
Z mojej perspektywy jak nie wiesz co robisz to dostaniesz rachunek to Ci się odechce serverlessa :D
Dlatego lepiej wiedzieć co się robi 😂 Ale lambda od EC2 potrafi w pierwszym okresie zaoszczędzić naprawdę sporo 👾
14:20 a nie wystarczy zaszyfrować env? (php artisan env:encrypt)
Nie, rozmiar pliku nadal będzie za duży
Vapor ma strasznie słabą dokumentację (przynajmniej miał rok temu i pewnie nic się nie zmieniło) - większość rzeczy trzeba czytać na GH, SO etc. Da się jakoś tam postawić Reverba?
Hmm, dla mnie dokumentacja nie tylko była kompletna, ale i support działał mega szybko. Korzystałeś z vapora faktycznie? Co do reverba. IMO WebSocket na PHP to ogólnie zły pomysł, ale nie wiem - z tego co rozumiem działanie serverlessa to nigdzie nie powinno się dać, bo to utrzymuje aplikację alive…
Ja i tak stawiam wszystko na polskim mikrus
Mikrus 🔥 Tylko nie wiem jak to by było z większym ruchem. To jednak serwery ćwiczebne 😅
Jak trzeba coś mocniejszego to Hetzner na którym to właśnie stoi Mikrus
AWS jest tak zryty w obsłudze, że nic dziwnego że powstają firmy/aplikacje jak Vapor żeby to ogarnąć. GCP przyjemniejsze ;)
Całkiem możliwe, AWS ma sporo opcji (czasem za dużo). Słyszałeś coś o wsparciu PHPa przez GCP FaaS?
@@lenkowski-net Google ma 3 produkty ciekawe z punktu widzenia PHP (i innych technologii). Jest Cloud Run Functions z obsługą PHP, drugi to App Engine - gotowy runtime z PHP, konfiguracja ogranicza się do dodania pliku yaml z wybraną wersją PHP i rodzajem maszyny która ma to odpalić. Jest też zwykły Cloud Run - tutaj mamy pełną dowolność, bo do projektu oprócz konfiguracji instancjim dorzucamy też Dockerfile który chcemy używać.
Dzięki za podzielenie się tym 🔥
Thx!
Fajny content! Na maxa przydałoby się jakieś mini repo, gdzie możnaby na spokojnie przejrzeć pliczek. Ja wiem, że może proszę o zbyt wiele, ale jak już i tak to kodzisz to pushnąć to do otwartego repo może byłoby jednak w zasięgu? ❤ "Bolom" oczy i "muzg" od oglądania tego tutaj z tymi przybliżeniami, przyspieszeniami itp. choć oczywiście wiem, że z pewnością robisz to i tak najlepiej jak się da, za co dziękuję 👍🏻🙂 taki tylko luźny pomysł 🙂
Dzięki za sugestię, faktycznie, ciągle zapominam o tym 😅
Kto jeszcze w tych czasach uczy sie PHP? Blagam... uczcie sie nextjs, shadcn i jakis CMS to Wam wystarczy, aby budowac strony internetowe i zarabiac niezle pieniadze. Rozmowy kwalifikacyjne juz sie nie sprawdzaja bo maja 300 CV na jedno miejsce. Nigdy nie bede na jednej z nich bo rekruterzy zyja w czasach sredniowiecza i pytaja o glupoty...
Po Twoim komentarzu widać, że jesteś na początku drogi. Jeśli chcesz robić, jak to napisałeś CMSy, to faktycznie, super robota dla początkujących. Gdy dojdziesz już do poziomu Enterprise, do domen, do architektury, zrozumiesz więcej. Teraz życzę ci powodzenia!
@@lenkowski-net nie chce robić CMSów jak wspomniałeś, ale jest to cos co każdy może się nauczyć w kilka dni i podpiąć pod stronę internetowa w nextjs, którą robi się również w kilka godzin(a nawet nie trzeba poświęcać czasu na klepanie kodu ponieważ wszystko jest gotowe i wystarczy wkleić do IDE). Akurat nie jestem początkujący, a jako Full Stack Developer mam spore doświadczenie, które nauczyło mnie, że rozmowy rekrutacyjne o prace to strata czasu bo nie każdy ma ochotę rozmawiać ciągle o tym samym - dlaczego chce Pan abyśmy Pana zatrudnili? Jakie są Pana słabe strony? Czym jest komponent w reakcie, kiedy używamy useState, a kiedy useEffect? Co to jest docker czy kubernetes? Takie oklepane pytania są niepotrzebne, ja tu jestem aby dostarczyć kod, a nie rozmawiać o podstawach. Rekruterzy tak sie rozbeztwili, a jak ja im zadałem pytania z prostego javascript to nie wiedzieli co odpowiedzieć hahaha Szaleństwo! Dziękuję za odpowiedz, fajny kanał, bede śledził poczynania :)
Chodzi mi o poszerzanie waszej perspektywy, jeśli uda mi się to zrobić - będzie sukces 🤩 Dzięki za komentarz!
Pozdro dla kumatych i zapraszam na lenkowski.net/senior/ 🔥🔥🔥
czyli senior to chat GPT, ok
😂
Rozeznam wątek Zettelkasten i Obsidian, bardzo mnie zaciekawił. Dzięki!
Tomek to świetny trener, więc te narzędzia być bardzo ciekawe 👀 Dzieki za miły komentarz 😎
@@lenkowski-net Ostatnio rozeznałem inne techniki nauki jak: przetwarzanie elaboracyjne i eseje Montaigne'a ☺
A moim zdaniem wzorce projektowe są przereklamowane i utrwalają złe nawyki. Np. polimorfizm jest wolny, dużo szybsze wyjdzie wykorzystanie po prostu instrukcji switch/case. Czy switch/case jest rzeczywiście mniej czytelny od wzorca strategii (wzorzec strategii wykorzystuje polimorfizm)? Z mojego doświadczenia wynika, że nie i mówię to jako były fan tego wzorca.
Dzięki za podzielenie się swoją opinią, ale… pokaż kod 😅 Oczywiście match jako wyrażenie może być często używane, ale z tym że to jest „wolniejsze” to w dobie dzisiejszego dostępu do hardware, nie przesadzałbym… Switch robiący z klasy 5000 linii to coś co często widuję, jeśli temat można „łatwo” ogarnąć, bez takiego zagmatwania to spoko 😎
@@lenkowski-net ależ proszę bardzo, autor Casey Muratori wyjaśnia także jak bardzo wolniejszy jest polimorfizm ua-cam.com/video/tD5NrevFtbU/v-deo.htmlsi=4bgrYqdJjZDbhZuu 5000 linii to gigantyczna liczba, ewidentnie coś poszło nie tak.
Dzięki że się podzieliłeś 🔥
Switch case nie jest otwarty na rozszerzanie. Dodanie nowego zachowania wymaga w przeciwieństwie do strategii edycji kodu w danym miejscu. Z reguły w większych projektach może być to problem. Trzeba zadać sobie pytanie czy w tym miejscu nie lepiej będzie to zrobić rozszerzalne. Nie zawsze oczywiście warto, ale jednak warto znać i umieć ;)
Przydal by sie strict type w clasach skoro używasz składni php > 7.0 (widze 8.3) + zgrupowanie parametrów funkcji/metod w VO/DTO ;). Mozna by bylo jeszcze dodac sniffer do dev w pakietach composeta i prosty make by np. odpalac ecs oraz testy na local docker ;). Można jeszcze dodac git hoock by z automatyzowac prace z git flow ;), itd, itp.
O panie, zawsze by się „coś przydało”. 😂
To jest nie kończąca się historia xD
@@adamwadokowski5565 dlatego planuję zrobić jeszcze odcinek o STUPIDzie :) z naciskiem na P jak Premature Optimization 😅 choć brak typowania to zuoooo 😂
Refaktor bez testow integracyjnych czy funkcjonalnych?. Widać ze sporo dłubaleś w legacy ;) "coz złego moze się stać" xD. Tak czy siak jak nie ma testów to za wsze sa one na czerwono xD. W tedy failuja pipeline CI/CD xD
Bez testów nie podchodź 😂 Zobacz sobie filmik o TDD 🔥
Kiedyś brałem udział w rekrutacji do jednego z polskich banków i jednym z zadań, jakie dostałem to rozpisanie algorytmu bubble sort w notatniku. Od razu podziękowałem i się rozłączyłem. 😂😂😂
Haha, szef mi opowiadał, że gdy zatrudniał w Indiach po 6 godzinach przyszedł do niego programista, któremu dał takie zadanie dla małych zbiorów danych i powiedział z dumą - skończyłem - Co skończyłeś? - no, to trudne zadanie z sortowaniem - a o sort() nie słyszałeś 😂
6:22 chyba raczej chodzi o Livewire. Inertia do frontendu używa bibliotek JavaScript jak Vue, React, Svelte
Livewire też. Chodziło tutaj o inne podejścia właśnie od strony SSR + CSR 😅
😂
Dziś senior to o wiele więcej niż programista, tym bardziej 1 języka. Docker, Kubernetes, CI/CD, AWS lub inne, MySQL/Postgres - wszystko na poziomie samodzielnego zarządzania. Do tego backend i frontend. Myślę że nawet największy fan PHP musi też popatrzeć w stronę Pythona. Takie czasy.
To prawda! A już napewno w stronę TypeScripta 🔥
Dobry żart z tym kubernetesem. Jestem rozchwytywanym seniorem tylko w jednej technologii i nie znam żadnej innej. Chyba, że mówimy o firmie SH-Januszex gdzie od deva wymaga się wszystkiego. To wtedy współczuję. :)
Myślę że nie chodzi tutaj o to żeby być seniorem we wszystkich tych technologiach, a o to, żeby przynajmniej otrzeć się o tego kubernetesa czy awsa - o bazach danych i CI/CD nie wspominając.
@@lenkowski-net ja się nie ocieram o inne rzeczy. pewnie dlatego, że pracuję tylko w firmach na tyle dobrze zorganizowanych, że każdą "warstwą" zajmują się inni ludzie. Bazy to wiadomo, ale na poziomie interfejsu. :) ale rozumiem, jeśli niektórzy chcą być/muszą być fullstackami i co tydzień muszą się aktualizować wiedzę z 40 różnych narzędzi. ;)
Moze trzeba było zainwestowac w certa symfony i odbyło by się bez takich fikołków ;)
😂
Ale chyba zapomniałeś o najważniejszym :) bo co, że ktoś nauczy się języka, solida, wzorców itd skoro nie będzie umieć programować? 😊 Wy uczycie w tych kursach wszystkiego oprócz tego, żeby napisać setki programów stopniowo zwiększać poziom tak samo jak w matematyce musisz przerobić setki przykładów tak samo tutaj i fakt język, solid, wzorce, czysta architektura ogólnie czysty kod! Są ważne ale zapominacie o najważniejszym ;)
Myślę że nikt o tym nie zapomina. Ja nie uczę tych, którym obiecuję się złote góry w 3 miesiące, a tych, którym zależy na rozwoju. Zapraszam na mój kanał, który prowadzę od ponad 2 lat. To nie jest kanał dla początkujących i takie treści chcę wam dawać 🔥
rel