How to code dobře

Tipy triky jak kódit alright. IDE, pluginy, zkratky.

Jazyk je na vás, ale já dělám python.

Je to jen jedna z mnoha možností, ale mě se osvědčila.

Python – Instalujte nejnovější verzi.

VS Code – IDE (Vývojové prostředí). Stáhněte, nainstalujte, otevřete, vlevo v liště otevřete extensions a nainstalujte

  • Python
  • Bracket select
  • Code runner
  • Comment anchors
  • Markdown preview enhanced

Pokud chcete víc, tak nepovinně

  • Excel viewer
  • GitLens
  • Image preview
  • Open in browser
  • SQL Server (mssql)

Když máme toto nainstalované, přejdeme k nastavení.

Samozřejmě, že funguje nastavení tak jak znáte, ale protože se snažíte kódit, není nic lepšího, než upravit přímo JSON, který nastavení obsahuje (JSON spolu s XML slouží například k přenosu dat, nebo k jejich uložení. JSON vypadá jak CSS a XML zas jako HTML).

Pokud budete mít otevřených více souborů (většinou), můžete přepínat okna stejně jako v prohlížeči pomocí Ctrl + Tab, pokud jich máte hodně, použijte Ctrl + P – kurzor se objeví nahoře v řádce. Napište první 2 písmena jména souboru, takzvaný intellisense vám doplní zbytek a Enter. Pokud chcete spustit nějak příkaz v VS Codu, stlačte Ctrl + Shift + P. Do objevivšího se kurzoru napište například rel. Intellisense vám nabídne celou možnost reload window. To potvrďte, aby fungovala rozšíření. Poté znovu Ctrl + Shift + P, a nyní napište settings, zvolte Preferences: Open Settings (JSON). Zkopírujte sem toto


{
"editor.renderWhitespace": "all",
"python.linting.flake8Enabled": true,
"window.zoomLevel": 0,
"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe",
"editor.quickSuggestionsDelay": 0,
"commentAnchors.editorFolding": false,
"commentAnchors.workspace.enabled": false,
"editor.folding": true,
"editor.showFoldingControls": "always",
"editor.detectIndentation": false,
"editor.tabSize": 4,
"editor.renderControlCharacters": false,
"breadcrumbs.enabled": false,
"markdown-preview-enhanced.previewTheme": "monokai.css"
}

Důležitých je především několik prvních hodnot. Budou nám díky nim vidět mezery, což je pro python zásadní, bude nám to kontrolovat, zda píšeme spisovně, takzvaný linting (správný počet mezer, správné pořadí atd.). Vybere nám defaultní terminál a nastaví plugin anchors tak, aby nerozbíjel funkcionalitu programu, konkrétně skládání funkcí (mnoho řádků do jednoho).

Teď proberem si lištu vlevo. První ikona soubory. Druhou nazvu spolupráce – tedy historie souborů (na většině věcí nedělá jenom jeden člověk). S takzvaným verzováním nám pomůže GIT, popřípadě plugin GITLens, kdy můžeme mít náš soft na Githubu a zároveň v počítači, a tak když něco pokazíme, můžeme se vrátit libovolně daleko. Naopak když jsme si jistí, přehrajeme lokální verzi na Github. Dalším panelem je debug mode (ukážu na konci). Předposledním panelem jsou rozšíření, ty už znáte a posledním jsou kotvy, nebo záložky jestli chcete. Za komentář můžete napsat například TODO, a víte, že se sem budete muset ještě jednou vrátit a co udělat. Další možností je za komentář napsat SECTION název. V rozsáhlejším projektu tyto záložky velmi šetří čas i nervy.

