4 min čítania
Pravidlo troch
Ťažké série stíšia všetko okrem tej časti mojej hlavy, ktorá počíta. V to ráno napočítala toto: tie isté štyri príkazy, napísané jedenásťkrát pred obedom.
Oprava nie je žiadna raketová veda. Alias je jeden riadok; shellová funkcia päť. Za znalosť syntaxe vás nikto nezamestná. Ľudí odlišuje reflex: vôbec si opakovanie všimnúť a mať miesto, kde oprava zostane navždy. To moje je tichá rodina dotfiles, ktorú nesie každý domovský adresár. .zshrc na mojom Macu, .bashrc na Windows stroji, .gitconfig pre verziovanie: aliasy, funkcie, prepínanie verzií Node. Malé časti, jeden systém, všade, kde pracujem.
Pod činkou opakovanie buduje svaly. V termináli len spaľuje sústredenie, jediný zdroj, ktorým odmietam plytvať. Neviditeľné dane som už lovil. Táto sa skrýva vo svalovej pamäti.
Pravidlo
Roky produkčnej práce ho zhustili do jednej vety: všetko, čo robím viac než trikrát denne, dostane skript. Nie ticket, nie „niekedy“: skript, ešte v ten deň.
Je to aj spôsob, akým čítam iných inžinierov. To, ako dlho niekto žije v termináli, nespoznáte podľa toho, ako rýchlo píše, ale ako málo.
Vaša súkromná štandardná knižnica
Každá relácia terminálu začína načítaním jedného súboru: ~/.zshrc (alebo .bashrc, ak je vaším domovom bash). Väčšina vývojárov s ním zaobchádza ako so zásuvkou na všetko, čo im Stack Overflow kázal vložiť v roku 2019. Ja ten svoj beriem ako súkromnú štandardnú knižnicu: načítanú do každej relácie, verziovanú, premyslenú.
Vstupnou úrovňou je alias, komprimované rozhodnutie:
alias dev='cd ~/dev'
alias cc='claude'
alias dbg='open -a "Google Chrome" --args --remote-debugging-port=9222'Navigácia, AI agent a prehliadač, ktorý sa prebudí s otvoreným debug portom. Každé na jeden úder do klávesnice, okamžite k dispozícii. Tri riadky, tri rozhodnutia, ktoré už nikdy nerobím dvakrát.
A princíp sa nekončí pri shelli. ~/.gitconfig je druhá polovica knižnice. Pár riadkov v jeho sekcii [alias] a svoje rutiny má aj verziovanie:
dog = log --decorate --oneline --graph
god = log --decorate --oneline --graph --all
confl = diff --name-only --diff-filter=Ugit dog prejde vetvu ako graf, git god ukáže celý repozitár naraz a git confl vypíše presne tie súbory, ktoré po merge ešte krvácajú. Žiadne prehrabávanie sa šumom git status, keď horí rebase.
Kde končia aliasy, začínajú funkcie
Alias je náhrada textu. Funkcia je program, ktorý žije priamo vo vašom shelli, s argumentmi, logikou a názorom:
c() {
nvm use node --silent
cc "$@"
}Jedno písmeno. Prepne reláciu na najnovší Node.js na mojom stroji a odovzdá riadenie agentovi. To elegantné je však to, čo nerobí.
Trik so scope, ktorý vás nikto nenaučí
nvm nie je binárka; je to shellová funkcia načítaná do vašej relácie. Keď prepína verzie, prepíše PATH toho jedného procesu shellu a ničoho iného. Žiadny globálny stav, žiadne sudo, žiadne vedľajšie účinky. A overil som si to v čistom shelli skôr, než som napísal túto vetu, pretože nepublikujem správanie, ktoré som nevidel na vlastné oči.
Vďaka tomu moje terminály žijú v rôznych dekádach, v mieri:
# terminál 1: klientsky projekt ukotvený v minulosti
cd legacy-app && nvm use # číta .nvmrc → v20.19.0
# terminál 2: agent na najnovšom motore
c # → v24.x, len táto reláciaZavrite druhý terminál a je to, akoby sa nikdy nestalo. Na tomto stroji koexistuje desať verzií Node. Počet konfliktov za celý čas: nula.
O čom to v skutočnosti je
Nie o klávesoch. Päťriadková funkcia mi ušetrí možno dve minúty denne: povedzme sedem hodín ročne, ani jeden pracovný deň. Tá aritmetika je až trápna. Čo však mení, je postoj: predvolené nastavenia sú rozhodnutia, ktoré za vás urobil niekto iný, a každý skript v mojich dotfiles je predvolené nastavenie, ktoré som prehlasoval.
Terminál nemá zábradlia. Preto sa mu väčšina ľudí vyhýba, a preto v ňom žijem. Tá istá zručnosť, ktorá stavia tieto malé nástroje, je dôvodom, prečo cudzie skripty najprv čítam a až potom spúšťam. Zručnosť reže na obe strany; tú svoju držím namierenú na vlastné stroje.
Pod činkou platí ten istý princíp: odstráň zbytočné, opakuj to, čo sa úročí, a nechaj čas násobiť. Daň vrátená. Ak staviate tímy (alebo šialené roadmapy) z ľudí, ktorí takto rozmýšľajú, moja schránka je otvorená.
Zdieľať článok