Jak napsat kvalitní kód v Pythonu? | robot_dreams Czech
should_authorize_via_email
email.input_code tel.input_code
 
email.code_actual_for tel.code_actual_for
apply_exit_text
session_ended
to_homepage
Jak napsat kvalitní kód v Pythonu?

Jak napsat kvalitní kód v Pythonu?

Zjisti, jaké osvědčené techniky ti pomohou vypilovat coding skills

Python patří mezi jeden z oblíbených programovacích jazyků. Dobře se učí nováčkům v programování a má široké využití v celé řadě profesí. Naučit se správně syntax nestačí k tomu, abys ses stal*a profesionálem v oboru, kde chceš pracovat. Vždy je to o dovednostech a způsobu, jak dokážeš řešit výzvy, které stojí před tebou.

Jak chápat kvalitu kódu?

Každý programátor by měl usilovat o kvalitní kód, ať už píše v Pythonu, nebo jiném programovacím jazyce. Čím se ale vyznačuje? Je potřeba si říct, jaká kritéria by měl kvalitní kód splňovat, abychom ho tak mohli nazývat. Můžeme ho tedy definovat jako:

  • kód, který plní svůj účel a dělá, co dělat má,
  • neobsahuje chyby, které by způsobily problémy,
  • snadno se čte, udržuje i rozšiřuje. 

Proč záleží na kvalitě kódu?

Určitě se shodneme na tom, že jde o fundamentální základ toho, co jako vývojář*ka od kódu očekáváš. Pojďme si to ale probrat více do hloubky.

Kód nedělá to, co má

Základním kritériem zůstává to, aby kód dělal to, co se od něj očekává. Výsledný software dokáže plnit svůj účel, pro který je vyvíjen. Pokud tomu tak není, nesplňuje základní požadavek na kvalitu kódu.

Pojďme si to ale ukázat na příkladu funkce, kdy je potřeba klást důraz na logiku programu.

def average(numbers_list):
       total = sum(numbers_list)
       count = len(numbers_list) - 1  # Chyba je zde: správně by tu mělo být

len(numbers_list)
       return total / count

# Testing the function
numbers = [1, 2, 3, 4, 5]
print("Average:", average(numbers))

V tomto případě funkce average nesprávně vypočítává průměr. Součet čísel dělí počtem prvků -1, místo celkového počtu. To vede ke špatnému výsledku. Chyby tohoto typu jsou časté, když programátoři omylem použijí nesprávnou proměnnou nebo špatně pochopí, jak fungují určité funkce (jako len v Pythonu).

Tento příklad ukazuje, jak důležité je důkladně otestovat kód a být opatrný při psaní logiky programu.

Neobsahuje žádné chyby

Dalším kritériem je samozřejmě správnost kódu. Stačí trochu nepozornosti a chyba je na světě. V horším případě kód nebude dělat, co má, nebo vyhodí chybu.

Příkladovou situací může být definování funkce „add_numbers“, která má sečíst dvě čísla. 

Správná varianta

def add_numbers(a, b):
       return a + b

# Použití funkce
result = add_numbers(5, 3)
print(result)  # Vypíše 8

Špatná varianta

def add_numbers(a, b):
       return a + b + c

# Použití funkce
result = add_numbers(5, 3)
print(result)

Pokud je funkce definována dobře, výsledkem bude číslo 8. Zato špatně definovaný je kód s proměnnou „c“. V takovém případě se bude funkce snažit dodat neexistující číslo a výsledkem je chyba. Aby vše fungovalo správně, je potřeba proměnou hodnotu přidat do argumentu. 

Snadno se čte, udržuje i rozšiřuje

Poslední z našich předpokladů pro kvalitní kód je jeho čitelnost, údržba a rozšiřitelnost. Možná se ti to zprvu nemusí jevit jako důležité, ale opak je pravdou. S tvým kódem budou pracovat další programátoři a ty sám*sama také nebudeš chtít ztrácet čas v kódu někoho jiného.

Mezi znaky nečitelného kódu patří

  • nepoužití vhodných názvů pro funkce a proměnné, které by vysvětlovaly jejich účel,
  • chybí komentář, který by vysvětloval, co daný kód má dělat,
  • nepracuje s prázdnými řádky, které by oddělovaly logické celky kódu, jako jsou definice funkcí, přiřazení proměnných nebo volání funkcí,
  • chybí mezery mezi operátory a operandy, jako jsou +=, =, in, což ztěžuje čtení kódu,
  • žádné závorky, které by zvýraznily podmínky nebo argumenty funkcí, jako jsou if c.isalpha():, l.append(w.lower()), if x in d:,
  • nepoužívá žádné standardní knihovní funkce, které by mohly zjednodušit kód, jako jsou split, lower, counter

Jak zlepšit své programátorské skills v Pythonu

Teď když už víš, proč záleží na tom, aby byl kód napsán kvalitně, se podíváme na několik způsobů, jak se sebe i tvé skills udržet ve formě. Níže tě seznámíme se způsoby, jak na to.

