Mám rád články o tipech na aplikace a už jich mám pár, které používám stabilně delší dobu, tak jsem se rozhodl se o ně taky podělit.
Tento článek bude jenom o SW tipech, ale ve druhém bych se ještě rád podělil o HW tipy.
Používám Macbook, takže všechny aplikace budou primárně pro Mac Os, ale většina je multiplatformní nebo existují alternativy na jiné systémy.
PhpStorm
Nejvíce programuji v PHP, takže moje hlavní IDE je PhpStorm. Mám odzkoušeno pár dalších aplikací od JetBrains s se všemi maximální spokojenost. Zkušenosti mám s IntelliJ na Scalu a Android Studio na Kotlin.
Tady je dva nejzajímavější pluginy, které používám (kromě různých support pluginů pro frameworky atd.)
- Php Inspections — super věc na statickou analýzu kódu. Analýzu spouštím rovnou v IDE na konkrétním souboru a umí odhalit spoustu zajímavých věcí a je hodně rychlá. Na CI se nám pak spouští phpstan, ale tohle jako první kontrola je super.
- String Manipulation — Magie s textem
iTerm2
Terminál pro příkazovou řádku mám iTem2. V něm mám framework Oh my Zsh. Konfiguroval a inspiroval jsem se hlavně podle tohoto článku
a návodu
https://gist.github.com/kevin-smets/8568070
Git fixup
V práci kvůli hezké historii gitu a lepšímu code review používáme git commit –fixup.
Reálně to vypadá tak, že na review dám branch, která má
Commit A
Commit B
Commit C
a někdo mi najde chybu v commitu A a v commitu C. Opravím chybu v commitu A a vytvořím fixup commit pro A. Potom opravím chybu v C a připravím fixup commit pro C.
Znovu na review jde branch, která vypadá takto
Commit A
Commit B
Commit C
fixup! Commit A
fixup! Commit C
Pokud je to ok, tak pak přichází na řadu git rebase a squash.
Tady používám dva tooly, které mi ulehčují dělání fixupů. U fixupů je problém s tím, že musím správně určit, které změny patří do jakého commitu, aby správně proběhl git rebase.
Git fixup
Pokud změny dělám postupně a postupně je i commituji, jako ve výše uvedeném případě, tak používám tool git-fixup. Ten mi po zadání příkazu git fixup
vypíše všechny teoretické commity, kterých se změny můžou týkat a kam bych mohl chtít dělat fixup. Poté stačí zkopírovat hash commitu a spustit git fixup commitHash
a fixup je vytvořený.
Git absorb
Často se ale stává, že opravu chyb v commitu A a v commitu C udělám najednou nebo změny jsou ve stejných souborech a část změny patří do jednoho commitu a část do druhého commitu. Jednou možností je ručně určit co patří do jakého commitu nebo je možné použít tool git-absorb. Ten udělá to, že změny projde po řádcích a pro každý řádek hledá ve kterém commitu se tento řádek změnil a potom vytvoří fixup jenom pro tento konkrétní řádek.
V tomhle případě mi stačí spustit pouze git absorb
a fixupy jsou vytvořeny. Případně rovnou git absorb --and-rebase
a rovnou se spustí interaktivní rebase. Tenhle tool teoreticky může nahradit ten první, ale občas si sám chci určit jak budu fixupy vytvářet, takže používám oba dva.
Tig
Na git nemám žádnou GUI aplikaci a používám příkazovou řádku a v něm tig. Jedná se o grafické rozšíření gitu pro příkazovou řádku. Díky tomu je práce s gitem příjemná a efektivní.
Používám hlavně tyto tři příkazy:
tig
— pro zobrazení historie a změn
tig status
— pro přípravu commitů a fixupů. Pomocí klávesových zkratek je možné commitovat i po řádcích
tig stash
— na procházení a aplikovaní stash
BetterTouchTool
BTT je nástroj pro úpravu a mapování vstupních zařízení. Z celého seznamu možností používám klávesové zkratky, gesta myší a chvíli jsem měl upravený touch bar. Umí toho opravdu hodně postupně dostávám nové nápady jak si ulehčit práci.
Ovládání kurzoru
Píšu všemi 10 a je pro mě jednoduší použít klávesové zkratky na ovládání kurzoru než přehmatávat na klasické šipky.
- Right Alt + E (S,D,F) — šipky, nahoru, doleva, doprava a doprava
- Right Alt +A (G) — začátek a konec řádku
- Right Alt +W (R) — posun doleva a doprava po slovech
Numerická klávesnice
Začal jsem používat externí numerickou klávesnici, na kterou si mapuji akce hlavně z PHPStormu, které často používám. Zatím toto testuji a do budoucna uvidím jak se mi to osvědčí, ale zatím jsem spokojený.
Klávesnici mám vlevo vedle klávesnice na levou ruku a zatím mám namapováno:
- run inspection
- format code
- split vertically
- split horizontally
- unsplit
Gesta
Občas chci používat jenom myš a nechci vůbec sahat na klávesnici, takže mám vytvořená drawing gesta pomocí myši, které se aktivují podržením pravého tlačítka na myši.
TablePlus sql
Potřebuji se připojovat do různých databází a TablePlus (MySql, Postgre, Oracle i MsSql)zvládne všechny a je součástí Setapp, které si platím.
Umí vše co potřebuji a tady je pár funkcí, které stojí za zmínku:
- Historie sql včetně hledání
- Potvrzení zápisu do produkční db
- Ukládání často používaných sql
Alfred
Alfred je rozšířená verze spotlight v Macu. Používám ji denně a Mac už si bez této aplikace nedokážu moc představit. Kromě základních věcí jako je otevírání aplikací a souboru používám hlavně snipety a rozšířenou schránku.
Snipety
V Alfredu mám nadefinovat několik zkratek, které se po napsání rozbalí do plného textu.
Tyhle příkazy používám na denní bázi:
- gmff —
git merge — --no-ff
- gpr —
git pull --rebase origin dev
- gpfs —
git push -f -o ci.skip
- grd —
git rebase -i --autosquash origin/dev
Multischránka
- Historie až 3 měsíce
- Rychlé hledání — fulltextové hledání v historii je hodně rychlé
- Kopírování textu z historie — pokud něco v historii najdu, tak rovnou můžu část zkopírovat. Nemusím vkládat celý text pokud mi stačí jenom část
- Vkládání do jednoho záznamu — Zkratka CTRL+CC kopíruje do jednoho záznamu a odděluje oddělovačem. Super věc např. na idčka, která pak potřebuji najednou vložit do
where
podmínky v SQL
Další tipy
- regex101.com — tool na debug a vytváření regulárních výrazů
- CodeRunner — občas si potřebuji spustit nějaký kód a k tomu mám tuhle skvělou appku, která je součástí Setapp
- Things — Nedávno jsem přešel z papírového Bullet Journalu a zatím mě hodně baví. Začal jsem z větší části používat GTD a zatím spokojenost. Pravděpodobně v budoucnu napíšu článek jak používám
- Notion — osobní wikipedie. Více informací v mém starším článku
- Brew — balíčkovací systém pro Mac
- Setapp — pronájem aplikací. Za jednotnou měsíční cenu mám přístup k desítkám placených aplikací. Nabídka se stále rozrůstá a najdu zde vše co potřebuji.
- Sublime text — textový editor ve kterém edituji vše ostatní na co nemám IDE
Mrkněte i na můj blog Efektivnejsi.cz