Lintowanie i kontrola jakości kodu
Zaimplementują Państwo w workflow narzędzia do statycznej analizy kodu i lintowania, aby zachować spójne standardy kodowania.
Lintowanie i kontrola jakości kodu to bezpłatna lekcja CI/CD with GitHub Actions & DevOps Pipelines na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej CI/CD with GitHub Actions & DevOps Pipelines, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs CI/CD with GitHub Actions & DevOps Pipelines zawiera 4 lekcji w sumie.
Czym jest jakość kodu?
Czy zdarzyło się Państwu pracować z kodem, który trudno było zrozumieć lub który często powodował błędy? Często jest to oznaka niskiej jakości kodu.
Jakość kodu określa, na ile oprogramowanie jest dobrze napisane, łatwe w utrzymaniu, czytelne i niezawodne. Kod wysokiej jakości ułatwia pracę i rzadziej powoduje awarie.
Poznajmy linter
Linting to proces sprawdzania kodu pod kątem błędów programistycznych i stylistycznych. Można go porównać do korektora pisowni dla kodu!
- Egzekwuje standardy kodowania, takie jak wcięcia, nazewnictwo zmiennych i długość wierszy.
- Wykrywa proste błędy składni lub potencjalne błędy, zanim jeszcze uruchomią Państwo kod.
Lintery nie wykonują kodu — analizują jego strukturę.
Statyczna analiza kodu
Linting często koncentruje się na stylu, natomiast statyczna analiza kodu to szersze pojęcie. Polega na badaniu kodu bez jego wykonywania w celu znalezienia bardziej złożonych problemów.
Narzędzia do analizy statycznej mogą wykrywać:
- potencjalne luki w zabezpieczeniach, na przykład ryzyko wstrzyknięcia SQL;
- wąskie gardła wydajnościowe;
- złożone wzorce błędów lub nieosiągalny kod.
Zarówno linting, jak i analiza statyczna pomagają poprawiać ogólną jakość kodu.
Korzyści z czystego kodu
Włączenie lintingu i analizy statycznej do procesu tworzenia oprogramowania oferuje wiele korzyści:
- Spójność: zapewnia przestrzeganie uzgodnionych standardów przez cały kod.
- Wczesne wykrywanie błędów: wykrywa problemy, zanim przerodzą się w większe trudności.
- Lepsza czytelność: ułatwia innym osobom, a także Państwu w przyszłości, zrozumienie kodu.
- Łatwiejsze utrzymanie: zmniejsza wysiłek potrzebny do wprowadzania przyszłych aktualizacji i poprawek.
Narzędzia w praktyce
Różne języki programowania mają własne popularne narzędzia do lintingu i analizy statycznej:
- JavaScript: ESLint, Prettier
- Python: Flake8, Pylint, Black
- Java: Checkstyle, SonarQube
W tej lekcji skupimy się na narzędziu Flake8 dla języka Python — prostym, a zarazem potężnym rozwiązaniu.
Linting w Pythonie za pomocą Flake8
Flake8 łączy kilka narzędzi (Pyflakes, pycodestyle, McCabe), aby sprawdzać kod Python pod kątem zgodności z wytycznymi stylistycznymi PEP 8 i typowych błędów.
PEP 8 to oficjalny przewodnik po stylu języka Python, promujący czytelny i spójny kod. Flake8 pomaga automatycznie stosować się do tych zasad.
Uruchamianie Flake8 lokalnie
Oto mały skrypt Python zawierający kilka problemów stylistycznych. Aby uruchomić na nim Flake8, należy zazwyczaj go zainstalować (`pip install flake8`), a następnie wykonać w terminalu polecenie `flake8 your_script.py`.
Proszę zwrócić uwagę na odstępy i decyzje stylistyczne. Flake8 zgłosi te problemy!
def calculate_sum( num1, num2 ):
total = num1 + num2
print ( total )
calculate_sum( 5, 7 )Linting w potoku CI
Aby zapewnić spójną jakość kodu w całym zespole, mogą Państwo zautomatyzować linting za pomocą GitHub Actions. Oznacza to, że za każdym razem, gdy kod zostanie wypchnięty lub zostanie otwarty pull request, linter uruchomi się automatycznie.
Jeśli linter znajdzie problemy, workflow można skonfigurować tak, aby zakończył się niepowodzeniem, uniemożliwiając scalenie kodu niskiej jakości z główną gałęzią.
Przykład workflowu Flake8
Oto podstawowy workflow GitHub Actions (`.github/workflows/lint.yml`), który uruchamia Flake8 w projekcie Python. Jest uruchamiany po wypchnięciu zmian oraz po utworzeniu pull requestów do głównej gałęzi.
name: Python Linting
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8
- name: Run Flake8
run: |
flake8 . --count --show-source --statisticsCzytanie raportów lintingu
Po uruchomieniu Flake8 wyświetlana jest lista problemów. Każdy wiersz zazwyczaj zawiera nazwę pliku, numer wiersza, numer kolumny, kod błędu (na przykład E231, W292) oraz opis.
- E (Error): zwykle błędy składni lub poważne naruszenia zasad stylu.
- W (Warning): mniej istotne problemy stylistyczne.
Celem jest często uzyskanie zerowej liczby błędów i ostrzeżeń lintingu, aby potok był czysty!
Sprawdzenie wiedzy o lintingu
Dowiedzieli się Państwo, jak ważne są linting i analiza statyczna. Sprawdźmy Państwa wiedzę!
Podsumowanie: linting na rzecz jakości
Świetnie! Poznali Państwo znaczenie lintingu i statycznej analizy kodu dla utrzymania wysokiej jakości kodu we współczesnym tworzeniu oprogramowania.
- Zdefiniowaliśmy linting i analizę statyczną.
- Poznaliśmy ich zalety w zakresie spójności i zapobiegania błędom.
- Zobaczyliśmy, jak integrować narzędzia takie jak Flake8 z workflowami GitHub Actions.
Automatyzując te kontrole, zapewniają Państwo czystszy i bardziej niezawodny kod przy każdym commicie!
Często zadawane pytania
Czy lekcja „Lintowanie i kontrola jakości kodu” jest bezpłatna?
Tak — pełny tekst „Lintowanie i kontrola jakości kodu” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu CI/CD with GitHub Actions & DevOps Pipelines, przejdź na CoddyKit PRO. Kurs CI/CD with GitHub Actions & DevOps Pipelines zawiera 4 lekcji w sumie.
Co nauczysz się w „Lintowanie i kontrola jakości kodu”?
Zaimplementują Państwo w workflow narzędzia do statycznej analizy kodu i lintowania, aby zachować spójne standardy kodowania. Ćwiczysz CI/CD with GitHub Actions & DevOps Pipelines z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć CI/CD with GitHub Actions & DevOps Pipelines?
Nie wymagamy żadnego doświadczenia. CI/CD with GitHub Actions & DevOps Pipelines w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Lintowanie i kontrola jakości kodu”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji CI/CD with GitHub Actions & DevOps Pipelines?
Tak. Każda lekcja CI/CD with GitHub Actions & DevOps Pipelines zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Wyzwalacze i zdarzenia workflow
- Uruchamianie testów za pomocą GitHub Actions
- Lintowanie i kontrola jakości kodu
- Buforowanie zależności na potrzeby szybszych kompilacji