Lekce 22: Principy SOLID v C# – Jak psát čistý a udržitelný kód

Lekce 22: Principy SOLID v C# – Jak psát čistý a udržitelný kód

Principy SOLID patří mezi základní stavební kameny objektově orientovaného programování. Jejich správné dodržování v jazyce C# vede k tvorbě čitelného, flexibilního a dobře udržovatelného kódu. V této lekci si vysvětlíme jednotlivé principy SOLID, ukážeme jejich praktické použití v C#, a také si řekneme, jak jejich aplikace ovlivňuje kvalitu softwaru i jeho nepřímý dopad na výkon aplikací.


1. Co je SOLID?

SOLID je akronym pro pět základních principů návrhu objektově orientovaného softwaru:

  • S – Single Responsibility Principle (Princip jediné odpovědnosti)
  • O – Open/Closed Principle (Princip otevřenosti/uzavřenosti)
  • L – Liskov Substitution Principle (Princip substituce podle Liskovové)
  • I – Interface Segregation Principle (Princip oddělení rozhraní)
  • D – Dependency Inversion Principle (Princip inverze závislostí)

2. Single Responsibility Principle (SRP)

Každá třída by měla mít jedinou odpovědnost a tedy jen jeden důvod ke změně.

Špatný příklad:

public class UzivatelService
{
public void VytvorUzivatele() { }
public void VytiskniUzivatele() { }
}

Správný příklad:

public class UzivatelService
{
public void VytvorUzivatele() { }
}

public class TiskService
{
public void VytiskniUzivatele() { }
}
  • Jedna třída řeší správu dat, druhá tisk.

3. Open/Closed Principle (OCP)

Třídy by měly být otevřené pro rozšíření, ale uzavřené pro modifikaci.

Špatný příklad:

public class PlatbaService
{
public void Zaplat(string typ)
{
if (typ == "Karta") { }
else if (typ == "Hotovost") { }
}
}

Správný příklad:

public interface IPlatba
{
void Zaplat();
}

public class PlatbaKartou : IPlatba
{
public void Zaplat() { }
}

public class PlatbaHotovosti : IPlatba
{
public void Zaplat() { }
}
  • Přidání nového typu platby nevyžaduje změnu existujícího kódu.

4. Liskov Substitution Principle (LSP)

Podtřídy by měly být plnohodnotnou náhradou svých rodičovských tříd.

Správný příklad:

public class Pták
{
public virtual void Leť() { }
}

public class Holub : Pták
{
public override void Leť() { }
}

Pokud bychom přidali nelétajícího ptáka (např. tučňáka) bez úpravy hierarchie, porušili bychom LSP.


5. Interface Segregation Principle (ISP)

Rozhraní by měla být specifická a úzká, nikoli velká a obecná.

Špatný příklad:

public interface IVozidlo
{
void Jed();
void Letej();
}

Správný příklad:

public interface IPozemniVozidlo
{
void Jed();
}

public interface ILetadlo
{
void Letej();
}
  • Každá třída implementuje jen metody, které potřebuje.

6. Dependency Inversion Principle (DIP)

Závislosti by měly být směrovány na abstrakce, ne na konkrétní implementace.

Správný příklad:

public interface ILogger
{
void Loguj(string zprava);
}

public class Logger : ILogger
{
public void Loguj(string zprava)
{
Console.WriteLine(zprava);
}
}

public class ObjednavkaService
{
private readonly ILogger logger;

public ObjednavkaService(ILogger logger)
{
this.logger = logger;
}
}
  • ObjednavkaService závisí na rozhraní, nikoli na konkrétní implementaci.

7. Výhody dodržování SOLID v C#

Vyšší čitelnost a udržovatelnost kódu
Snadnější testování a rozšiřitelnost
Lepší výkon a spolehlivost aplikací
Vyšší stabilita aplikace => lepší SEO hodnocení pro webové aplikace


8. SEO souvislosti principů SOLID

Ačkoliv SOLID principy přímo neovlivňují aplikaci, mají nepřímý dopad:

  • Stabilní a rychlá aplikace zvyšuje uživatelskou spokojenost a snižuje míru opuštění stránek.
  • Snadnější aktualizace a rozšíření znamenají rychlejší reakce na nové požadavky (např. Core Web Vitals).
  • Bezchybné fungování aplikace posiluje důvěryhodnost webu a tím i jeho SEO pozici.

Závěr

Principy SOLID tvoří základ kvalitního objektově orientovaného návrhu v C#. Jejich dodržování vede k čistému, čitelnému a snadno rozšiřitelnému kódu, který je méně náchylný k chybám a snáze se testuje. Implementace těchto zásad přináší výhody nejen pro vývojáře, ale také pozitivně ovlivňuje výkon a stabilitu aplikace, což má nepřímý dopad i na SEO.

