DevOps-bootcamp · Oppitunti

Linttaus ja koodin laatutarkistukset

Toteuttakaa staattinen koodianalyysi ja linttaustyökalut työnkuluissanne yhtenäisten koodausstandardien ylläpitämiseksi.

Oppitunti 3/412 vaihetta

Linttaus ja koodin laatutarkistukset on ilmainen DevOps-bootcamp-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu DevOps-bootcamp-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.

Mitä koodin laatu tarkoittaa?

Oletteko koskaan työskennelleet koodin parissa, jota oli vaikea ymmärtää tai jossa esiintyi helposti virheitä? Se on usein merkki koodin heikosta laadusta.

Koodin laatu tarkoittaa sitä, kuinka hyvin ohjelmisto on kirjoitettu ja kuinka ylläpidettävää, luettavaa ja luotettavaa se on. Laadukkaan koodin kanssa on helpompi työskennellä, ja sen rikkoutuminen on epätodennäköisempää.

Esittelyssä linteri

Linttaus on prosessi, jossa koodista etsitään ohjelmointi- ja tyylivirheitä. Ajatelkaa sitä koodin oikolukuna!

  • Se valvoo koodauskäytäntöjä, kuten sisennystä, muuttujien nimeämistä ja rivien pituutta.
  • Se havaitsee yksinkertaiset syntaksivirheet ja mahdolliset virheet jo ennen koodin suorittamista.

Linterit eivät suorita koodia, vaan analysoivat sen rakennetta.

Staattinen koodianalyysi

Linttaus keskittyy usein tyyliin, kun taas staattinen koodianalyysi on laajempi käsite. Siinä koodia tutkitaan suorittamatta sitä, jotta löydetään monimutkaisempia ongelmia.

Staattisen analyysin työkalut voivat tunnistaa seuraavia asioita:

  • Mahdolliset tietoturva-aukot (esimerkiksi SQL-injektioriskit)
  • Suorituskyvyn pullonkaulat
  • Monimutkaiset virhemallit tai saavuttamattoman koodin

Sekä linttaus että staattinen analyysi auttavat parantamaan koodin yleistä laatua.

Siistin koodin hyödyt

Linttauksen ja staattisen analyysin integroiminen kehitystyönkulkuun tarjoaa monia etuja:

  • Yhdenmukaisuus: Varmistaa, että kaikki koodi noudattaa sovittuja standardeja.
  • Virheiden varhainen havaitseminen: Havaitsee virheet ennen kuin niistä tulee suurempia ongelmia.
  • Luettavuuden parantuminen: Helpottaa koodin ymmärtämistä muiden ja tulevaisuuden itsenne kannalta.
  • Helpompi ylläpidettävyys: Vähentää tuleviin päivityksiin ja korjauksiin tarvittavaa työtä.

Työkalut tutuiksi

Eri ohjelmointikielillä on omat suosittuja linttaus- ja staattisen analyysin työkalujaan:

  • JavaScript: ESLint, Prettier
  • Python: Flake8, Pylint, Black
  • Java: Checkstyle, SonarQube

Tässä oppitunnissa keskitymme Pythonille tarkoitettuun Flake8-työkaluun, joka on yksinkertainen mutta tehokas.

Pythonin linttaus Flake8:lla

Flake8 yhdistää useita työkaluja (Pyflakes, pycodestyle, McCabe) ja tarkistaa Python-koodin PEP 8 -tyyliopasta sekä yleisiä virheitä vasten.

PEP 8 on Pythonin virallinen tyyliopas, joka edistää luettavaa ja yhdenmukaista koodia. Flake8 auttaa noudattamaan sitä automaattisesti.

Flake8:n suorittaminen paikallisesti

Tässä on pieni Python-komentosarja, jossa on joitakin tyyliin liittyviä ongelmia. Flake8:n suorittamiseksi se asennetaan yleensä (`pip install flake8`), minkä jälkeen päätteessä suoritetaan `flake8 your_script.py`.

Huomatkaa välilyönnit ja tyylivalinnat. Flake8 ilmoittaisi niistä!

def calculate_sum(  num1, num2 ):
    total = num1 + num2
    print ( total )

calculate_sum( 5, 7 )

Linttaus CI-putkessa

Tiimin koodin yhdenmukaisen laadun varmistamiseksi linttaus voidaan automatisoida GitHub Actionsilla. Tällöin linteri suoritetaan automaattisesti aina, kun koodia lähetetään tai pull request avataan.

Jos linteri löytää ongelmia, työnkulku voidaan määrittää epäonnistumaan. Näin heikkolaatuista koodia ei voi yhdistää main-haaraan.

Esimerkki Flake8-työnkulusta

Tässä on GitHub Actionsin perustason työnkulku (`.github/workflows/lint.yml`), joka suorittaa Flake8:n Python-projektille. Se käynnistyy, kun koodia lähetetään tai pull request avataan main-haaraan.

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 --statistics

Linttausraporttien lukeminen

Kun Flake8 suoritetaan, se tulostaa luettelon ongelmista. Jokainen rivi sisältää yleensä tiedostonimen, rivinumeron, sarakenumeron, virhekoodin (esimerkiksi E231, W292) ja kuvauksen.

  • E (Error): Yleensä syntaksi- tai vakavia tyylirikkomuksia.
  • W (Warning): Vähemmän kriittisiä tyyliin liittyviä ongelmia.

Tavoitteena on usein saada siistissä putkessa linttausvirheiden ja -varoitusten määräksi nolla!

Linttaustietojen tarkistus

Olette oppineet linttauksen ja staattisen analyysin merkityksen. Testataan seuraavaksi ymmärrystänne!

Kertaus: linttaus laadun varmistamisessa

Hienoa työtä! Olette tutustuneet siihen, miten tärkeitä linttaus ja staattinen koodianalyysi ovat korkean koodilaadun ylläpitämisessä modernissa ohjelmistokehityksessä.

  • Määrittelimme linttauksen ja staattisen analyysin.
  • Opimme niiden hyödyt yhdenmukaisuuden ja virheiden ehkäisemisen kannalta.
  • Näimme, miten Flake8:n kaltaiset työkalut integroidaan GitHub Actions -työnkulkuihin.

Automatisoimalla nämä tarkistukset varmistatte puhtaamman ja luotettavamman koodin jokaisessa commitissa!

Aloita maksutta

Opi DevOps-bootcamp tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
142
Oppitunnit
568

Usein kysytyt kysymykset

Onko oppitunti ”Linttaus ja koodin laatutarkistukset” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa DevOps-bootcamp-oppimispolun 3 oppituntia, myös oppitunnin “Linttaus ja koodin laatutarkistukset”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Linttaus ja koodin laatutarkistukset”?

Toteuttakaa staattinen koodianalyysi ja linttaustyökalut työnkuluissanne yhtenäisten koodausstandardien ylläpitämiseksi. Harjoittelet DevOps-bootcamp-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni DevOps-bootcamp-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin DevOps-bootcamp-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Linttaus ja koodin laatutarkistukset”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä DevOps-bootcamp-oppitunnilla?

Kyllä. Jokainen DevOps-bootcamp-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Työnkulkujen käynnistimet ja tapahtumat
  2. Testien suorittaminen GitHub Actionsilla
  3. Linttaus ja koodin laatutarkistukset
  4. Riippuvuuksien välimuistitus koontien nopeuttamiseksi
← Takaisin: DevOps-bootcamp