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.
Bot Discord
Skrypt na serwer
Panel w przeglądarce
API monitoringu
Synchronizacja dwóch API
Usługa dla dużego ruchu
Program instalowany u klienta
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.
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
- Python6 4,8%
- Go33 26%
- PHP32 26%
- JavaScript25 20%
- C#11 8,8%
- Rust10 8,0%
- Perl i JavaScript6 4,8%
- TypeScript2 1,6%
- pydantic-extra-typesDodatkowe typy do walidacji danych w Pydantic, popularnej bibliotece Pythona.2 przyjęte zmiany338 gwiazdek na GitHubie
- funcyZbiór praktycznych narzędzi funkcyjnych dla Pythona.1 przyjęta zmiana3510 gwiazdek na GitHubie
- python-benedictPodklasa słownika Pythona z dostępem po ścieżkach kluczy i wbudowanym zapisem do wielu formatów.1 przyjęta zmiana1606 gwiazdek na GitHubie
- pydashBiblioteka funkcji pomocniczych dla Pythona wzorowana na Lo-Dash.1 przyjęta zmiana1447 gwiazdek na GitHubie
- pytimeparseMały moduł Pythona do czytania wyrażeń czasu, takich jak 1h30m.1 przyjęta zmiana299 gwiazdek na GitHubie
Inne technologie i gdzie działa ich kod
Każda ma swoją stronę z projektami na prawdziwych ekranach i porównaniem z alternatywami.
Pytania o Python
Odpowiedzi o Python, naszych projektach i liczbach na tej stronie.
Czytaj dalej
Opisy projektów z tej strony i przegląd wszystkich technologii.
Projekt w Python?
Opisz, co chcesz zbudować. Odpiszemy w godzinę i powiemy wprost, czy ta technologia jest dobrym wyborem.
