Co by si臋 sta艂o, gdyby kod frontendowy aplikacji mo偶na by艂o by generowa膰 lub pisa膰 w formie JSON?Przyk艂adowo, ka偶da podstrona aplikacji mog艂a by by膰 pobierana jako osobny plik konfiguracyjny, kt贸ry zostanie za艂adowany do kompilatora i z niego, odtworzone zostan膮 sekcje oraz logika.
Obecnie widoki robimy tak, 偶e pobieramy dane z serwera i czasem mapujemy je na widoki niemal 1:1, a czasem, po prostu wstawiamy je w ju偶 istniej膮ce komponenty.
Przyk艂adem mo偶e by膰 komponent tabelki.
Najprostsze rozwi膮zanie to tworzenie tabeli od nowa za ka偶dym razem, gdy chcemy mie膰 now膮 tabel臋. Nast臋pnie wrzucamy do niej naszego JSONa z danymi, 偶mudnie deklarujemy headersy i stylowanie p贸l.
Mo偶na p贸j艣膰 krok dalej i utworzy膰 reu偶ywaln膮 konfiguracj臋 tabelki na frontendzie, na przyk艂ad jako komponent przyjmuj膮cy jakie艣 propsy. Dzi臋ki temu tabelka wie, jak ma si臋 wyrenderowa膰.
Je艣li wrzucimy wszystkie dane potrzebne do utworzenia tabeli w JSONa, to tworz膮c now膮 tabel臋, po prostu zadeklarujemy jakie pola ma mie膰, a nie b臋dziemy si臋 m臋czy膰 jak ma ona renderowa膰 te pola. Troch臋 to pachnie podej艣ciem deklaratywnym.
Mo偶emy napisa膰 mini-kompilator, kt贸ry dostanie JSONa z danymi z backendu i prze艂o偶y go na nag艂贸wki, kolumny i wiersze.
Id膮c dalej, mo偶na by w ten spos贸b przesy艂a膰 informacje o sekcjach strony, formularzach czy panelach.
W wielu aspektach pracy u艂atwi艂o by to prac臋:
- Kod aplikacji mo偶na by przes艂a膰 z backendu. Dzi臋ki temu, nie trzeba by deployowa膰 frontendu by uzyska膰 zmiany wygl膮du.
- Mo偶na by zapisa膰 konkretny wygl膮d UI i nast臋pnie go odtworzy膰. Przydatne na przyk艂ad w konfiguratorach formularzy
- Odchodzi nam wiele powtarzalnej pracy (np. ze stylowaniem czy logik膮), poniewa偶 widoki b臋d膮 robione zawsze tak samo, w ustandaryzowany spos贸b. Tworz膮c now膮 tabelk臋, nie robimy jej od nowa, tylko oczekujemy konfiguracji z backendu, kt贸ry zostanie przetworzony przez wspomniany wcze艣niej konfigurator.
- Aplikacja wygl膮da zawsze sp贸jnie
- Team mo偶e by膰 podzielony na osoby kt贸re tworz膮 nowe widoki, oraz osoby utrzymuj膮ce kompilator
Jakie takie rozwi膮zanie ma wady?
- Wymaga utworzenia potencjalnie bardzo skomplikowanego kompilatora JSON > kod aplikacji, kt贸ry b臋dzie wyzwaniem dla teamu
- Ka偶da nowa funkcjonalno艣膰 b臋dzie wymaga艂a update kompilatora
- Pisanie konfiguracji jest znacznie nudniejszym zaj臋ciem ni偶 tworzenie aplikacji. Wymaga to innego podej艣cia od programist贸w oraz potencjalnie ograniczenia liczby funkcjonalno艣ci w stosunku do zwyk艂ego rozwi膮zania.
- Kod pisany jest "naoko艂o". Z serwera pobieramy JSON, z kt贸rego odtwarzamy wygl膮d aplikacji w HTML. W niekt贸rych rozwi膮zaniach, jak HTMX, mo偶na z serwera pobra膰 po prostu HTML z kawa艂kiem JS, co znacznie upraszcza kod.
Brak komentarzy:
Prze艣lij komentarz