• 18.8.2019
  • Ing. Jan Zedníček - Data Engineer & Controlling
  • 0

Každý ví, že by to měl dělat, ale málokdo to skutečně dělá. Řeč je formátování sql kódu a jeho přehlednosti. Zejména ve větších týmech dokážou pravidla ohledně formátování zjednodušit a zefektivnit práci. Mnohdy i o několik desítek procent/mnoho man days v případě revizí/úprav kódu a refaktoringu kódu.

Proč je správně naformátovaný kód důležitý

Každý kód (nejen SQL) je součástí nějakého produktu a jako takový je během svého životního cyklu mnohokrát revidován, upravován a analyzován různými lidmi nebo třeba externími konzultanty. Je opravdu velmi časově náročně luštit po někom kód, který je napsán způsobem, že se v něm nelze vůbec vyznat – v případě T-SQL třeba pokud se jedná o kombinaci strašlivého kódu s provázáním přes více na sobě závislých objektů (např. views).

Často je to dokonce tak náročné, že je jednodušší kód napsat znovu a to mohou být v případě složitějších skritpů i desítky hodin a klidně i člověkodnů.

Takový kód má sníženou hodnotu, protože mu rozumí pouze člověk, který jej napsal a je dost dobře možné, že pokud tomuto člověku ukážete tento kód za rok, tak se v něm nevyzná ani on. Je dobré psát kód takovým způsobem, aby po mě byl schopen kód pochopit i juniorní kolega, který nemá znalost daného problému (který kód řeší).

Dá se říci, že je bezohledné (jak k zaměstnavateli tak ke kolegům), když člověk píše kód způsobem, že mu rozumí pouze on.

Příklad špatně a správně zformátovaného SQL kódu

Příklad špatně zformátovaného kódu uvedu na krátkém SQL skriptu. Představte si, že byste ale měli analyzovat nekolik set řádků takto napsaného kódu navíc přes různé na sobě závislé objekty – views a procedury…to je velký problém.

Špatně napsaný kód SQL

Co je špatně a co by měl správně kód obsahovat?

  1. Jednotlivé atributy SELECT klauzule nejsou na samostatném řádku
  2. Hlavní klauzule by z hlediska přehlednosti neměly být na stejném řádku
  3. Atributy v select a joiny odsazujeme
  4. Aliasy tabulek nepojmenováváme a,b,c,d ale alespon trošku popisně, ne však příliš dlouze
  5. Klauzule, operátory, joiny, funkce píšeme uppercasem
  6. Používáme komentáře – samozřejme v tomto případě jednoduchého dotazu to není nutné, ale pokud skript obsahuje nějakou složitější logiku je více než vhodné tuto transformaci okomentovat.
  7. Já osobně jsem hardcorář a používám striktně i hranaté závorky

Nyní kód přepíšu na formát, který se dá lépe číst

Správně zformátovaný SQL kód

nad pochopením tohoto skriptu stráví člověk méně času než v případě nezformátovaného skriptu a správné zformátování nezabere mnoho času. Pokud se budeme bavit o skriptu o několik řádů složitějším, tak jsou tedy benefity zjevné.

5/5 - (4 votes)

Ing. Jan Zedníček - Data Engineer & Controlling

Jmenuji se Honza Zedníček a působím jako freelancer. Pracoval jsem dříve také jako BI developer, finanční controller a analytik. Vše pro společnosti z oblasti IT, bankovnictví, consultingu a výroby. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a občas neúspěšně odpálím pár balónků v golfu 🏌️

Již cca 10 let zapisuji na tento web různé návody určené zejména odborné veřejnosti, studentům a zájemcům o informace z oblastí Business intelligence, korporátních financí a reportingu.

🔥 Přihlašte se do naší Excel facebook skupiny (2.4k+ členů), kde si pomáháme Excel CZ/SK diskuse »

Leave a Reply

Your email address will not be published. Required fields are marked *