Řešení problémů s kódováním v jazyce Python

Znalosti programování v Pythonu jsou rozhodně základ. Abys je využil*a na maximum, je potřeba potrénovat své znalosti i logické myšlení na reálných problémech. S tím ti můžou pomoci různé platformy, jako je HackerRank nebo LeetCode, kde najdeš různé stupně obtížnosti.

Mysli na to, že dané problémy je potřeba řešit po „pythonovsku“, aby šlo o čistá, jednoduchá a čitelná řešení. Díky tomu se naučíš efektivně používat různé koncepty jazyka Python.

Psát kód v souladu se stylem

Možná ti to přijde jako zvláštní věc, ale i styl, kterým píšeš kód, hraje klíčovou roli. Průvodce stylem definuje konzistentní způsob zápisu kódu. Může se ti zprvu zdát, že jde o kosmetickou věc, ale podstata je hlubší. Dodržováním těchto zásad se vyhneš běžným logickým chybám. Tvůj kód bude také čitelný, udržitelný a rozšířitelný.

U jazyka Python najdeš standardizovaný styl, na němž se podílel samotný autor. PEP 8 definuje konvence, zatímco další návrhy ti poskytne standard PEP 257. Díky tomu se naučíš správně zapisovat dokumentaci modulů, tříd, funkcí a metod.

Využij linter a formátovače

Zvládnutí kódu vyžaduje čas. Věnovat pozornost všem detailům při kódování může pro tebe být náročné a zdlouhavé. Naštěstí ti s tím mohou pomoci různé nástroje, zejména lintery a autoformátovače.

Lintery provádějí statickou analýzu zdrojových kódů a kontrolují sémantické nesrovnalosti. Formátovače jsou podobné nástroje, které se snaží restrukturalizovat rozestupy v kódu, délku řádků, umístění argumentů apod. a zajistit, aby kód vypadal konzistentně v různých souborech nebo projektech. Python nabízí nepřeberné množství linterů a formátovačů, z nichž si můžeš vybrat.

Zaměř se na komentáře

Komentáře jsou velmi důležité, protože umožňují vytvářet poznámky pro budoucí čtenáře tvého kódu. I když je obtížné definovat, jak má být kód komentován, existují určité zásady, kterými se můžeme řídit:

  • Každý komentář, který je v rozporu s kódem, je horší než žádný. Proto je důležité, abys u aktualizovaného kódu nezapomínal*a revidovat komentář tak, aby nevznikaly rozpory. 
  • Komentáře musí mít podobu, přičemž první písmeno musí být velké. 
  • Snaž se psát komentáře v angličtině, pokud pracuješ v mezinárodním týmu.
  • Dbej na to, aby tvoje komentáře byly jasné a srozumitelné pro ostatní uživatele jazyka, ve kterém píšeš.

Existují dva typy komentářů: blokové komentáře a řádkové komentáře.

Blokový komentář vysvětluje kód, který za ním následuje. Obvykle se odsazuje na stejné úrovni jako blok kódu. Každý řádek blokového komentáře začíná znakem # a jednou mezerou, a to následujícím způsobem:

# Takto vypadá blokový komentář

print('Vítám tě na robot_dreams")

Řádkové komentáře se zapisují na stejné úrovni jako kód.  Měly by být od příkazu odděleny alespoň dvěma mezerami. Podobně jako blokový komentář začíná řádkový komentář jedním hash znakem (#), za nímž následuje mezera a textový řetězec.

print ("Budeš číst dál?")# Takto vypadá řádkový komentář

Zaměř se na testování a refaktoring u kódu

Asi ti to přijde jako logický krok, ale může se stát, že svůj kód neotestuješ. Nefokusuj se pouze na psaní, ale také ho testuj, aby splňoval zásadu, že dělá, co dělat má. Jen tak si můžeš být na sto procent jistý*á, že jsi odvedl*a dobrou práci.

Dalším způsobem, jak zlepšit tvůj sklil, je refaktoring. Jinými slovy přepis kódu, při němž je tvým úkolem upravit zdrojový kód tak, aby byl čitelný, plnil svou funkci, snadno se dal rozšířit a zvýšila se jeho efektivita.

Kvalitní kód potřebuje čas

Cesta vývojáře určitě není jednoduchá, a pokud jsi dočetl*a článek až sem, myslíš to se svou kariérou vážně. Rozhodně nejde o kompletní výčet toho, co můžeš udělat proto, abys své skills posunul*a na další level, ale vždy je dobré vědět, kde začít.

Pokud plánuješ investovat do svého rozvoje, určitě neprohloupíš, pokud se podíváš na naše kurzy. Mohou ti pomoci nejen s novými dovednostmi, ale také přináší možnost, jak upgradovat stávající skills a posunout tě výš.

Autor: Martin Šlat

Více článků
A proč je užitečná pro každého, kdo pracuje s computer vision
Kde můžeš začít navazovat vztahy s lidmi se zájmem o IT?