Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tablice zostawmy Mojżeszowi

Konrad Alfaro
June 25, 2022
290

Tablice zostawmy Mojżeszowi

Czy dobrze jest używać tablic? To nie jest tak, że dobrze, albo nie dobrze. Gdybym miał, powiedzieć co cenię w tablicach najbardziej, to… No właśnie. W mojej prezentacji pochylę się nad tym, gdzie warto jeszcze używać tablic, gdzie już ich lepiej nie używać i co stosować w zamian. Omówimy sobie pomocne biblioteki oraz metody eksterminacji tablic z miejsc w których, inne struktury danych poradzą sobie o wiele lepiej.

Konrad Alfaro

June 25, 2022
Tweet

Transcript

  1. Konrad Alfaro @ PHPers Summit 2022
    Tablice zostawmy Mojżeszowi
    Czyli jak pozbyć się zbędnych array z naszego kodu

    View full-size slide

  2. Konrad Alfaro
    8 lat doświadczenia z Backendem
    Programista PHP
    🐘
    Konsultant / Architekt
    Software House 8lines

    View full-size slide

  3. ~ Nauczyciele & początkujący z PHPem
    “Tablice są super”

    View full-size slide

  4. Ale z ważniejszych rzeczy
    • Tablice są niespójną strukturą danych

    • Brak Type-safety

    • Brak error-handlingu

    • Słaby performance

    View full-size slide

  5. Problem 1
    Wykorzystywanie jako kolekcje/listy/mapy

    View full-size slide

  6. Home i Work mają ewidentnie
    coś ze sobą wspólnego

    View full-size slide

  7. Nie wiemy czy to wszystkie
    parametry tej struktury

    View full-size slide

  8. Float? A może string? “lat”? A
    może “latitude”

    View full-size slide

  9. Elementy “visits” są bez
    kluczy?

    View full-size slide

  10. “usr”? Typo? Obiekt? ID?

    View full-size slide

  11. Czas to timestamp? A może
    Dateime?

    View full-size slide

  12. Co z takim tworem zrobić?

    View full-size slide

  13. Obiekty na ratunek

    View full-size slide

  14. To zależy
    ~ każdy konsultant

    View full-size slide

  15. Variadic parameters to the
    rescue 👨🚒

    View full-size slide

  16. Generatory, iteratory,

    taka sytuacja

    View full-size slide

  17. IteratorAggregate

    View full-size slide

  18. 3x
    Mniejsze zużycie pamięci

    View full-size slide

  19. Łatwiejsze operacje

    View full-size slide

  20. Co jeśli chcielibyśmy


    zliczyć wybrane obiekty?

    View full-size slide

  21. Co z innymi funkcjami?

    View full-size slide

  22. Logika biznesowa?

    View full-size slide

  23. Czyli takie trochę kolekcje
    Doctrine?

    View full-size slide

  24. Lek na całe zło?

    View full-size slide

  25. ✅ Silne typowanie

    ✅ Tablice jako szczegół implementacyjny

    ✅ Czytelniejszy kod

    ✅ Łatwiejsza implementacja np. logiki biznesowej

    View full-size slide

  26. Problem 2
    Wykorzystywanie do struktur danych

    View full-size slide

  27. Tak
    To kod z produkcyjnego repozytorium

    View full-size slide

  28. Problem 3
    Wykorzystywanie do transportu danych

    View full-size slide

  29. Ale najpierw… obiekty 🥰

    View full-size slide

  30. Posłuchajmy teraz Symfonii ♪

    View full-size slide

  31. One more thing…

    View full-size slide

  32. ✅ Obiekty na wczesnym etapie interakcji z danymi

    ✅ Walidacja danych

    View full-size slide

  33. Problem 3
    Wykorzystanie przy przetwarzaniu danych

    View full-size slide

  34. ETL
    Extract - Transform - Load

    View full-size slide

  35. Dzięki! 🎉
    twitter.com/RadnoK_
    8lines.io
    linkedin.com/alfaro.konrad

    View full-size slide