Software Engineering
Git, review, testowanie, analiza statyczna, diagnostyka, pakowanie i dostarczanie wchodzą w jeden proces roboczy.
Jak bezpiecznie zmienić kod
W skrypcie edukacyjnym czasami wystarczy uzyskać poprawny wynik tylko raz. W projekcie trzeba także bezpiecznie zmieniać kod dalej. Przepływ pracy łączy wymagania, realizację, testowanie i dostawę. Narzędzia mogą się zmieniać. Wymagania wobec procesu pozostają: można śledzić historię zmian, można zobaczyć awarię i powtórzyć kompilację.
Git i review głębsze niż podstawowe komendy
Naucz się czytać historię i diff, rozgałęziające, merge, bezpieczne rebase lokalnej gałęzi, revert, tagi i rozwiązywanie konfliktów. Celem nie jest zbiór komend. Musisz zrozumieć Jaki rodzaj grafu zatwierdzeń zostanie uzyskany i jak odzyskać błąd. Review sprawdza kontrakt, przypadki brzegowe, testy, czytelność i ryzyko operacyjne; styl kodu jest lepszy Deleguj kontrole automatyczną.
Strategia testowa
| Oznacza pytest | Co modeluje | Ryzyko nadużycia |
|---|---|---|
| fixtures | Jawne przygotowanie stanu i zasobów. | Ukryty złożony fixture sprawia, że test jest niezrozumiały. |
| parametrize | Jeden kontrakt dla zestawu wejść i granic. | Duża tabela może ukrywać różne przyczyny awarii. |
| mock / monkeypatch | Kontrolowana granica: czas, sieć, proces, API. | Mock szczegóły wewnętrzne łączą test z implementacją. |
| coverage | Które rzędy lub gałęzie zostały wykonane. | Wysoki odsetek nie dowodzi jakości zdań. |
Buduj piramidę przez ryzyko: dużo szybkich testów czystej logiki, mniej testów całkowania testy rzeczywistych granic i kilka scenariuszy end-to-end. Test musi mieć powód, Obserwowalna aprobata i kontrolowane środowisko.
Automatyczne kontrole i diagnostyka
Ruff może wykonywać lint i formatowanie, a mypy sprawdza spójność
adnotacje. Wybierz zasady, zapisz je do pyproject.toml
i uruchom równo lokalnie i w CI. W przypadku defektu zbieraj minimum
odtworz, przeczytaj traceback, ustaw punkt przerwy lub dodaj
Ustrukturyzowany log. Profiler jest potrzebny po zmierzeniu problemu, a nie dla
Przedwczesna optymalizacja.
Pakiet, wersja i dostawa
Projekt potrzebuje jasnej struktury, metadanych, zależności, build backend oraz weryfikacji instalacji zbudowanego wheel w czystym środowisku. Przez PyPI publikują pakiety Python-, ale nie każdej aplikacji potrzeba takiej publikacji. Semantic Versioning przydaje się, gdy projekt deklaruje publiczny API i może konsekwentnie określić kompatybilne i niekompatybilne zmiany.