Abstrakcja? Jak programują seniorzy? Sprawdź!

Поділитися
Вставка
  • Опубліковано 5 січ 2025

КОМЕНТАРІ •

  • @adrianzinko7133
    @adrianzinko7133 Рік тому +1

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

  • @piotr-nowak
    @piotr-nowak 11 місяців тому +1

    Fajne!

  • @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

  • @praktycznewskazowki6733
    @praktycznewskazowki6733 Рік тому +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  Рік тому

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

  • @adamwadokowski5565
    @adamwadokowski5565 2 місяці тому

    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  2 місяці тому +1

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

    • @adamwadokowski5565
      @adamwadokowski5565 2 місяці тому +1

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

    • @lenkowski-net
      @lenkowski-net  2 місяці тому +1

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

  • @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ę 😉

  • @gryg666
    @gryg666 Рік тому +3

    4:55 "Schludnie choć nasrane" ;)

  • @mariuszszot583
    @mariuszszot583 Рік тому +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  Рік тому +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 Рік тому +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  Рік тому +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!

  • @JanKowalski-io1sr
    @JanKowalski-io1sr 7 днів тому

    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.

    • @lenkowski-net
      @lenkowski-net  7 днів тому

      Po co Ci interfejs z JEDNĄ implementacją? To już zupełny bezsens 🤪

  • @chesterman18g
    @chesterman18g Рік тому +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  Рік тому +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 Рік тому +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  Рік тому

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

  • @mariuszczyewski8182
    @mariuszczyewski8182 Рік тому +1

    Co sadzisz o Yii2 PHP-Framework?

    • @lenkowski-net
      @lenkowski-net  Рік тому

      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 Рік тому

      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  Рік тому

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

    • @mariuszszot583
      @mariuszszot583 Рік тому

      @@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

  • @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”

  • @radekz8674
    @radekz8674 Рік тому +1

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

    • @lenkowski-net
      @lenkowski-net  Рік тому

      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

  • @marcinradecki6160
    @marcinradecki6160 Рік тому +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  Рік тому +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 2 місяці тому +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  2 місяці тому +1

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

  • @PiotrJarolewski
    @PiotrJarolewski Рік тому +1

    Wiesio rządzi :)

    • @lenkowski-net
      @lenkowski-net  Рік тому +1

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