Wspólne modele dla dotnet i typescript

Trawa za płotem bardziej zielona

W Blazor’ze bardzo podoba mi się to, że brane są modele z dotnet (czy to api, czy to dowolna warstwa) i że każda zmiana na “backendzie” za darmo i od razu dostępna na “froncie”. Typescript ma fajne to, że można sobie silnie typować obiekty i że ten javascript jest takie ciut pewniejszy. Angular dla mnie mocno przypomina MVC więc z niego korzystam – ale! Jestem dobry w narzekanie; ale nie ma tego co ma blazor – a ja bym chciał. Bo takie przepisywanie modeli z dotnet na typescript to jest nudne, coś zmienisz, albo machniesz literówkę i trzeba szukać. Lubię też się wyręczać robotą kogoś innego 😉

google is your friend

Także poszukałem jak to ogarnąć. Co? No to, jak z klas w dotnet generować  klasy / kod do typescript, który można potem wykorzystać w projekcie na froncie.

Continue reading

Terraform jako generator haseł dla dotneta

Hasła, hasełka, dostępy, konekszon 🩳(mam tylko takie stringi w ikonach) i inne sekrety to (dla mnie) zawsze był koszmar, gdzie to trzymać, jak to zapisać, żeby działało – a żeby nikt się nie dowiedział, że hasło to:

Jak?! JAk?! JAK?!

Opowiem jak ja się z tym wszystkim oswoiłem przy pomocy

  • terraform
  • azure key vault
  • net core app settings

Z waszą pomocą powstaje ja, kapitan planeta 🌍 !

Continue reading

Autofixture

Dlaczego

Gdy testuje kod często / zawsze pojawia się potrzeba generowania jakichś danych, czasem mają one sens, czasem są zupełnie niepotrzebne z punktu widzenia testu, a jednocześnie wymagane przez kod.
Pojawiają się wtedy najczęściej zapisy “foo”, “bar”,”dupa”, “not-important”, “asdqweadasdf0923409” czy inne.
Zamiast takich wartości można mieć inne, jakie? Nie ważne! Co?! 😲

Gdy testujesz kod, to potrzebujesz zawsze sprawdzić, czy tekst to “jakiś_tekst” jest równy “jakiś_tekst”? Czy może po prostu jest taki jaki powinien być nie ważne, jaką będzie mieć wartość? (to samo tyczy się wartości liczbowych)

Skąd brać dane

Jarek, cwaniaku, to jak? Ano można przez pisanie tego inline w teście, co spowoduje, że testy osiągną rozmiary amerykańskie 😉 i będą duplikowane w każdy teście.
Można przez mother object pattern (nie ma sensownego linka, poszukajcie różnych opisów) – to taki wielki obiekt, który zajmuje się generowaniem takich danych.
Można przez: autofixture 👈😲👏

Continue reading

Jak wstrzykiwać zależności w azure functions

cloud

Czemu

Zanim opowiem jak, to chce się podzielić powodem dla którego to zrobiłem. Gdy pisałem kod, który cały mieścił się w jednym .csproj i mogłem go włączyć lokalnie i na spokojnie przedebugować (zaraz się zacznie) i upewnić że działa to było łatwiej. Kiedyś to było! Tutaj podszedłem do problemu inaczej; zrobię sobie funkcje które coś na szybko i na krótko zrobią, a potem cyk do kolejki, kolejne funkcja, cyk, kolejka, cyk cyk cyk i jest wynik. To jest ciekawa zabawa, ale cholernie trudna do utrzymania i do debugowania. Ja sobie nie ufam, dlatego też chce przetestować swój kod. Testowanie bez abstrakcji to zajęcie dla masochistów, lubię ostro, ale bez przesady.

Continue reading

Azurite – lekki storage emulator dla azure

Azure

Wiadomo, azure chmura ma dużo komputerów może robić co chce i tak będzie szybko. Ale gdy to samo robimy w domkach to już tak dobrze nie ma, wtedy dobrze jest mieć albo szybko komputer. Albo petrodolary, żeby wszystkie eksperymenty robić na chmurze. Albo zagryzać zęby i męczyć się z powolnym emulatorem chmury.

Ból

Otóż doprowadzało mnie do białej gorączki to, że domyślnie instalowany emulator azure (ten do storage) działa tak okrutnie, krwiście powoli. A dodatkowo często lubi coś tam sobie robić w tle. Przez co momentami procesor pocił się jak lokomotywa u Tuwima, ale efektów nie było.

Azurite

Continue reading