VulCode

Python: co w nim budujemy i dlaczego

Python to nasz język do botów Discord, skryptów operacyjnych, monitoringu i synchronizacji danych: wszędzie tam, gdzie liczy się szybkie napisanie i łatwe poprawianie.

Python na prawdziwych zrzutach

Projekty z tej strony na ekranach z portfolio i case studies, każdy z krótkim opisem i drogą do pełnego.

Kiedy Python, a kiedy coś innego

Technologia ma pasować do miejsca, w którym kod będzie działał, i do zespołu, który go przejmie. Ostateczny wybór zapada przy wycenie, razem z Tobą.

Wybieramy Python

Boty Discord

Bot VulCode stoi na discord.py i aiohttp, a zrzuty i sprawdzanie stron robi przez Playwright. Nową komendę dopisuje się i wdraża bez kompilacji.

Skrypty operacyjne

Diagnostyka i porządki w infrastrukturze to skrypty w Pythonie. Interpreter jest na każdym Linuksie, więc skrypt działa od razu po skopiowaniu na serwer.

Monitoring z alertami

Monitoring na FastAPI sprawdza usługi i wysyła alerty na Discorda. FastAPI opisuje API typami, z których od razu powstaje dokumentacja.

Usługi bez zależności

webhook-proxy zbiera webhooki Discorda pod jednym adresem i trzyma osobną kolejkę dla każdego, żeby zapchany kanał alertów nie blokował powiadomień o płatnościach. Działa na samej bibliotece standardowej, bez pip.

Synchronizacja między usługami

Wpisy z Discorda trafiają na stronę DualFroz krótkim skryptem synchronizacji. Kod, który łączy dwa API, w Pythonie pisze się i poprawia najszybciej.

Sprawy załatwiane na Discordzie

mailcheck obsługuje konta z poziomu Discorda, z listą blokad i statystykami. Zespół załatwia drobne sprawy na czacie, bez osobnego panelu.

Wybieramy coś innego

Interfejs w przeglądarce

Panele i strony piszemy w TypeScripcie i React. Python może wystawić API dla takiego panelu, ale jego ekranów w Pythonie nie budujemy.

Usługa z bardzo dużym ruchem

CPython domyślnie wykonuje kod Pythona na jednym rdzeniu naraz z powodu GIL. Usługę, która ma obsłużyć duży ruch na małej maszynie, piszemy w Go.

Program instalowany u klienta

Program na cudzej maszynie nie powinien wymagać właściwej wersji Pythona i pakietów. Go i Rust dają jeden plik binarny, który po prostu się uruchamia.

Rdzeń z pieniędzmi

Podpowiedzi typów w Pythonie nie są sprawdzane w działaniu, więc zły typ przechodzi aż do chwili wykonania. Kod rozliczeń trzymamy w Ruście, gdzie taki błąd nie przejdzie kompilacji.

Bot dla zespołu JavaScriptu

Boty Aphrodi są w JavaScripcie i TypeScripcie z discord.js, bo rozwija je zespół, który zna ten ekosystem. Język bota dobieramy do ludzi, którzy będą go zmieniać.

Aplikacja na telefon albo komputer

Na telefony piszemy w Kotlinie i Swifcie, na komputery w C# z Avalonią albo w Rust z Tauri. Python nie daje tam natywnego interfejsu ani prostej dystrybucji programu.

Python w porównaniu, punkt po punkcie

Każda potrzeba w jednym wierszu, a obok siebie to, co w tej sprawie daje każda z dwóch kolumn.

ZadaniePythonInny język

Bot Discord

Discord.py, szybki start
TypeScript z discord.js też dobry

Skrypt na serwer

Jest na każdym Linuksie
Go, gdy ma być jeden plik

Panel w przeglądarce

Nie
TypeScript i React

API monitoringu

FastAPI z dokumentacją z typów
TypeScript, gdy API dzieli typy z panelem

Synchronizacja dwóch API

Krótki skrypt, gotowy szybko
Więcej kodu w języku kompilowanym

Usługa dla dużego ruchu

Ograniczona przez GIL
Go na wszystkich rdzeniach

Program instalowany u klienta

Wymaga Pythona i pakietów
Go albo Rust, jeden plik

Python w całym naszym kodzie

Ile linii napisaliśmy w Python i jaką część wszystkiego, co napisaliśmy, to stanowi. Liczymy linie dodane w commitach naszych repozytoriów, osobno dla każdego języka.

85 548
linii napisanych w Python
1,6%
wszystkich linii, które napisaliśmy
35
repozytoriów z kodem w Python
10.
miejsce wśród 26 języków

Biblioteki, na których stoją te projekty

Z plików zależności naszych repozytoriów. Przy każdej jedno zdanie o tym, do czego jej używamy.

  • discord.py

    Boty Discord.

  • aiohttp

    Zapytania HTTP w botach.

  • FastAPI i uvicorn

    API monitoringu.

  • Playwright

    Zrzuty i sprawdzanie stron z bota.

Nasze zmiany w cudzych projektach w Python

6 przyjętych zmian w 5 repozytoriach. Opiekunowie tych projektów przejrzeli nasz kod i włączyli go do swojego.

Tydzień po tygodniu

Udział języków w naszych zmianach

Inne technologie i gdzie działa ich kod

Każda ma swoją stronę z projektami na prawdziwych ekranach i porównaniem z alternatywami.

Strony i aplikacje webowe

To, co widać w przeglądarce, i jego zaplecze.

Aplikacje mobilne

Natywne klienty Android i iOS.

Aplikacje desktopowe

Programy na Windows, macOS i Linux bez przeglądarki w środku.

Backend i infrastruktura

Rdzenie, agenty na serwerach i usługi czasu rzeczywistego.

Boty i automatyzacje

Discord, skrypty i monitoring.

  • Python

Pytania o Python

Odpowiedzi o Python, naszych projektach i liczbach na tej stronie.

Projekt w Python?

Opisz, co chcesz zbudować. Odpiszemy w godzinę i powiemy wprost, czy ta technologia jest dobrym wyborem.