PHP na ratunek — o generowaniu dużych plików bez gotowania przeglądarki

Frontend czy backend do generowania CSV?
Ostatnio stanęłam przed klasycznym dylematem: wygoda JavaScriptu kontra odpowiedzialność backendu w PHP - z dużymi plikami, strumieniowaniem, pamięcią i realnymi konsekwencjami dla użytkownika.

Jeśli interesują Cię techniczne decyzje, trade-offy i rozwój (nie tylko w kodzie), to zapraszam do lektury całego wpisu

#programowanie #naukaprogramowania #javascript #php #frontend #backend

Substack

Komentarze (16)

roadie

Dziwna sprawa ale na chromie na komurze stronka się wywala. Na brave działa normalnie

77d8589f-012e-4494-9a77-a109f185a6ba
TheCommitLine

@roadie dziękuję za info, faktycznie dziwne!

SquashFS

@roadie bo właśnie generuje CSV na backendzie i całe zasoby serwera się teraz tym zajmują

eloyard

@NiebieskiSzpadelNihilizmu tak, dokładnie! To właśnie było moje doświadczenie z PHP ze starych czasów, kiedy okazało się, że trzeba coś zrobić z UTF-8 w wielu językach i alfabetach ( ͡~ ͜ʖ ͡°)

kodyak

Oczywscie że backend. Koniec

ataxbras

@TheCommitLine Przeczytałem - brakuje rozważenia, czy komu na pliku bardziej zależy :D. Z zasady, jeśli da się coś offload na klienta, to lepiej, niż płacić za czas swojego serwera. Po to są workery, idleframe i tym podobne, by nie zjadało to wiele.
Można też bardziej nieszablonowo i chyba najszybciej - stored procedure w bazie i tylko download obsłużony z PHP.
Co do samego PHP - nie dotknę tego już nigdy, bo mam uraz, choć słyszałem, że to już nie jest jak strzelanie sobie w stopę. Do takiego tasku wybrałbym Rust lub Python.

groman43

@TheCommitLine Szczerze, fajne ale nie rób więcej. Poza oczywistymi oczywistościami nic innego nie wnosi.

HmmJakiWybracNick

@TheCommitLine
Na backendzie.
Wyjątkiem byłoby, jeżeli masz pewność, że zawsze danych będzie niewiele i masz je już pobrane na frontend.
Pewnie warto wziąć jeszcze pod uwagę jak w aplikacji już jest zrobione to w innych miejscach. Jak jest wszystko na frontendzie, to autora, który to zapoczątkował trzeba opierdolić, zrobić refactor i robić poprawnie na backendzie xd

16fe3bb8-0190-4d80-9a53-e56796083e67
grzymislaw-mocowladny

Jestem laikiem programowania, aczkolwiek swego czasu popełniłem kilka CMSów, apek (obługa AD) etc. I powiem tak: dla mnie złotym środkiem był AJAX, ale zawsze tam gdzie zachodziła potrzeba generowania czegokolwiek wolałem PHP. Mało tego, od samego początku system plików dla mnie nie istniał - zawsze jakaś DB.

A więc wyplułbym to po stronie "serwera" i pobrał do lokala

kontrabanda

Tak w temacie – my akurat na swoim przykładzie wyszukiwarki RSSów w BIPach korzystamy z Go (po stronie backendu), jeżeli chodzi o generowanie plików CSV prezentujących zestawienie danych aktualnych na dany dzień. Sam w sobie takiego typu proces nie powinien za bardzo obciążać serwera.

Frontend jest tylko odpowiedzialny za „ładne opakowanie” przekazanych przez backend danych.

pierdonauta_kosmolony

Oczywiście że frątęd. Jeszcze jakąś kopareczkę krypto klientowi odpalić, jakieś ciasteczka i robaki śledzące, reklamy kasyn online i scam linki. Wtedy backend sam się sfinansuje.

AureliaNova

Chryste Panie, wyobraziłem sobie generowanie pliku na dużej ilości danych na froncie i chyba nie zasnę O.o Dobrze, że chociaż nie w CSS.

Zaloguj się aby komentować