Brådis? Generera lite kod!

Squeeds Julkalender | 2019-12-12 | Martin Galloway
Vi läser ju mer kod om dagarna än vi skriver, men ibland kan det vara bra att skriva mycket kod riktigt snabbt. Ett proof-of-concept, en prototyp, ett snabbtest för att se om en idé flyger. Då kan det vara lite irriterande att man har en märklig fingersättning och använder pekfingervals mer än man vill erkänna 🙋‍♂️. Kodgenerering till undsättning!
machine.jpg

Jag jobbar dagligen med i huvudsak React i Webstorm så exemplen kommer att vara baserade på detta.

File templates

Dags för en ny komponent? Ett unit-test? Använd med fördel en filmall! Det finns ett gäng fördefinierade att justera efter behov, men det går utmärkt att skapa egna. Utgå från en befintlig fil eller börja från scratch.

Här ersätts ${NAME} automatisk med namnet (minus ändelserna) på filen. #[[$Category$]]# är en namngiven placeholder som du får möjlighet att fylla i med något relevant när du använder mallen.

Live templates

När en fil väl är på plats och du behöver fylla på med boilerplate så är live templates ett bra verktyg. Börja med att skriva en förkortning som matchar en mall och låt Webstorm auto-komplettera. Det jag kan sakna vad gäller mallar för JavaScript/TypeScript är att Webstorm inte automatiskt kan importera saker som används i en mall. Om man i exempelvis i Webstorms syskon-IDE IntelliJ IDEA anger ett "fully qualified name" som java.util.List så auto-importeras List och kortas ned till bara klassnamnet i koden. Ett uppslag för en ny plugin kanske..?

Mallen ovan använder en fördefinierad funktion för att automatiskt namnge set-funktionen för useState-hooken:

Postfix completion

Detta påminner om live templates med skillnaden att en postfix completion aktiveras genom att efter ett uttryck skriva punkt följt av mallens namn. Postfix completion är relevant när man vill omge något (variabel, literal etc) med kod.

Sammanfattning

Effektivitet bör inte mätas i antal rader kod per minut, men emellanåt är det bra att det går undan. File templates, live templates och postfix completion är bara tre verktyg av många för att få lite fart, men de är några jag personligen dykt ned i på sistone.