Pracovní ekosystém pro běžného Frantu vývojáře
Úvod do evoluce
Běžní uživatelé jsou zvyklý na své workflow, které se mírně liší v domácím prostědí i v pracovním světě.
Jak šel čas, software na strojích nám postupně vyvíjel s námi několik let a celkem hezky se to už ustálilo.
Běžné uživatele a jejich použití si můžeme rozdělit snadno na:
- Domácí uživatele
- Kancelářské uživatele
Obojí je celkem jasně definované a dobře ohraničené. Většina PC přichází s nějakou skladbou software, který odpovídá potřebám. A tak i prostředí se snadno nastavuje dle preference každého a nějakou malou “customizací”, avšak stejně nakonec sada nástrojů konverguje k plus mínus, tomu stejnému. Dejme si konkrétní ukázky:
Pro typického domácího uživatele
je počítač charakteristický těmito hlavními funkcemi:
- Abych si něco vyhledal.
- Abych se mohl podívat na film.
- Abych si mohl něco vytisknout.
- Abych si potomek (nebo tata) mohl občas něco zahrát.
- Abych mohl občas sesmolit nějaký dokument pro úřady.
Naopak pro typického kancelářského uživatele
Jsou potřeby sice podobné, ale trochu více rozvinuté a více zaměřené na spolupráci:
- Abych mohl plnohodnotně pracovat v průběhu směny s Excelem, Wordem a dalšími kancelářskými nástroji.
- Abych mohl komunikovat se světem pomocí chatu/mailů.
- Abych dokázal dohledávat informace a pracovat ve webových aplikacích či v aplikacích lokálních.
Tím nahlížíme do okénka evoluce. Od primitivních organismů, ke komplexnějším tvorům na úrovni ploštěnky s žebříčkovitou nervovovu soustavou.
Záměrně jsme ještě nezmínili jeden evoluční milník – běžného vývojáře Frantu.
Pojďme na tento hedvábný kousek kouknout taky a třeba se od něj i inspirovat.
Běžný vývojář Franta
Běžný vývojář Franta je abstrakce uživatele, který se stal lehce osvíceným v tom smyslu, že překonal svoje předchůdce (běžného domácího Frantu, běžného pracovního Frantu) a posunul se o další úroveň při práci s počítačem. Typicky bychom jej mohli označit za stvoření, který si své zvýšení specializace vykoupil notnou dávkou asociálního chování v důsledku nízké míry příležitostí být ve společenství BFU, kombinované s nízkou svalovou rozvinutostí a páteří typického pokrčení charakteristické pro daný druh. Dané jevy vznikly jako vedlejší efekt adaptace na křeslo. Světloplachost vynecháváme.
Jeho hlavní předností je, že neřeší podřadné věci typu Svatých válek, zdali je lepší:
- Windows vs Linux.
- Vim vs emacs.
- Apple vs Hemeroid.
Prostě používá vše tak, jak se to hodí a kde se to zrovna hodí.
Znakem vyspělého a pokročilého vývojáře je, že umí vše.
Bez potíží zvládá klávesové zkratky a je třikrát efektivnější než jeho předchůdci navíc za zlomek ceny. Jeho cílem je mít mouseless environment. Psaní všemi deseti je jak malá násobilka. Nemluvíme o tom, protože zde bude dále psáno o derivacích a integrálech.
Rozdělme si takový workspace vývojáře na několik kategorií, které se budou kontextově prolínat, možná i trochu přeskakovat.
Zde je celá osnova pro lepší představu, kterou si krok po kroku projdeme:
Hardware
Power PC
Vývojářský stroj je plnohodnotný stolní počítač. Jen je trochu více na (serverových) steroidech.
Jeho naprosto esenciální parametry musí být:
- Alespoň 32–64GB RAM. Čím víc, tím líp.
- Čím víc jader, tím víc Addidas. 12 jader je takové minimum pro profesionála.
- Schopnost virtualizace (ergo kontejnerizace).
- Grafická karta jen pro ty co rádi hrají hry.
- NVMe disk a čím víc kapacity má, tím šťastnější je vývojář.
Stroj musí být typu stolního počítače. Notebooky jsou NEPOUŽITELNÉ z dlouhodobého hlediska. Nemají patřičné prostory, aby dokázali zajistit odvětrávání komponent a jsou výrazně dražší jen proto, protože mají vše jak sendvič zmáčklé do malého prostoru. Je to jak když si koupíte o číslo menší trenky. Taky za chvíli prasknou a nejlépe tehdy, když bude potřeba podat maximální výkon.
Hardware, který dává smysl pro profesionální výkon – Nejnovější Apple Mac Mini.
- iMac je pro začátečníky.
- Mac Studio pro grafiky.
- Na nás zbývá Mac Mini ideálně s 12+ jádry.
Záložní notebook
Jako naprosto nezbytné se jeví mít záložní stroj. A ano, zde pro vývojáře dává smysl mít notebook. A klidně slabší, třeba jen o 35–50% horší než primární stroj, ale jako záloha kdyby primár náhodou umřel. Nebo jen tak na výlety,nebo-li když bude potřeba se pohnout někam z jeskyně do civilizace mezi zákazníky.
Doporučení: MacBook Pro
Zálohovací filozofie
Dva stroje, to si vynucuje zálohování. Elegantně lze na MacOS vyřešit pomocí TimeMachine Backup (to je v podstatě jen ukradený rsync) na nějakou Synology NAS.
Kancelářská a jiná data lze dát do iCloudu za mrzký měsíční poplatek, zbytek je v repech, netřeba zálohovat si to lokálně.
Monitory
Každému vyhovuje jiné číslo, ale ze subjektivní zkušenosti, řekl bych, že minimální počet monitorů jsou tři až čtyři. Tři ideální, čtvrtý jako odkladný.
Sladit si porty a synchronizaci
Je dobré si sladit porty. Pokud máme tři monitory, primární stroj musí mít všechny koncovky na dané káble a sekundární stroj…musí mít patřičné redukce taky. A není to levné.
Belkin F4U098 je na MacBook Pro naprosto výborná redukce, zajišťující velmi blízké mirrorování k MacMini.
Software
Contexts app
Contexts je naprosto esenciální nástroj pro práci v MacOS v momentě, když máte otevřeno více jak 8 aplikací. Významně usnadňuje vyhledávání v otevřených aplikacích, umožňuje rychlý switching a dokáže vyhledávat v otevřených aplikacích.
Stage Manager
Obrovský trn v patě je celková nepružnost konceptu spaces v MacOS. Je totiž dělaný pro běžné uživatele, kteří mají jeden monitor a tam něco dělají klikáním myši celý den.
Jenže my chceme být osvobozeni od myši, protože myš = bolí ruka + karpále
. A tak překvapivě Stage Manager se prosadil jako vynikající koncept pro práci s více monitory.
Monitory jako základní klasifikační kritérium pro kontexty
Když budeme ignorovat tvorbu dalších space v MacOS a zaměříme se jen a pouze na 4 monitory jako 4 workspace maximálně a každý si kontextuálně označíme jedním klíčovým slovem, pak víme kam přesně jaká aplikace bude patřit a násobně to zvýší efektivitu práce. Dělení dalších space si rozebereme pro každý monitor individuálně.
Zde je ukázka kontextuálně zaměřených desktopů:
Takto to vypadá v praxi:
Zde je rychlý přehled
Monitor | Kontextový název | Počet spaces | Příklady aplikací |
---|---|---|---|
1 | Ostatní | Pouze jeden space = monitor | Vše co se jinam nevejde |
2 | Browsing | Co space, to jeden Profile | Safari |
3 | Remote servers | Co space, to jedna samostatná aplikace | RDP, Citrix, parallels |
4 | Local terminals | pouze jeden space = monitor | iTerm2 |
A teď už pojďme pro lepší pochopení této esenciální části si rozepsat kontextové oblasti monitorů a budeme to popisovat pěkně do detailu.
Browsing
Browsing je problematika kontextově zaměřená na věci kolem prohlížení a brouzdání po netu.
Zde máme jeden samostatný monitor je dedikovaný na brouzdání po netu. Je to ten prostřední monitor – ten, co se používá nejvíce.
Zde platí: V případě potřeby lze použít na MacOS na monitoru2 více Workspace (jeden space = jeden Safari profile například), ale je lepší držet vše na jednom space.
Vimari
Naprosto zásadní plugin je Vimari, který pomocí známých zkratek z programu VI(M) dokáže pomoct s brouzdáním. Odpadá tak naprosto potřeba používat myš. Plugin k nezaplacení, zrychlení je raketové.
Safari profiles
Pro práci na více kontextech vně prohlížečů se osvědčili dedikované profily, které mají samostatné záložky. Jedná se v mysli o logické oddělení různých skupin společného jmenovatele. Další výhodou je v kombinaci s Focus mode možnost logického oddělení, že v určité časy je za PC čas na práci, v určité končí práce a je čas odpočívat.
Praktická ukázka dle harmonogramu od pondělí do pátku.
focus mode | Čas | Aktivita |
---|---|---|
Personal | 07:00 – 08:00 | Vstávání, ranní aktivity |
Work | 08:00 – 17:30 | Práce, kódění, dostupnost pro klienty |
Personal | 17:30 – 22:00 | Volnočasové aktivity, čas na přátele, klienti a pracovní aplikace jsou umlčeny. |
Sleep | 22:00 – 07:00 | Spánek, Vše vypnuto |
Takto může vypadat nastavení Focus mode pro Personal
Safari tab groups
Jakmile začnete pracovat na rešerši a vygenerujeme velké množství záložek, lze si je ukládat jako tab groups. Daleko častější scénář je, že třeba klient má desítky zákazníků a daný zákazník má svůj tab group, kde jsou webové linky, se kterými se pracuje staticky (nemění se) a pořád (Třeba scrum boards). Pak jsou tab group výborný nástroj na organizaci kontextu vně profilu.
Remote servers
Kontext remote servers je oblast, kde koncentrujeme vše co je spjato s virtualizací, nebo připojováním se na vzdálené plochy někam mimo.
Ukázka aplikací reprezentující Context Remote servers:
- Microsoft RDP
- Citrix WorkSpace
- Parallels
- VirtualBox
Zde platí: Jeden remote server connection = Jeden samostatný space. Typické pro ně je užití grafického prostředí.
Tedy konkrétně mám dvě vzdálená připojení, kde každá entita má svůj space:
- Parallels
- Windows server
Zde je užitečná forma granularity u Windows/linux strojů formou vnoření. Tedy například tak, že použiji ve Windows vícero oken pomocí Windows koncept workspaces a tím získáváme vně kontextového okna další vrstvu abstrakce dalšího kontextového okna pro další logické podkategorizace.
Nemusíme chodit daleko, i v GNOME nalezneme přesně tuto granularitu.
Local terminals
Kontext local terminals je oblast, kde koncentrujeme vše co je spjato s terminálovou prací.
Ukázka aplikací reprezentující Context local terminals:
- iTerm2
- Terminator
- Terminal
- Docker
Zde platí: Jeden monitor = Jeden space. Typické zde je využití textového rozhraní (TUI) nebo příkazového řádku. Nepotřebujeme více space, protože vše jde dělat pomocí tilling manageru nebo tabů. V ideálním případě je zde plná absence použití myši.
Reprezentanti a nástroje pro každodenní práci:
Nástroj + link | Popisek | ||
---|---|---|---|
mc | Legendární TUI nástroj pro procházení adresářové struktury. | ||
vim | Nejčistější nástroj na psaní textu bez potřeby sáhnout na myš. | ||
ohmyzsh | Vynikající a zrychlující framework na terminálovou práci. | ||
dracula | Nejpříjemnější theme na oči | ||
nerdtree | Průzkumník vně vim | ||
mcfly | Lepší vyhledávač v historii cli. | ||
iTerm2 | Naprosto nejlepší terminál, který v sobě má by default tilling manager a pod kapotou tmux. Pokud nemáte Mac, analogem je terminator | tmux. |
Užitečné vim pluginy.
Praktické aliasy v .zshrc
:
#preklepy
alias gc='git clone'
alias cta='cat'
alias gerp='grep'
alias sl='ls'
alias vm='mv'
alias c.='code .'
Modifikace tmux v .zshrc
if [[ $- =~ i ]] && [[ -z "$TMUX" ]] ; then
tmux attach-session -t ssh_tmux || tmux new-session -s ssh_tmux
fi
Cheatsheets
Ostatní
Kontext zaměřen na vše, co nespadá do žádného dříve uvedeného kontextu.
Tato část je až záměrně poslední, protože zde patří naprosto vše, co nikam jinam nespadá. Zkrátka všechny ostatní aplikace typu Apple Music, Photos, Finder, Messengery, Whatsappy, Signále, kalendáře, upomínky, poznámky…vše.
Právě použitím Stage Managera dosáhneme naprosto výborné funkce, že jeden jediný desktop může mít několik desítek otevřených aplikací, a snadno se v nich vyhledává pomocí Contexts a není potřeba bojovat v MacOS s více space, které jsou v tomto případě přítěž, kterou nelze ovládat jinak než myší.
Závěrečné shrnutí
Daný soupis je v krátkosti shrnutí dosavadního vývoje a evoluce jednoho z mnoha běžných Frantů vývojářů. Dostat se do této fáze trvalo formou pokus-omyl a věčným memorováním klávesových zkratek na různých operačních systémech přibližně 10 let. Stálo to neuvěřitelného množství času, které se nedá ve financích vyjádřit, ale výsledkem je naakumulovaná investice, která umožňuje udělat za 1 hodinu to, co ostatním trvá 3 hodiny 🚀.
Vybírá si to svoji daň (stejně jako každá jiná práce si ji vybírá)
A proto sláva těm hrdinům, kteří článek dočetli až sem a drží tento svět pohromadě kódem.