Posty

Wyświetlanie postów z marzec, 2021

Tokeny w Go

Innym językiem, którego się uczę jest Go (zwane przez wielu Golang, żeby łatwiej było można wyszukać w Google). No ale co można w nim robić? Backendy różne. Mikroserwisy i różne takie. No bo JavaScript mi się znudził (a już szczególnie frontend), więc uczę się czegoś, żeby się móc "przebranżowić" xD A Go ma tę zaletę, że faktycznie już firmy w tym piszą komercyjnie (a w Rust to może za 5 lat się rozkręci rynek), no i projekty w Go to też zwykle webówka, więc coś, co jest mi bliższe niż programowanie systemowe (nawet jak będą oferty z Rusta, to przypuszczalnie będą wymagać doświadczenia w programowaniu systemowym i trzeba będzie pewnie się szargać z C++ przy okazji. No chyba, że WebAssembly i zaskoczy i będą szukać programistów JavaScript/Rust, kto wie). Anyway, to się uczę tych webów w Go. I ostatnio postanowiłem się nauczyć generowania tokenów JWT(JSON web tokens). No ale tutaj miałem problem, nie chciało mi to działać w Go, więc spróbowałem to zrobić w Node (bo Node lep

Zardzewiała dziwność asynchroniczności

Uczę się o async/await w Rust. I to jest śmiesznie zrobione, że "futures" (rustowy odpowiednik promisów) się nie uruchamiają same! bo jak wywołasz funkcję asynchroniczną w JS, to ona zwraca promise i się uruchamia od razu. A w Rust tak nie ma! Nic się nie dzieje. Jak wywołasz funkcję asynchroniczną, to dostajesz "future" (tak jak w JS dostajesz "promise"), ale nic się nie uruchomi samo! No ale JS daje obietnice bez pokrycia, a Rust to język dla osób odpowiedzialnych, więc samemu trzeba zadbać o swoją przyszłość, tzn. o future. Samemu uruchamiasz w specjalny sposób, bo Rust ma być wydajnym językiem, a zrobienie tak, jak w JS, że gdzieś tam jest odgórnie ustalona pętla eventów, ktora odpala te promisy, byłoby narzutem wydajnościowym, na który nie wszyscy mogą sobie pozwolić. Jest o tym prezentacja Steve'a Klabnika: The Talk You've Been Await-ing for No i jest trochę zachodu w tym, żeby to zrobić w czystym Rust, więc powstały biblioteki takie