Takže teď k těm best practicies. Stáhněte si tento soubor Pythonmd. Jedná se o mojí dokumentaci toho, jak se co dělá. Pokud, to myslíte s programováním vážně, doporučuju začít si dělat vlastní od začátku a přidávat to, s čím jste se už setkali. Když máte dokumentaci staženou, přidáme si jí do VS code. Vytvořte si workspace – složku kam budete vše ukládat. Zkopírujte do ní stáhlý soubor s dokumentací. Klikněte na první kolonku souborů vlevo, otevřete soubor dokumentace dvojklikem. Otevře se vám soubor pro úpravy, do něj klikněte pravým tlačítkem a dejte Markdown preview enhanced: Open preview on the side. Simsalabim, máme dokumentaci přímo v IDE.

Nyní do psaní pythoního kódu. Pokud s programováním začínáte, základní syntaxi se naučte například na Sololearn. Když už znáte základy syntaxe, není podle mě nutné rovnou číst dlouhosáhlé knihy o teoretickém programování. Ideální je prostě si s tím hrát. Aplikovat kód někoho jiného, třeba ho jednou i vylepšit a pak se o to s komunitou podělit. Praxe vás donutí jít občas v něčem hloouběji a najít si vhodnou literaturu. Když nevíte kde začít a baví vás datová analytika, můžete si stáhnout například můj kód z Autoregresivní neuron. U všech skriptů vidíme nahoře import něco as něco, nebo from něco import něco. Zatím nemáme co importovat. Knihovny musíme stáhnout. Jedním řešením, je nainstalovat si anacondu (nebo minicondu), která většinu standardních knihoven obsahuje. Úplně dole v liště je potom potřeba anacondu zvolit jako výchozí itnerpreter. Další možností je instalovat si je jednu knihovnu po druhé.

V dolní části vidíme panel s možnostmi problems, output, terminal. Chceme terminal, takže na něj klikneme. Do terminálu napíšem pip install pandas.

Pokud skončíte v erroru, jsou přinejmenším dvě možnosti. První, že IDE neví jaký python spustit. Python je normální soubor s příponou .exe. V modré liště dole máte mít Python 3.7 nebo vaše verze. Pokud ne, pokuste se o to. Pokud to nejde, nezoufejte. Je potřeba nastavit enviromentální proměnnou.

V nastavení dejte do vyhledávače environ, a zvolte nabízené Edit system enviromental variable. Tam rozklikněte Enviromental variable. Vyskočí na vás okno.

V okně upravíme řádku Path. Přidáme adresu kde je soubor python.exe, který můžeme najít normálně ve vyhledávání. Mnohdy je to C:\Users\uzivatel\AppData\Local\Programs\Python\Python37\ přidejte ještě stejnou adresu, se složkou scripts, tedy C:\Users\uzivatel\AppData\Local\Programs\Python\Python37\Scripts\. Ve skriptech jsou další exe soubory, které spuštějí například import knihoven pip.exe, nebo například jupyter o kterém bude řeč později.

