Zapraszam wszystkich czytelników mojego bloga, newslettera i subskrybentów youtubowych itp, na publiczne budowanie projektu backendowego od podstaw, którego założenia brzmią może i prosto, ale rzeczywistość bywa skomplikowana.

Od czasu do czasu publikuję na moim blogu (i w innych miejscach) zestawienia linków, ale mam planie wznieść je na wyższy poziom. Aby to zrobić, przyda mi Event Storming, język programowania Rust, baza danych CockroachDB i zabawa w architekta oprogramowania. Ty też możesz wziąć w tym udział na moich transmisjach live.

 

Co to jest i po co mi to?

System śledzenia linków, to aplikacja backendowa, która działa jako serwer HTTP, który przekierowuje do właściwych adresów na podstawie unikalnych kodów, które otrzymuje w URI. Najprościej zasadę działania wytłumaczyć w sposób następujący: wchodząc na linka postaci https://devopsiarz.link/abcde dostajesz przekierowanie na link docelowy, np: google.com. Tyle dzieje się po stronie końcowego użytkownika, który klika w link, np. w moim zestawieniu.

Jednak po stronie backendowej dzieje się znacznie więcej, tzn. według mojej oryginalnej koncepcji powinno się dziać. Chcę zatem wiedzieć, w jakie linki klikacie, więc muszę to zliczać. Czyli jeśli https://devopsiarz.link/abcde, które prowadzi do google.com ma klików 100, a przykładowo https://devopsiarz.link/12345 prowadzące pod adres bing.com ma klików 5, to oznacza, że bardziej zależy Wam na linkach do stron typu google.com lub podobnych, aniżeli bing.com. Można pomyśleć, no banał, ale… no właśnie, nie będę tu spoilerował przedwcześnie!

To w wielkim skrócie, można to pomylić ze skracaczem linków, ale skraczacz linków to tylko marny wycinek funkcjonalności takiego systemu. Dlaczego? Tego nie zdradzę teraz, ale pokażę na pierwszym live na YouTube, generalnie aplikacja wydaje się prosta, ale taką nie jest.

 

Jakie są plany?

Na pierwszym live na YouTube mam w planie opowiedzieć dlaczego ten system, dlaczego akurat Rust i CockroachDB oraz jak ten system powinien działać (według mnie, może błędnie?). Pokażę Wam również jak przygotowuję zestawienia linków i w jaki sposób chcę sobie pomóc tym systemem, bo to nie chodzi tylko o głupią zamianę linków, co to to nie. Mogę jedynie obiecać, że nie ma w planie Dockera, Kubernetesa i innych magicznych krain na dzień dobry - zaczniemy powolutki i może kiedyś rozważymy te technologie, ale na pewno nie na początku działania projektu.

Do tego celu chcę na żywo wykorzystać metodykę Event Storming, która łopatologicznym językiem (nie takim programistycznym) odkryje funkcjonalności tego systemu krok po kroku, jak i potencjalne problemy, które mogą się pojawić.

Zobaczycie więc, dlaczego wiele projektów programistycznych ma dziś spore problemy - m.in. przez brak przejścia przez taką metodykę modelowania architektury na samym początku. Oczywiście, jak uda mi się pod Waszym czujnym okiem taką aplikację wreszcie napisać (podejrzewam, że potrzebne będzie na to >5 transmisji live na YT), to trzeba będzie jakiś deploy zrobić, a więc o działce DevOps też nie zapomnę. Czyli zrobimy wszystko od A do Z.

Ci, którzy brali udział w sesjach Event Storming zapewne wiedzą, że wymagają one odpowiednich ludzi - biznesu, programistów, testerów itp. U mnie nie będzie biznesu ani testerów, ale możecie być Wy na żywo i zarówno proponować funkcjonalność jak i znajdować błędy w aktualnym modelu aplikacji. Nie tylko możecie, ale będzie to wręcz wskazane. Aby Wam trochę utrudnić zadanie, to dodatkowo, po roku prowadzenia kanału na YouTube objawię się Wam w mojej kamerze. ;-)

To tyle na wstępie, nie będzie więcej spojlerów - zapraszam na live na środę na godz. 20:00