Posty

Wyświetlanie postów z luty, 2023

mikroserwisy - wstęp

Pogadamy teraz o architekturze na backendzie. Konkretnie o mikroserwisach. Na czym polegają mikroserwisy? Otóż na tym, że zamiast mieć jedną monolityczną apkę, ma się wiele różnych małych mikroapek. Jednak modularność to nie wszystko. Bo przecież apki mogą być podzielone na moduły i nie będzie się nazywać tego mikroserwisami. Jednak mikroserwisy biorą ideę modularności dalej, aż do Księżyca. Takie mikroserwisy mogą być na różnych serwerach (prawdziwych albo wirtualnych) i wszystko mają osobno. W monolitycznej apce jest jedna baza, to tutaj każdy mikroserwis może mieć swoją osobną bazę i osobne wszystko. Totalna izolacja. Mogą być pisane nawet w innych językach programowania. Tylko to rodzi problem komunikacji między mikroserwisami. Zamiast wywoływać funkcję, to trzeba się komunikować przez sieć z innymi mikroserwisami. Czyli wszystko musi być jakoś serializowane. Można przesyłać dane np. za pomocą REST i JSON, ale np. można też użyć gRPC, czyli taki binarny sposób przesyłania da

Jak zaprojektować apkę SPA w React? (1)

Kilka luźnych tipów (chcę je później zebrać w coś bardziej zorganizowanego, na razie tak tylko sobie piszę). kartka twoim przyjacielem. Jak chcesz, to możesz korzystać z apek do diagramów (będzie łatwiej się podzielić z innymi), anyway chodzi o to, żeby sobie rozrysować to wizualnie, co będziesz mieć w tej apce, jak będzie się to wszystko ze sobą wiązać i komunikować. pomyśl o rodzajach danych. - nie wiem, czy to dobre słowo, bo nie chodzi mi o typy danych. Napisałbym struktury danych, ale też nie chodzi mi o struktury danych typu drzewko, graf. Bardziej o to, jakie obiekty dziedzinowe będziesz mieć w apce reprezentowane przez jakieś obiekty. Np. w apce todo list możesz mieć: Task - pojedyncze zadanie z polami `text` czy `isDone` TaskList - lista tych zadań FilterCryteria - czyli które zadania mają być wyświetlane Project - np. "Zrobienie zakupów" to może być projekt, z zadaniami typu "kup mleko", "kup mięso" Niektóre z

Fajerwerki, które uczą

Robię projekt w Rust. Będą fajerwerki, mówię mam. Dosłownie. To są fajerwerki. Pisane w Rust, skompilowane do WebAssembly i przez JSa przesyłane do WebGLa. I się renderują. Później powrzucam screeny, na razie musicie mi uwierzyć. Anyway, czego się nauczyłem do tej pory tworząc ten projekt? iteratory w Rust mogą być szybsze od zwykłej pętli iterującej po liczbie i . Ogólnie miałem taki problem, że iterując jednocześnie po dwóch tablicach (iteracja po i i odniesienie się do elementów z dwóch tablic o tym indeksie), wydajność takiego kodu była taka sama jak wydajność analogicznego kodu w JS. Jednak jak poszedłem po rozum do głowy i użyłem iter() oraz zip() żeby połączyć dwa iteratory, nagle zaczęło być szybciej. Okazuje się, że iteratory w Rust są tanie w użyciu. bindingi wasm-bindgen potrafią wyeksportować struktury z Rusta jako klasy JS. Więc można od strony JS po prostu robić new Foo i się utworzy instancja klasy z metodami. To jest nowe dla mnie, bo mogę utworzyć taką klasę i