Nyní již by měly jít knihovny nainstalovat všem. Další věcí tedy bude rychlá orientace v IDE. Moje pravidlo zní, myš používej jen v případě nouze. Používej zkratky jak jen dokážeš. Pokud ti některá nevyhovuje, tak ji změň. To ve VS Codu to uděláš tak, že pod kolonkou file kliknete na preferences a poté na keyboard shortcuts. Hodně zkratek je totožných s internetovými prohlížeči. Pár zkratek, bez kterých se neobejdete. PS: možná že jsem si je některé definoval já a nebudou fungovat, potom si je upravte dle své libovůle. Přidejte si Python: Run current cell – Ctrl + Enter

  • Ctrl + Tab – Přeskočí na další okno (soubor)
  • Ctrl + W – Zavře soubor
  • Alt + ↑ – Přesune řádku nahoru (lze i dolů)
  • Alt + Shift + ↑ – Zkopíruje řádku nahoru (lze i dolů)
  • Shift+ Enter – Skočí na další řádku i když jste u prostřed slova
  • Ctrl + D – Označí slovo, dašlí stisk další stejné slovo dále v textu (možno upravovat najednou)
  • Ctrl + Shift + Alt + ↑ – Rozmnoží kurzor nahoru (Psaní více řádek najednou)
  • Ctrl + P – Otevře tabulku souborů
  • Ctrl + Shift + P – Otevře tabulku příkazů
  • Ctrl + ] – Odsadí označené doprava ([ posune doleva)
  • Alt + A – Označí obash uvnitř závorek, nebo uvozovek – Pouze s pluginem Bracket select
  • Ctrl + Enter – Spustí Jupyter (Ještě si počkejte)
  • Ctrl + Alt + N – Spustí kód

Nyní nejzábavnější část – napsat kód. V pythonu jde udělat všechno hned několika způsoby a nedá se často říct, že jedna je lepší než druhá. Spustu věcí můžete napsat jako for cyklus, stejně tak jako list comprehensions, stejně jako tak pomocí map volat funkci nad daty. Několik způsobů, stejný výsledek. Jde spíše o filozofické téma. Pište věci tak jak vám vyhovuje a vždy se nechávejte inspirovat (ale nepřehánět). Co je na pythonu skvělé, je jeho filozofie. Věci mají jít jednoduše. Neřešíte správu paměti, když něco chcete, stačí najít knihovnu, kterou udělal někdo na druhé straně světa po práci jenom za to, že mohl něčím přispět komunitě. Bojujte zkoušejte.

Když máme nějaký kód, co chceme spustit, nebo debugovat, máme 2 možnosti. Výchozí puštění v terminálu téměř nepoužívám. První možností pomocí pluginu a Code runner a zkratky Ctrl + Alt + N. Pro mě je používanějším řešením Jupyter. Dnes už je součástí samotného python rozšíření a není ho třeba instalovat. Netřeba teoretických řečí o tom, že je to server, že vychází z jazyků Julie, Python a R. Důležité je, že funguje přenádherně rychle (kromě prvního spuštění, které naopak trvá). Okno je dobré rozdělit si na dva díly, v jednom psaný kód, nebo dokumentace (o dvou monitorech nemluvě). Jupyter za nás tohle udělá automaticky. Poslední co zbývá – pokud máte tmavé téma (doporučuju), tak je potřeba nastavit, aby grafy byly s černým pozadím. Nainstalujte si knihovnu jupyterthemes pomocí pip install, v terminálu spusťte příkaz

jt -t monokai

Najděte složku ~/.ipython/profile_default/startup/ začátek je obvykle C:/users/nazevuzivatele. Pokud neexistuje soubor startup.ipy, tak ho vytvořte. Ipy musí být přípona, nikoliv název – startup.ipy(.txt) vám nebude fungovat. Do souboru vložte následující
from jupyterthemes import jtplot
jtplot.style()

Aby jupyter fungolval, je potřeba na začátek napsat #%%. V případě, že chcete spustit jen kus kódu, napište opět #%% tam, kde chcete skončit. Jupyter spustí jen to, co je mezi těmito znaky. Wualá, můžeme pouštět – u mě Ctrl + Enter. Výsledek může vypadat jako na dalším obrázku.

VS Code

Vpravo nahoře mám seznam proměnných, pod ním výsledek. Pokud máme někde chybu a z proměnných nelze vyčíst kde, protože je to třeba ve smyčce,  je potřeba zajít do debug módu. Nejdříve vložíme tzv. breakpoint. Vložíme ho tam, kde chceme kód zastavit, nalevo od čísla řádky. Musí se objevit malé červené kolečko. Poté stiskneme F5. Nyní můžeme sledovat postup kódu a vývoj proměnných.

Nyní už jenom hodiny, dny, týdny, roky, probdělé noci. Inspiraci můžete hledat právě v jupyter noteboocích někoho jiného. Tady je ukázka několika krásných kousků. Nemusíte nic stahovat, můžete pomocí jupyteru a Nbvieweru prohlížet, upravovat i kódit přímo z prohlížeče.

Teď už nezbejvá než popřát hodně zdaru.

PS: Nezapomínejte chodit na sluníčko, kdyby vás to chytlo…

Napsat komentář

Vaše emailová adresa nebude zveřejněna.