Abstrakcja? Jak programują seniorzy? Sprawdź!

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ธ.ค. 2024

ความคิดเห็น • 40

  • @adrianzinko7133
    @adrianzinko7133 11 หลายเดือนก่อน +1

    Bardzo przyjemnie się słucha, opowiadasz z taką pasją, pełen profesjonalizm!

    • @lenkowski-net
      @lenkowski-net  11 หลายเดือนก่อน

      Dzięki Adrian, to bardzo miłe 😍

  • @praktycznewskazowki6733
    @praktycznewskazowki6733 11 หลายเดือนก่อน +2

    Fajny odcinek, dobrze prowadzony :) Będę zaglądał częściej pomimo że z PHP nie mam do czynienia a z Angularem to i tak wiedza jest ogólna, chcę więcej ! :D

    • @lenkowski-net
      @lenkowski-net  11 หลายเดือนก่อน

      Dzięki - daj znać o czym byś chętnie posłuchał 😎

  • @chesterman18g
    @chesterman18g 11 หลายเดือนก่อน +1

    Cześć, jestem kolegą po fachu ale siedzę w iOS native. Powiem Tobie, że też myślałem o zbudowaniu kursu.. ale nie mam tak pozytywnego vibe'u jak Ty. Bardzo przyjemny kurs i dobrze poprowadzony, merytorycznie. Powodzenia i trzymam kciuki :) !

    • @lenkowski-net
      @lenkowski-net  11 หลายเดือนก่อน +1

      Zdradzę Ci tajemnicę, popatrz na moje pierwsze filmiki 🫣
      Są serio straszne, a niektóre zostały nawet usunięte, bo się ich wstydziłem…
      To trochę jak z programowaniem - nie da się zacząć od SOLIDa, musisz napisać 💩-kod, a potem to jakoś wychodzi lepiej i lepiej!
      I tego Ci życzę! Bo jednym z największych moich błędów było czekanie na to aż będę wystarczająco dobry. To błąd. Nigdy nie będę 🤪
      Pochwal się co takiego chciałbyś umieścić w swoim kursie 🔥
      A jeśli chcesz parę porad o tym jak zacząć, to polecam też swój kurs startupu: lenkowski.net/produkt/kurs-startupu-dla-programistow/ bez tych narzędzi które tam opisałem, nie byłoby tego kanału 😅

    • @chesterman18g
      @chesterman18g 11 หลายเดือนก่อน +1

      dzięki @@lenkowski-net ! :) pomyślę o tym z tej perspektywy. może faktycznie powinienem zacząć od jakiegoś naprawdę małego MVP :D

    • @lenkowski-net
      @lenkowski-net  11 หลายเดือนก่อน

      ​@@chesterman18g polecam kanał na TH-cam - w końcu znaleźć wartościowych odbiorców - choćby takich jak Ty, wcale nie jest łatwo! :)

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

    Jak się patrzy na te pętle to aż się proszą o współbieżność której w php niestety brak...
    Wszystko super, tylko czy jest sens bindować tyle interfejsów? Jakby rozumiem OCP i rzeczywiście nie trzeba ruszać ich od środka dzięki temu, ale czy nie robi to nam na taką skalę scope creepu? Chyba nie widziałem pod koniec providera, wszystkie klasy zewnetrzne również zostały zbindowane?
    Niedawno gdzie indziej widziałem też wydzielenie funkcji z modeli do traitów: GetterTrait, RelationTrait, itd. wprowadza to pewien porzadek jak funkcji w modelu musi być dużo. Jednak czy trait nie powinien być też reużywalny? Co o tym myślisz?:)

    • @lenkowski-net
      @lenkowski-net  5 หลายเดือนก่อน +1

      Myślę że to opowieść na zupełnie inną historię 😉

  • @SzalonyEdek
    @SzalonyEdek 11 หลายเดือนก่อน +2

    Widać ze php się zmieniło od wersji 5 której używałem, ale te type hinty nadal zabawkowe, np przy zwracaniu array bez podania array czego, chociaż w php chyba różne typy mogły być jednocześnie w tablicy, co tez jest problematyczne

    • @lenkowski-net
      @lenkowski-net  11 หลายเดือนก่อน

      Zdecydowanie, przydało by się i to i typehint do callable

  • @piotr-nowak
    @piotr-nowak 11 หลายเดือนก่อน +1

    Fajne!

    • @lenkowski-net
      @lenkowski-net  11 หลายเดือนก่อน

      Dziękuję ❤️

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

    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.

    • @lenkowski-net
      @lenkowski-net  หลายเดือนก่อน +1

      O panie, zawsze by się „coś przydało”. 😂

    • @adamwadokowski5565
      @adamwadokowski5565 หลายเดือนก่อน +1

      To jest nie kończąca się historia xD

    • @lenkowski-net
      @lenkowski-net  หลายเดือนก่อน +1

      @@adamwadokowski5565 dlatego planuję zrobić jeszcze odcinek o STUPIDzie :) z naciskiem na P jak Premature Optimization 😅 choć brak typowania to zuoooo 😂

  • @gryg666
    @gryg666 11 หลายเดือนก่อน +3

    4:55 "Schludnie choć nasrane" ;)

    • @lenkowski-net
      @lenkowski-net  11 หลายเดือนก่อน

      😂 dokładnie

  • @ZLukasz100
    @ZLukasz100 11 หลายเดือนก่อน +1

    Bardzo fajnie opowiedziane. :) "Jak programują seniorzy?" ? Piszą testy :P A tak na poważnie, mam pytanie, bo twój kod jest trochę nie zgodny z PSR. Dokładnie mam na myśli nazwy Interfejsów. (abstractClass, ClassInterface, ClassTriat)
    Jakie masz zdanie na temat konwencji nazewnictwa ? Sposób który pokazałeś dla mnie jest osobiście jak najbardziej w porządku i sam często korzystam z niego choć nie jest zgodny z PSR. Również często widzie, że duże frameworki również odchodzą z stosowania konwencji z PSR na taką jak ty pokazałeś.

    • @lenkowski-net
      @lenkowski-net  11 หลายเดือนก่อน +1

      Tutaj testy nie były pokazane… choć były w tle 😅
      Co do tych nazw, nie mam zdania. Często stosowałem konwencje z pistfixem Contract, ale czy tego potrzebujemy? To zależy.
      Moim zdaniem PSR to źródło prawdy, ale zasady są również po to, by je świadomie łamać, jeśli tego potrzebujemy.

    • @lenkowski-net
      @lenkowski-net  11 หลายเดือนก่อน +1

      A no i warto jeszcze dodać, że tutaj jest to zrobione celowo - bo mowa przecież o abstrakcji, a więc także chowaniu rzeczy za interfejsem… który nie musi jawnie mówić o sobie „interfesjs”

  • @mariuszszot583
    @mariuszszot583 11 หลายเดือนก่อน +2

    fajny przykład. ja bym funkcje prywatne już wyciągał w samym kontrolerze i potem z nich zrobił usługi. dlaczego ten przykład nie ma testów jednostkowych? przecież łatwiej jest refaktoryzować jak się ma bezpośredni feedback z testów

    • @lenkowski-net
      @lenkowski-net  11 หลายเดือนก่อน +1

      Magia ekranu 😅
      Testy oczywiście były… ale istnieje coś takiego jak przeładowanie kognitywne. Dla Ciebie to by było proste, dla innych mogło by być trudniejsze…
      Nie refaktoryzowałbym tego na złej warstwie. Jeśli ktoś ma decydować o użyciu tej czy innej implementacji szczegółu, to jednak usługa, nie kontroler. Na tym polega właśnie abstrakcja 😉

    • @mariuszszot583
      @mariuszszot583 11 หลายเดือนก่อน +1

      @@lenkowski-net nie ma warstwy złej czy dobrej i polemizowałbym w tym wypadku na czym polega abstrakcja. nie ma większego znaczenia w sumie czy ja sobie wszystko wytnę w kontrolerze, czy w usłudze jeśli wiem co robię. jedno jest pewne. gruby kontroler to zło

    • @lenkowski-net
      @lenkowski-net  11 หลายเดือนก่อน +1

      To prawda. Ja wolę nie w kontrolerze, z powodów z których powiedziałem. Ale to nie jest 0:1 i zależy… więc moim zdaniem obaj mamy rację. Cheers!

  • @radekz8674
    @radekz8674 11 หลายเดือนก่อน +1

    Fajny materiał, Czy masz albo możesz zrobić lub polecić kurs o wzorcach projektowych w PHP?

    • @lenkowski-net
      @lenkowski-net  11 หลายเดือนก่อน

      Mogę polecić kurs SOLIDa, który właśnie uruchomiłem. Jest tam mowa o wzorcach, np. strategii
      Dobre materiały o wzorcach projektowych znajdziesz na refactoring.guru

  • @mariuszczyewski8182
    @mariuszczyewski8182 11 หลายเดือนก่อน +1

    Co sadzisz o Yii2 PHP-Framework?

    • @lenkowski-net
      @lenkowski-net  11 หลายเดือนก่อน

      Mam swoich faworytów, jak Laravel czy Symfony, ale framework jak framework…
      Jeśli piszesz zgodnie z SOLIDem i tworzysz kod który ma mały poziom couplingu, to można to robić też bez frameworka…
      Yii2 to rozwiązanie z którym pracowałem przez kilka minut, więc nie znam szczegółowych „mankamentów”

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

      pracowałem z Yii2. korzysta z Active Record co samo z siebie nie jest zgodne z SOLID. jak nie masz wyjścia to pracujesz z tym co masz. można trochę zdecouplować ten kod. framework jest tylko nardzędziem

    • @lenkowski-net
      @lenkowski-net  11 หลายเดือนก่อน

      @@mariuszszot583 Laravel ma ten sam problem… proste, ok, ale coupling na framework jest spory…

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

      @@lenkowski-net zależnie od zaawansowania zespołu można próbować różnych podejść. moja preferowana opcja to wyciągnąć framework jako narzędzie do obsługi wejścia i wyjścia na zewnątrz i wrzucenie logiki biznesowej i modelu domeny na przykład w architekturę cebuli. podmiana frameworka albo podbicie wersji i jej testowanie staje się w ten sposób prostsze. a usunięcie starej wersji albo starego frameworka jest właściwie formalnością kiedy wszystko działa. framework webowy to tylko detal implementacyjny obsługujący request i zwracający response

  • @marcinradecki6160
    @marcinradecki6160 11 หลายเดือนก่อน +5

    Dobry materiał w większości się zgadzam, wyniesienie logiki na zewnątrz controllera na plus, rozbicie na metody na plus, lecz wszystko na osobne klasy.. hmm z tym mam zawsze pewne obawy. Ilość plików do utrzymania rośnie gigantycznie przy zlożonych aplikacjach a jak widać te klasy będą jak funkcje, kilkulinijkowe użyte tylko raz w jednym miejscu. Ja obecnie rozbijam na osobne klasy tylko w przypadku użycia tego samego kodu w kilku miejscach by sie nie dublować.

    • @lenkowski-net
      @lenkowski-net  11 หลายเดือนก่อน +2

      Zdradzę Ci tajemnicę, to było celowo, bo następny film będzie o architekturze pipes and filters 🔥
      Natomiast masz mądre obawy, bo jak to w IT bywa - to zależy 😅

  • @adamwadokowski5565
    @adamwadokowski5565 หลายเดือนก่อน +1

    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

    • @lenkowski-net
      @lenkowski-net  หลายเดือนก่อน +1

      Bez testów nie podchodź 😂
      Zobacz sobie filmik o TDD 🔥

  • @PiotrJarolewski
    @PiotrJarolewski 11 หลายเดือนก่อน +1

    Wiesio rządzi :)

    • @lenkowski-net
      @lenkowski-net  11 หลายเดือนก่อน +1

      Panie, my ze szfagrem to takie kody piszemy... xD