>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
TypeScript

Jak przekształcić swój profil GitHub w ultimatywną kartę piłkarską

Większość profili GitHub wygląda tak samo. Nudna zielona siatka commitów, kilka standardowych badge'y pokazujących języki programowania i licznik wyświetleń prosto z połowy lat 2000. Kilka dni temu natknąłem się na projekt GitFut, który rozwiązuje ten problem w nieoczekiwany sposób. Przekształca aktywność dewelopera w pełnoprawną kartę gracza w stylu FIFA Ultimate Team z oceną do 99, pozycją na boisku i zestawem trofeów.

GitFut mascot

Autor projektu Younesfdj podszedł do tego jak skrupulatny analityk sportowy. Serwis nie bierze liczb z sufitu i nie prosi o wypełnianie ankiet. Uderza do GraphQL API GitHuba, pobiera historię konta i mapuje metryki na sześć atrybutów piłkarskich.

GitFut card GitFut card GitFut card

Sześć atrybutów i obliczanie pozycji

Zamiast zwykłych linii kodu, serwis ocenia Twój faktyczny wkład w open source i repozytoria robocze. Każdy atrybut piłkarski jest powiązany z konkretną akcją:

  • PAC (Tempo) jest obliczane na podstawie liczby commitów w ostatnim roku kalendarzowym. Im regularniej pushujesz kod, tym wyższe tempo.
  • SHO (Strzały) zależy od liczby gwiazdek zebranych przez Twoje repozytoria.
  • PAS (Podania) odzwierciedla pracę zespołową, łącząc wysłane pull requesty i liczbę obserwujących.
  • DRI (Drybling) pokazuje różnorodność języków programowania w Twoim portfolio.
  • DEF (Obrona) opiera się na liczbie przeprowadzonych przeglądów kodu i zamkniętych issue.
  • PHY (Kondycja) ocenia całkowitą objętość wkładu przez cały okres istnienia konta.

Podstawowe atrybuty mają twardy sufit na poziomie 88. Aby przedostać się do kategorii 90+ i zdobyć status Ikony, jeden udany rok nie wystarczy. Potrzebujesz lat konsekwentnej pracy i prawdziwego wpływu na społeczność.

Określanie pozycji działa w interesujący sposób. Algorytm patrzy na balans statystyk: deweloper skupiony na gwiazdkach i popularnych wydaniach trafia do ataku (pozycja ST lub RW), podczas gdy ktoś, kto lubi zamykać issue'y i robić przeglądy, staje się cofniętym rozgrywającym.

Bronze Silver Gold In-Form TOTY Icon

Ochrona przed spamem commitów

Głównym problemem każdego rankingu GitHub są boty spamujące i auto-commity. GitFut rozwiązał to matematycznie.

Cała roczna aktywność jest ważona za pomocą wzoru logarytmicznego:

yearScore = 4·log(commits) + 3·log(PRs) + 3·log(reviews) + 2·log(issues) + 2·log(private)

Logarytm szybko się nasyca. Jeśli skrypt generuje 20 000 commitów w pustym repozytorium, wniesie 17,2 punktu. Tymczasem prawdziwy deweloper z 800 commitami, 80 PR-ami, 80 przeglądami i 40 issue'ami w ciągu roku otrzyma 26 punktów. Zróżnicowana aktywność jest znacznie wyżej oceniana przez algorytm niż głupie nabijanie licznika.

Pokój trofeów i Złote Piłki

Jeśli karta przekroczyła próg 80 overall ratingu, profil staje się elegible dla nagród:

  1. Ballon d'Or. Przyznawany za rok kalendarzowy, który znacząco przekroczył Twoją średnią kariery. Musisz zgromadzić co najmniej 2000 wkładów i wykazać wynik 1,2 razy wyższy od mediany.
  2. WC Golden Ball. Przyznawany za skok produktywności podczas rzeczywistych Mistrzostw Świata (od 2010 do 2026). Wymagania są skromniejsze dla starszych turniejów, ponieważ w 2010 roku samo posiadanie commitów już wyróżniało konto.
  3. Golden Boot. Dynamiczne trofeum za obecną formę. Jest przyznawane pozycjom atakującym z oceną Strzałów wynoszącą 80 lub wyższą. Jeśli gwiazdki na świeżych repozytoriach spadną, but trafi do kogoś innego.
  4. World Cup Trophy. Specjalny puchar dla wszystkich deweloperów, którzy mają Hiszpanię wpisaną w swoim profilu (zwycięzca MŚ-2026 w ustawieniach serwisu).

Trofea na stronie profilu są wyświetlane za pomocą wstępnie wyrenderowanych sprite'ów (skrypt bake-award-sprites.ts), więc przeglądarka nie musi ładować ciężkiego silnika 3D.

Jak osadzić kartę na swoim profilu

Karta jest generowana w locie i dostarczana jako statyczny obraz. Wystarczy dodać jedną linię do Markdowna swojego profilu:

[![My GitFut card](https://gitfut.com/YOUR_USERNAME.png)](https://gitfut.com/YOUR_USERNAME)

Obraz jest cache'owany przez Redis i aktualizuje się w miarę pushowania kodu i zbierania przeglądów. Jeśli chcesz wymusić zmianę flagi kraju na karcie, możesz dodać parametr do URL: ?country=KZ lub ?country=RS.

Projekt ma kompaktowy stack: Next.js, TypeScript, Tailwind do stylowania i Redis do cache'owania odpowiedzi z GraphQL API.

Dla kogo jest ten projekt

GitFut prawdopodobnie nie pomoże Ci przejść surowej rozmowy kwalifikacyjnej w korporacji, ale to świetna alternatywa dla nudnych widgetów README. Projekt jest zrobiony z duszą, wzory uczciwie uwzględniają pracę zespołową, a system nagród dodaje emocji do regularnego zamykania pull requestów. Udaj się na stronę, wpisz swoją nazwę użytkownika i sprawdź, na jaką pozycję algorytm Cię wyśle.

Powiązane projekty