Jirka

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners. View more
Cookies settings
Accept
Privacy & Cookie policy
Privacy & Cookies policy
Cookie name Active

Kdo jsme

Naše webová adresa je: https://www.jefta.cz.

Komentáře

Když návštěvníci zanechají na webu komentáře, shromažďujeme údaje zobrazené ve formuláři pro komentáře a také IP adresu návštěvníka a řetězec uživatelského agenta prohlížeče, abychom pomohli odhalit spam.

Anonymizovaný řetězec vytvořený z vaší e-mailové adresy (také nazývaný hash) může být poskytnut službě Gravatar, abyste zjistili, zda ji používáte. Zásady ochrany osobních údajů služby Gravatar jsou k dispozici zde: https://automattic.com/privacy/. Po schválení vašeho komentáře bude váš profilový obrázek viditelný pro veřejnost v kontextu vašeho komentáře.

Média

Pokud na web nahráváte obrázky, měli byste se vyhnout nahrávání obrázků s vloženými údaji o poloze (EXIF GPS). Návštěvníci webu si mohou stáhnout a extrahovat jakákoli data o poloze z obrázků na webu.

Soubory cookie

Pokud na našem webu zanecháte komentář, můžete se přihlásit k ukládání svého jména, e-mailové adresy a webu do souborů cookie. Jsou pro vaše pohodlí, abyste nemuseli znovu vyplňovat své údaje, když zanecháte další komentář. Tyto cookies vydrží jeden rok.

Pokud navštívíte naši přihlašovací stránku, nastavíme dočasný soubor cookie, abychom zjistili, zda váš prohlížeč přijímá soubory cookie. Tento soubor cookie neobsahuje žádné osobní údaje a po zavření prohlížeče je vyřazen.

Když se přihlásíte, nastavíme také několik souborů cookie pro uložení vašich přihlašovacích údajů a vašich voleb zobrazení obrazovky. Přihlašovací soubory cookie vydrží dva dny a soubory cookie možností obrazovky vydrží rok. Pokud zvolíte "Zapamatovat si mě", vaše přihlášení bude trvat dva týdny. Pokud se odhlásíte ze svého účtu, přihlašovací soubory cookie budou odstraněny.

Pokud upravíte nebo publikujete článek, uloží se do vašeho prohlížeče další cookie. Tento soubor cookie neobsahuje žádné osobní údaje a pouze označuje ID příspěvku článku, který jste právě upravili. Jeho platnost vyprší po 1 dni.

Vložený obsah z jiných webových stránek

Články na tomto webu mohou obsahovat vložený obsah (např. videa, obrázky, články atd.). Vložený obsah z jiných webových stránek se chová úplně stejně, jako kdyby návštěvník navštívil jinou webovou stránku.

Tyto webové stránky mohou shromažďovat údaje o vás, používat soubory cookie, vkládat další sledování třetích stran a monitorovat vaši interakci s tímto vloženým obsahem, včetně sledování vaší interakce s vloženým obsahem, pokud máte účet a jste na dané webové stránce přihlášeni.

S kým sdílíme vaše údaje

Pokud požádáte o resetování hesla, vaše IP adresa bude zahrnuta v e-mailu pro resetování.

Jak dlouho vaše údaje uchováváme

Pokud zanecháte komentář, bude komentář a jeho metadata uchována po neomezenou dobu. Je to proto, abychom mohli rozpoznat a schválit jakékoli následné komentáře automaticky, místo abychom je drželi ve frontě na moderování.

Pro uživatele, kteří se zaregistrují na našich webových stránkách (pokud existují), ukládáme také osobní údaje, které poskytují, v jejich uživatelském profilu. Všichni uživatelé mohou kdykoli zobrazit, upravit nebo smazat své osobní údaje (kromě toho, že nemohou změnit své uživatelské jméno). Správci webových stránek mohou tyto informace také zobrazit a upravovat.

Jaká práva máte nad svými údaji

Pokud máte účet na této stránce nebo jste zanechali komentáře, můžete požádat o zaslání exportovaného souboru osobních údajů, které o vás uchováváme, včetně všech údajů, které jste nám poskytli. Můžete také požádat, abychom vymazali veškeré osobní údaje, které o vás uchováváme. To nezahrnuje žádné údaje, které jsme povinni uchovávat pro administrativní, právní nebo bezpečnostní účely.

Kam se posílají vaše data

Komentáře návštěvníků mohou být kontrolovány prostřednictvím služby automatické detekce spamu.

Save settings
Cookies settings