tillbaka till startsidan

9. Kodkonventioner

Lyssna på Spotify lyssna! Lyssna på iTunes

Mitt i något av ett gemensamt värmeslag i en alldeles för varm lägenhet pratar vi kodkonventioner. Allt från semikolons existensberättigande, om vi föredrar dubbel- eller enkelfnuttar samt starka åsikter om hur filer ska döpas. Dessutom ett skämt om varför Therése inte kan ha en abstraktion på sina SQL-frågor och ett ordentligt missförstånd.

Om du gillar podden blir vi väldigt glada för en liten recension i iTunes eller en prenumeration på Spotify. Följ oss och säg hej på @asdfpodden på Instagram eller Twitter (Anton, Therése) <3

Avsnittets skämt:

Vet du varför jag inte kan ha en abstraktion på mina SQL-frågor?
Jag har ORM-fobi.
Skrapa här!!
Transkribering
Transkriberingen är gjord av nån "AI-grej". Du kan förbättra den genom att klicka precis här :)
00:00:00
- Anton, vet du varför jag inte kan ha en abstraktion på mina SKL-frågor?
00:00:06
- Nej. - Ormfobi.
00:00:08
- Alltså...
00:00:10
Det blir bara sämre och sämre.
00:00:15
Har du kommit på det själv, eller? - Ja.
00:00:18
- Okej, då är det ganska relativt sett bra.
00:00:22
- Ja, men vadå? Eller hur?
00:00:24
- Nej, men för att du har kommit på det själv så är det ett bra skämt.
00:00:27
Ja, och den är ju väldigt tydligt kopplad till mig, att jag har ormförening.
00:00:32
Ja, ja, ja.
00:00:33
Jag har tagit med mina egna upplevelser här.
00:00:35
Jag är...
00:00:37
Jag ska lägga det här skämtet i beskrivningen.
00:00:39
Eller jag kanske ska lägga första delen av skämtet.
00:00:44
Så att man får lyssna fast nu så får man höra punchlinen.
00:00:49
Jaha, okej.
00:00:50
Jag vill inte spoila dig när du säger det.
00:00:52
Nej.
00:00:54
- Ja, nej, fan det... Ja, bra. Jag skrattade.
00:00:57
(skratt)
00:00:59
- De här inledningarna blir bara längre och konstigare.
00:01:02
- Ja, jag vet. Men att börja med ett skämt, jag står helt bakom det, oavsett hur dåliga de är.
00:01:05
(skratt)
00:01:07
Ja, nytt avsnitt. Det var ett tag sedan vi spelade in, känns det som.
00:01:12
- Jag tror inte det var det. - Nej, kanske inte.
00:01:14
Det känns bara att... Jag vet inte. Jag har haft semester.
00:01:16
- Ja. Jag har ju inte haft det. - Nej.
00:01:21
Så nu har jag ändå varit tillbaka och jobbat en halv vecka, typ över dag idag, tisdag.
00:01:26
- Tisdag. - Ja, typ en halv vecka.
00:01:28
Så nu är jag ändå på banan igen.
00:01:30
Och min energi är fan, alltså dag och natt, jämfört med innan.
00:01:35
- Ja. - Det är så jävla skönt.
00:01:37
Jag har nog aldrig mått, alltså såhär relativt sett, så mycket bättre efter en semester som jag har gjort efter den här semestern.
00:01:44
Det är fan helt sjukt.
00:01:46
Och då har jag liksom gjort mindre än någonsin i vår.
00:01:48
Ja, men vi kanske är som hälsen då. Det är ju jobbigt att göra samma sak och sitta still på samma ställe i samma lägenhet.
00:01:56
Det är nog jobbigare än vad vi tror.
00:01:58
Ja, Gud ja. Nej fy fan. Det ska vi inte prata om. Jag tänkte, vi pratade lite grann om, jag hade skrivit ner en händelse "Kodkonventioner, bra eller anus?"
00:02:06
Mm, och då frågade jag "Vad menar du med det?"
00:02:09
Exakt. Men jag tänker kodkonventioner kan ju vara ganska mycket.
00:02:14
Jag tänker det behöver kanske inte vara kodkonventioner, kanske kan vara bara konventioner överlag,
00:02:20
alltså när man utvecklar.
00:02:22
Typ om jag ska komma på något exempel nu, döpkomponenter med stort bokstav i React.
00:02:31
Fast jag inser att det är liksom inte riktigt en konvention för att om man inte gör det så pajar det.
00:02:34
Ja, eller det är en tydlig konvention från React-sidan. Det är en vald regelmässig konvention.
00:02:42
Ja, precis. Men okej, kanske mer hur man ska formatera koden.
00:02:49
Mm, vill du köra default exports eller named exports?
00:02:54
Exakt, det har jag starka åsikter om.
00:02:57
Oj, vad jag bryr mig väldigt lite.
00:02:59
Nej, men okej. Just inom React så när man kör default export.
00:03:08
Jag har starka åsikter att det ska vara inte default.
00:03:14
Alltså att de ska vara named, att man namnerar dem.
00:03:17
Mycket för att det blir enklare, om man skulle lägga till någonting mer,
00:03:22
att exportera från samma fil, då är det enklare att den också kommer med.
00:03:26
Då behöver du inte ändra på den tidigare.
00:03:28
Och när det gäller komponenter så vi hade typ så här, om du, nu kanske det är fixat i och för sig, jag vet inte, men förut var det så att om du så här bytte namn på komponenten när den var default export, då byttes inte importnamnet liksom.
00:03:42
Alltså om du gjorde en refakturering med typ F2 i VS Code till exempel.
00:03:47
Okej.
00:03:49
Hänger du med på vad jag menar?
00:03:51
Jag har inte gjort så mycket F2 i VS Code.
00:03:55
Det är ju drömmen.
00:03:57
Min egentligen prefererad IDE är ju Webstorm.
00:04:02
Det borde vara samma där, eller?
00:04:04
Det är ju rename symbol.
00:04:08
Tack för att du förklarade det, för att F2 är den universala.
00:04:11
Inser att F2 kanske inte är universal.
00:04:13
Det kan faktiskt vara så att det är F2 i Webstorm också.
00:04:19
Men jag inser att det är helt rätt, man kanske borde säga att refakturera, byta namn på den här symbolen, alltså variabeln eller funktionen eller vad fan det nu kan vara.
00:04:30
Ja, men det är ändå rimligt att det inte döps om för att de inte kopplar det till varandra.
00:04:34
Nej, precis. Men det vill man ju alltid.
00:04:37
Ja, det kanske är. Alltså det är kul nu när vi ska prata kodkonventioner för att jag är ju inte så himla opinionated.
00:04:46
Jag är mer, jag vill bara att saker ska vara lika.
00:04:52
Ja, liksom igenom hela kodbasen.
00:04:55
Ja, i största möjliga mån.
00:04:57
Sen exakt hur det är, det har jag riktigt svårt för.
00:05:02
Det är dubbelfnuttar i JavaScript.
00:05:06
Där vill jag ha enkelfnuttar så länge det inte är HTML eller JSX.
00:05:11
Ja, det är typ en av de få regler jag brukar ändra i Prettier.
00:05:16
Jag tror den defaultar till dubbelsnyttar, eller har gjort i alla fall.
00:05:21
Tror den kan ha bytt... Nej.
00:05:25
De bytte nånting i alla fall i den senaste major som ändrade allting i hela vår bas.
00:05:31
Exakt. Det är alltid kul.
00:05:33
Man bara kör "default Prettier" och så byter de av och man bara "ja, ja".
00:05:36
Nej, det var nog "trailing commas".
00:05:38
Ja, för den tänkte jag också säga. Det är också en som jag brukar ändra.
00:05:40
fast nu, det visste jag att ni har vändat nu, att ta bort trailingkomma.
00:05:44
Det vill man inte ha.
00:05:45
Ja, jag tycker det är ganska nice.
00:05:47
Det är bara vägen.
00:05:49
Nej, alltså det är ganska nice när man ska lägga till nya rader.
00:05:52
Då behöver man inte tänka på det.
00:05:54
För det är alltid trailingkomma.
00:05:55
Annars blir det så här, "Någonting gick sönder, vad gick sönder?"
00:05:57
Ja, komma.
00:05:59
Vilket otroligt sammanhängande avsnitt det var.
00:06:05
Okej, om vi ska prata lite trailingkommas.
00:06:10
Jag tror att vi får skylla på att vi har värmeslag här, för det är fruktansvärt varmt i lägenhet.
00:06:17
Nej, men alltså trailing-kommas är ju helt onödiga.
00:06:22
Det finns ingen anledning att ha dem.
00:06:25
Nej, men det finns ingen anledning att inte ha dem.
00:06:28
Jo, de är i vägen.
00:06:29
Fast de är ju jättebra att ha när du bara ska lägga till någonting nytt under.
00:06:33
Ja, men då kan man lika gärna trycka enter.
00:06:35
Vadå trycka enter? Ja, men då får du inget komma.
00:06:39
*Skratt*
00:06:41
Ah!
00:06:43
Just det!
00:06:45
Just det!
00:06:47
Jag vet att det här är ljud nu bara men om ni såg hur tydligt man kunde se någonting tändas in i Antonijas huvud nu.
00:06:55
Gud, jag kom på att jag absolut höll med dig.
00:06:59
Vet du vad, som sagt skyllde helt på värmen.
00:07:03
Jag pratade om en helt annan sak.
00:07:05
Jag pratade om semicolon.
00:07:09
Nej, jag inser också det här.
00:07:16
Trailing Commas, skitbra, älskar Trailing Commas.
00:07:19
Det är det jag har sagt i latin.
00:07:25
Du var väldigt rätt.
00:07:29
Hur kan du gilla semicolon?
00:07:31
Det var det jag tänkte. Vilket du kanske gör ändå.
00:07:34
Men okej, trailingar kommer man skitbra för att jag håller helt med att man ska alltid ha det för att då kan man bara trycka enter och lägga till en ny rad.
00:07:40
Däremot, semicolon i rörelseuppgift. Bort.
00:07:44
Ja, alltså jag är igen inte så opinionated.
00:07:50
Jag känner att det här kommer vara jag som skriker hullt saker och sen rätter du mig när jag skriker om fel saker, uppenbarligen.
00:07:56
Ja, jag var ju, speciellt i början, mycket mer opinionated.
00:08:02
"Du kan inte ha Snake Case här, och även Case är fult."
00:08:07
Precis när man börjar.
00:08:09
För då tror jag att det är de här grejerna som jag förstod i början
00:08:15
och som jag kunde hålla fast vid, att det här måste vara bra.
00:08:19
För jag hade egentligen inget annat.
00:08:21
Jag hade inga patterns, jag hade inga andra kodkonventioner att lägga min tid på.
00:08:25
Så det blev väldigt mycket detaljer.
00:08:27
Nu är jag mer så här...
00:08:29
Ja, det jag tycker är riktigt jobbigt är när det är olika överallt hela tiden.
00:08:34
Som jag sa, jag vill ha det liksom konsekvent över projektet.
00:08:37
Sen utöver det så spelar inte det så jättestor roll för mig känner jag.
00:08:44
Jag har aktivt jobbat på att släppa lite med det också.
00:08:47
Just för att jag... Ja men som konsult så kommer man in i ett projekt.
00:08:51
Och jag vill inte vara en sån konsult som kommer in och börjar ändra allting direkt.
00:08:55
för att jag vill ha det på ett visst sätt.
00:08:57
Det tycker jag är helt fruktansvärt doucheyt bara.
00:09:00
Så jag är mer så här, hur vill ni ha det?
00:09:02
Vad gör jag här?
00:09:04
Absolut, då gör vi så här här.
00:09:06
Semikolon, inga semikolon.
00:09:08
Jag är fine med vilket.
00:09:10
Jag håller helt med i det du säger.
00:09:14
Även om jag nog kan lyfta vissa grejer.
00:09:16
Men de grejerna jag lyfter, jag skulle inte lyfta så här,
00:09:19
vilka prettigare regler vi har.
00:09:21
Till exempel.
00:09:22
För att de spelar egentligen inte så stor roll.
00:09:24
Om det inte är något som är superkonstigt såklart.
00:09:27
Men att ha ett semicolon eller inte, det är ju super opinionated i att
00:09:32
ta bort dem för att det ger mig ingenting att ha dem där.
00:09:36
Medan om man jämför med till exempel
00:09:39
default export eller named export,
00:09:43
då ger det mig ändå någonting att ha dem som named export för att om jag ska refakturera så går det mycket enklare.
00:09:48
Samma sak, en annan grej som jag också, eller om man tittar på det nuvarande projektet jag är på, då har vi typ att
00:09:54
filerna som komponenten ligger i heter med snake case
00:09:58
eller kebab case eller vad man vill kalla det.
00:10:01
Snake case är ju med underscore kebab case, det är ju med dash.
00:10:05
Ja, just det.
00:10:07
Det är det ja.
00:10:08
Jo, men du har helt rätt.
00:10:10
Precis, de heter med kebab case.
00:10:13
Och jag kanske föredrar att ha dem
00:10:17
alltså att filerna heter samma sak som komponenten, det vill säga med
00:10:21
camel case.
00:10:24
Är det den?
00:10:25
När man har stor bokstav i början också?
00:10:27
Nej, det är ju... Då är det något tillägg, va?
00:10:30
Ja, jag har sett det också.
00:10:32
För CamelCase är en liten bokstav i början.
00:10:33
Precis.
00:10:35
Gud, jag kommer inte ihåg.
00:10:37
Nej.
00:10:38
Nej, PascalCase heter det, va?
00:10:40
Ja, det gör det.
00:10:41
Och jag föredrar PascalCase-namnet på både filen och komponenten
00:10:47
för att då heter de samma sak.
00:10:48
Och det är lite mindre att komma ihåg, liksom.
00:10:51
Men det gör mig ingenting nu, att sitta i ett projekt där det inte är så.
00:10:55
Att det skulle ge mig någonting att ändra på alla filer, nej.
00:10:59
Det kommer inte hända.
00:11:00
Men däremot andra grejer som default export eller
00:11:05
något som jag tänkte på nyligen som var
00:11:09
att faktiskt döpa filerna till
00:11:12
namnet
00:11:14
på komponenten. Oavsett hur man formaterar det.
00:11:17
Men många döper dem ju till index.tsx eller index.js eller jsx eller vad fan man nu vill.
00:11:24
Och där drar jag någon typ av gräns.
00:11:26
Alltså, jag fattar att folk vill ha lite snyggare importvägar.
00:11:32
Men det är enda vinsten och det är ingen vinst.
00:11:36
Nej, alltså här är jag väl också.
00:11:39
Jag har väldigt svårt för att det finns fem miljoner indexfilar.
00:11:43
Jag tycker det är jättestökigt och jag ser inte vilken fil jag öppnar på mina tabbar.
00:11:49
Då måste jag in och kolla vilken jävla papp det är.
00:11:52
Och jag kollar ju alltid fel för jag läser ju som en kratta.
00:11:58
Alltså det där håller jag absolut med.
00:12:02
Jag tycker inte det är trevligt, men sen finns det vissa grejer när man samlar allting i en indexfil per mapp.
00:12:08
Vilket jag också kan stämma lite på för då är det en fil med bara exporter.
00:12:13
Men så drar man en import där.
00:12:15
Och så drar man många importer från samma ställe för det är någon typ av utill eller ikon eller någonting.
00:12:21
Och då är det helt plötsligt ganska nice.
00:12:23
Så jag ser ju både fördelar och nackdelar med det.
00:12:25
Ja, det är väl enda fallet jag skulle också liksom tycka att det är okej.
00:12:30
Alltså att du har någonting, men kanske inte liksom om du har komponenter som du är öppet till.
00:12:35
Även om de exporterar flera grejer.
00:12:37
Utan, snarare kanske som du säger, man har en utill-grej eller du vill ha en entry point in i den modulen eller vad det nu kan vara.
00:12:47
Om det är utills eller vad det kan vara.
00:12:49
Men exakt som du säger, det är så mycket negativt, man döper alltid inte index.
00:12:54
Och sen blir det också så här, hur ska man fortsätta följa den standarden då?
00:12:59
Om man har valt att komponenterna ska heta det, ska testerna också heta det?
00:13:02
Ja, vi har ju ganska många index.test.tsx.
00:13:07
Ja.
00:13:07
Och vilket index testar den här nu då?
00:13:11
Exakt.
00:13:11
Och det är bara, för mig så spårar det alltid ur.
00:13:15
För att, sen har jag varit med om att folk gillar att ha sin styling utanför.
00:13:18
Och då är det så här index.style.ts.
00:13:21
Och man bara, ah, en till indexfil.
00:13:22
Så nu är det tre indexfiler på en komponent.
00:13:24
Och man bara, ah.
00:13:25
Ah.
00:13:27
Ja, vi har faktiskt styles.scss.
00:13:30
Nu har den blivit rätt.
00:13:31
Fast det är lite nice med de här import from punkt slash.
00:13:38
När man är i samma mapp.
00:13:41
Det finns färdigheter och nackdelar med allting.
00:13:43
Jag är egentligen mot index och när jag började på ett in-house-projekt
00:13:50
och skrek jag lite om det så var jag lite upprörd och sen så går det över efter en vecka
00:13:53
för att det bara börjar följa strömmen.
00:13:55
Jag orkar inte riktigt bry mig, men jag tycker generellt sett inte riktigt om index.
00:14:02
Vi har ju också ett storybook-projekt, så vi har ju index.tsx, index.test.tsx, index.stories.mdx.
00:14:12
Man hör ju redan här, det skaver igen. Det är hemskt.
00:14:18
Jag kan föreslå att vi ska ta på oss style-filerna till index.se.
00:14:23
Nej, jag har inte det.
00:14:25
Men du kan ju lägga det som ett ironiskt argument åt andra hållet.
00:14:29
När du försöker omvänd psykologi.
00:14:31
Ska vi inte döpa om stylefilerna till index också? Allting måste ju följa samma standard.
00:14:35
Och sen kan du liksom, fast det skulle kanske vara bättre om man kunde skilja på de här.
00:14:40
Som av en händelse, vad det här är.
00:14:43
Exakt, och sedan att någon lyssnar på det här avsnittet.
00:14:46
Men jag berättar ju inte för så många att jag har den här på.
00:14:51
Det har vi ju förstått. En annan konvention, nu är vi inne på React-konventioner, men det här känner jag väl kanske inte, eller jag känner starkt för det, men jag lägger mig väldigt lätt, så att säga.
00:15:09
Typ om man kör style components till exempel.
00:15:12
Aldrig kört style components.
00:15:14
Men det är ju typ att du definierar
00:15:16
Ja, du definierar stylingen i komponenten egentligen
00:15:20
och sen så blir det typ en komponent.
00:15:22
Ja, exakt. Alltså det du kan göra är att du kan skriva typ
00:15:24
styled.div och sen skickar man in
00:15:26
en template literal, det vill säga
00:15:28
de här back, bakåt-fnuttarna.
00:15:30
Som, som, vad heter det?
00:15:35
Markdown?
00:15:36
Ja, men också GraphQL var jag tänkt på.
00:15:39
Ja, precis, precis.
00:15:41
Du skriver typ "style.div" och sen sådana där bakåtfnuttar.
00:15:46
Och sen kan du skriva CSS, precis som du skriver CSS i vanliga fall.
00:15:49
Och då får du tillbaka en, det är väl tekniskt sett typ en komponent.
00:15:53
Fast den har liksom, det blir då en div med den här stylingen på bara den diven.
00:15:57
Och då gäller det liksom bara den.
00:15:59
Och sen kan man även göra typ "style" och sen parenteser istället för punkt.
00:16:03
Och så skicka in en komponent och så kan du styla den och grejer.
00:16:06
Och det är ganska smidigt. Jag tycker det är skitnice att skriva CSS på så sätt.
00:16:11
Och här är också två åsikter egentligen. Det ena är att jag tycker att oavsett om man har sådana eller om du har en hjälpfunktion, du har någon såhär, någon liten hjälpfunktion som inte ligger i komponenten men som du ändå använder i komponenten.
00:16:27
Sådana grejer tycker jag ska ligga nedanför komponenten i filen.
00:16:31
Ja, jag tycker någon sak du ska ligga ovanför.
00:16:35
Ja, innan jag säger varför jag tycker det, varför tycker du att de ska ligga ovanför?
00:16:39
Jag tror det lever kvar den här gamla att saker som ska användas sen ska finnas först.
00:16:49
Jag har nog ingen egentligen, återigen jag kanske inte har så stark åsikt här heller, men jag tror att bara i mitt huvud är det mest naturliga.
00:16:59
Att jag vill se vad jag ska använda och då ska det ligga innan jag använder det.
00:17:04
Jag fattar helt, men det är spännande.
00:17:07
Jag håller med om det argumentet att man vill gärna ha grejer i ordningen de används uppifrån och ner.
00:17:14
Men mitt undantagsfall är just i komponenter.
00:17:17
Jag vill ha komponenten först i filen.
00:17:22
Så när jag öppnar filen så ser jag att det här är komponenten.
00:17:24
Då kan man få en väldigt enkel översikt över vad det är för någonting.
00:17:28
Jag vill inte ha, jag tycker att både style components och hjälpfunktioner och om det kan vara någonting annat som ligger utanför
00:17:34
är liksom implementationsdetaljer
00:17:36
Och jag vill inte behöva bry mig om de funks jag
00:17:40
behöver om
00:17:41
Här var min hjärna bara
00:17:45
Ja men det är ju bara att scrolla
00:17:47
Jo, jag håller helt med. Det låter så, när jag säger det så låter det så i huvudet av mitt hundet
00:17:51
Att säga ja det är bara att skruva ner till komponenten
00:17:54
Men att slippa göra det varje gång man öppnar en komponent
00:17:57
är ganska skönt
00:17:58
Ja, jag förstår absolut vad du säger. Om jag är intresserad av att använda en komponent.
00:18:05
Om du kör sådant som TypeScript till exempel, vill du inte ha interface och sådant först?
00:18:10
Jo, det kanske är något undantag. Props interface till exempel, den brukar jag lägga ovanför.
00:18:16
Ja, för att som du säger, om man vill in i en komponent, ska jag använda den här komponenten, då vill jag ganska snabb info kring
00:18:22
Vad tar den för props, hur funkar den, vad är det för typ av komponent?
00:18:25
Jag är inte intresserad av hur den är implementerad om det inte är så att jag ska in och mecka i den.
00:18:29
Så absolut, jag förstår det om man ska använda det, men då skulle jag nog vilja ha,
00:18:33
använda som du säger, props och sånt högst upp.
00:18:36
För att det är ändå relevant för användandet.
00:18:41
- Ja, men det håller jag helt med om. Och så har jag också gjort, när jag gjort det.
00:18:45
Att så här, propsen ligger omför.
00:18:47
Men det är mycket, argumentet är just att jag vill kunna få en överblick av komponenten
00:18:51
ur perspektivet jag ska använda den.
00:18:53
Eller liksom, vad är det den här tar in?
00:18:55
Eller vad är det? Någonting sånt.
00:18:57
Jag behöver liksom inte veta implementationsdetaljerna
00:18:59
direkt. Jag behöver inte få dem
00:19:01
kastade i ansiktet på en.
00:19:03
Nej, jag har nog inte tänkt
00:19:05
så mycket på det överhuvudtaget.
00:19:07
Men nu är du såld.
00:19:09
Det blir på något sätt absolut
00:19:11
att man ska in en kod och rota, men jag
00:19:13
tänker om man har ett storybookprojekt också
00:19:15
då är egentligen tanken att du
00:19:17
ska kunna vandra in i storybook
00:19:19
och faktiskt titta på komponentens info, se vad är det för någonting, vad ska den ha, hur används den.
00:19:24
Vårt storybookprojekt gör ju inte alls så överhuvudtaget, men det behöver vi inte prata om nu.
00:19:31
Men det är ju tanken tror jag. Så att jag har nog inte tänkt att kod är där man ramlar in först kanske.
00:19:40
Nej, det kan jag ändå förstå också.
00:19:43
att liksom, jag vet inte, jag känner bara att jag hamnar ofta där då,
00:19:47
att då hjälper det ofta att bara ha den högst upp.
00:19:51
Ja.
00:19:52
Så är det ändå. Men som sagt, det här är också en grej jag liksom,
00:19:55
"jaja, det projekt jag sitter i nu har ju inte så här",
00:19:57
då ligger allting ovanför och sen komparenter längst ner.
00:19:59
Ja.
00:20:00
Så några konventioner som jag har, som när jag får härja fritt i en fil,
00:20:08
håller och sen ger upp.
00:20:10
Det är många importer, exporter eller ikoner eller vad det kan vara.
00:20:15
Jag vill ha dem i alfabetisk ordning.
00:20:16
Och det är till och med till den grad att jag orkar inte ta hem ett plugin
00:20:22
eller ett paket för att göra det automatiskt,
00:20:24
utan jag sitter hellre och sorterar dem automatiskt.
00:20:26
Jag tror att det är nog kanske också,
00:20:29
jag tror att det är mycket det som gör att jag inte har så mycket problem med konventionerna.
00:20:34
Jag gör ganska mycket manuellt för att jag orkar inte bry mig till den graden.
00:20:37
Det är så här, det här är ett jättetråkigt arbete, det är fine för mig för jag tycker det är rätt skönt att sitta och göra någonting trögt och bara tänka på molnet tag.
00:20:48
Jag är inte en sån som, det här måste jag automatisera.
00:20:51
Det här borde jag absolut kunna bygga ett skript för att göra, för att sitta och göra det här för hand i tio gånger, det är helt orimligt.
00:20:57
Fattar.
00:20:58
Medan jag är mycket mer så här, ja men typ som, ja jag ska döpa om allting och jag använder Visual Studio Code.
00:21:04
F2 funkar inte på default exports och det driver mig till vansinne.
00:21:10
Jag är mer så här, jag kör en search och en replace på alla namn
00:21:13
och sen så utvärderar jag dem ännu och än för att se om det är någonting jag vill dra på.
00:21:16
Jag är lite mera, jag vill säga analog.
00:21:20
Det är ju fortfarande digitalt men jag skulle vilja säga att jag är lite mera...
00:21:25
Ja.
00:21:26
Men alltså importer i alfabetisk ordning är ju lite intressant ändå.
00:21:31
Det måste vara lite kontroversiellt.
00:21:32
Alltså?
00:21:33
Ja, men det tänker jag.
00:21:34
Vill man inte importera lite mer i semantisk ordning?
00:21:38
Jo, inte komponentimporter, inte importer från olika paketer.
00:21:42
De snarare när jag vill importera alla de här komponenterna för att kunna exportera ut dem i projektet.
00:21:47
Ah, okej, okej.
00:21:48
Jag såg framför mig att det var blandade rader mellan komponenter, hjälpfunktioner, bibliotek.
00:21:54
Allting blandades rakt ifrån ner och jag bara "Oh, här ryser jag av".
00:21:58
Går du in och ändrar alla komponenter och alla gråter?
00:22:01
Nej, absolut inte. Om vi snackar React, React ska vara överst.
00:22:04
Alltid. Sen ska externa paket komma.
00:22:07
Sen kommer typ interna paket.
00:22:11
Och sen komponenter, helpers, alltid styles sist.
00:22:14
Det är det värsta jag vet dock.
00:22:16
När styles kommer i mitten.
00:22:19
För vi kör CSS-module.
00:22:21
React, bla bla bla, komponenter, bla bla bla.
00:22:24
Sen kommer det en import CSS.
00:22:27
From styles.scss.
00:22:30
Och sen kommer det flera JavaScript-importer.
00:22:32
Det driver mig till vansinne, för jag vill ha CSS-importen sist.
00:22:36
Ja, jag förstår din plåga så att säga.
00:22:44
Okej, men då är jag lite lugnare.
00:22:46
Det var inte helt att ha den alfabetiska ordningen.
00:22:48
Nej, jag gillar den här när det är väldigt tydligt i våra huvuden när vi pratar om det och andra panikar lite.
00:22:53
Alla sköntar lite nu.
00:22:55
Jag har lite style components grejer, men det är svårt att skriva style components.
00:23:01
Man kan skriva style components både som en template literal, som en sträng,
00:23:07
och skriver det exakt som du skriver CSS i vanliga fall.
00:23:10
Men du kan också skriva den som ett objekt.
00:23:13
Och då skriver du typ som när du skickar in en style prop till vanlig React JSX.
00:23:21
Ja, jag tror att så är det där i en Next.js-tutorial.
00:23:24
Det såg inte alls trevligt ut.
00:23:26
Nej, jag gillar det inte riktigt.
00:23:28
Jag tycker att det är mycket skönare att skriva vanlig CSS.
00:23:31
För då är det också så här, ja men säg att vi skulle byta från StyleComponents.
00:23:34
Ja, det är bara att kopiera lite.
00:23:36
Ja, men blysa det när du skriver allting inline.
00:23:40
För att jag menar, det beror ju självklart på vad du bygger.
00:23:42
Men CSS kan ju verkligen bloata massor.
00:23:45
Och då bloatar man ju hela JSXen.
00:23:48
Det blir ju inte så läsbart tycker jag.
00:23:50
Nej, exakt. Med style component blir det lite mer läsbart, för då kan du fortfarande bryta ut, du får fortfarande ut en egen komponent så att säga.
00:23:58
Bara att du skriver det fortfarande som ett objekt istället för som en sträng.
00:24:03
Okej.
00:24:04
Så det blir inte inline i din rendermetod om man säger så då.
00:24:10
Nej, för det här jag såg, det var allting var inline i J6n.
00:24:14
Ja, men exakt. För det går ju att göra. Alltså det går ju alltid att skicka ett styleobjekt till allting i
00:24:19
i sextyp.
00:24:19
Ja, det var inte
00:24:21
det var ingen favorit.
00:24:23
Nej, jag gillar inte heller inte det, för ibland kan det bli så jävla mycket.
00:24:25
Ibland har man väldigt mycket CSS och då blir det ju kaos.
00:24:29
Nej, så vet jag inte. Men som sagt, jag tycker ändå
00:24:33
för att komma tillbaka till det temat var egentligen
00:24:37
så tycker jag att konventioner är ganska nice
00:24:40
så länge man inte är liksom
00:24:42
religiös med dem, alltså att man verkligen följer dem för att vi måste följa konventionen typ?
00:24:48
Nej, alltså konventionens är ju jag som är nödvändiga
00:24:53
för ett projekt för att hålla koden konsekvent.
00:24:56
Och det tycker jag är jätteviktigt för att som sagt, det blir jättekausigt när alla gör det på sitt sätt.
00:25:02
Det blir stökigare kod och jag tror att det blir, alltså jag skulle ju säga att det blir mer buggar för att man
00:25:09
läser inte varandras kod lika enkelt och sådana saker.
00:25:11
Så absolut att kodkonventioner är viktiga.
00:25:13
Sen exakt vilka är kanske inte så viktiga.
00:25:17
Nu har vi lallat iväg lite med det,
00:25:19
men vi har också pratat väldigt mycket React.
00:25:21
Det finns ju mer allmänna som jag håller,
00:25:24
typ den här, ska man ha bra variabelnamn
00:25:27
eller ska man kommentera sönder allting hela tiden?
00:25:29
Och vad skriver du för typ av testkommentaren
00:25:33
när du skriver tester och sådana saker?
00:25:35
Där är jag...
00:25:37
Jag vet inte om man ska säga skolad.
00:25:40
Det är nog någon som har lärt mig och den personen har jag tagit efter mycket.
00:25:45
För jag tycker att variabelnamn för mig får ju kanske hellre vara långa.
00:25:53
Det finns ju en gräns. Det finns ju de som skriver hela meningar för att de tycker det makar mer känsl.
00:25:57
Jag är mer så här "kan vi få det kort och koncist och förklarande?"
00:26:00
Det föredrar jag ju hundra gånger mer än att kommentera allting.
00:26:05
Kommentarer tycker jag är till för mera,
00:26:08
"Ja, men den här affärslogiken är skum"
00:26:12
eller "Det här beslutet gjorde att koden ser ut så här".
00:26:17
Sådana saker, så det är sånt jag vill använda kommentarer för.
00:26:21
Jag har lite svårt för hela den här param,
00:26:25
Vad ska in, vad ska ut, vad gör funktionen, vad den tycker jag är?
00:26:30
Ja, jag gör också väldigt mycket, jag vet inte vart det är ifrån riktigt.
00:26:36
Men jag har plockat upp att kommentarer ska beskriva varför och inte vad.
00:26:39
Alltså det ska beskriva syftet bakom koden, om det behövs, mer än vad koden gör.
00:26:45
För koden ska vara självförklarande i stort sett.
00:26:47
Och sen som sagt, om det är någonting konstigt, om man tittar på koden och säger
00:26:53
Varför ser den ut så här? Då behöver man en kommentar.
00:26:55
Ja.
00:26:56
I stort sett.
00:26:57
Jag tror också att några av mina favoritkommentarer var väl någonting i stil med
00:27:01
"We should really fix this but we have no time so it looks like this now because it looks like this."
00:27:09
Jag har jobbat i ett projekt där det stod en kommentar, en lång kommentar, alltså en 10-15 raders kommentar
00:27:15
om typ "här har det spenderats mycket blod, svett och tårar"
00:27:19
Och sen var det liksom en lång kommentar om så här "Vi har gjort vårt bästa" typ.
00:27:25
Det var ett projekt vi tog över från en annan leverantör.
00:27:29
Och sen kom in skuldförvaltare och så öppnade man det här och bara "Ja, okej, okej".
00:27:34
Och sen stod det typ "Lycka till" tror jag.
00:27:38
– Åh Gud, det är ju verkligen domerdagen.
00:27:42
– Och alltså det stämde ju för att den där kodsnutten som den där kommenterade
00:27:47
kommenterade spenderades det mycket blod, svett och tår av till på efter den här kommentaren.
00:27:52
Jag har tittat på ett projekt en gång, där man öppnade P&P, och det var ingen som var P&P-utvecklare,
00:28:02
så öppnade man det, och så var det kommentarer på kinesiska. Man bara "Jajamän, jag stänger den här igen och så backar jag långsamt bakåt".
00:28:11
Det är så klassiska, det var någon kommentar som stod "Here be dragons" som också var viral för ett tag sedan.
00:28:18
Som också var en varning för att försöka inte ens.
00:28:22
Det här är bara farligt att röra sig här i det här området.
00:28:25
Och man bara okej.
00:28:27
Ja, men det är ändå nice på något sätt för då förberedde man sig för det allra värsta.
00:28:33
Det var som någon sa på universitetet att reglerteknik var en helt omöjlig kurs som vi inte kunde klara av.
00:28:38
Och jag nojade över den i några år, sen så fick jag en femma.
00:28:42
Alla andra kurser gick skit, men regler teknik gick bra.
00:28:47
Fyra förväntan, helt enkelt.
00:28:49
Ja, precis. Så att jag tror, ja.
00:28:52
Jag tror också, eller så här,
00:28:55
jag tror när man börjar rota i det och kodkonventioner och se vad man gör
00:28:59
så tror jag det är oändligt mycket mer än vad man tänker på.
00:29:02
Ja, ja Gud, jag känner när vi pratar nu bara att vi skulle lätt kunna återkomma till det här
00:29:07
om ett halvår i ett nytt avsnitt och prata lika mycket mer om kodkonventioner.
00:29:12
Vi skulle kanske också kunna vara lite mer strukturerade.
00:29:15
Det kan vi göra, vi kan vara lite mer preppade.
00:29:16
Ja, jag vet inte om vi någonsin kommer bli mer strukturerade.
00:29:19
Nej, det märks.
00:29:19
Det känns ju inte som en grej.
00:29:21
Nej.
00:29:21
Nej, men typ, alltså en annan sak som jag har tänkt mycket på det är ju tester.
00:29:26
Unittester framför allt.
00:29:28
Jag brukar hålla lite på on the down low, att jag är bra på tester.
00:29:32
Nu är jag inte bra på tester, men jag är helt okej på tester, liksom.
00:29:37
- Du är inte dålig på tester. - Nej, jag orkar inte riktigt rota i dem, men jag kan skriva tester.
00:29:42
Jag kände precis hur Jante kom och kastade en sten i mitt huvud.
00:29:47
Att unitester kan många se som "det suger att skriva test" och lalalala.
00:29:54
Jag är mycket mer som att man ska se det som att man testar.
00:29:57
Dels testar man kontrakt, om det är integrationstester som man har, men även unitester är väldigt tydliga för dokumentation.
00:30:03
Här skriven tydlig beskrivning av vad du testar, vad du förväntar dig
00:30:07
och sen så kommer du ha dokumenterat din kod på ett otroligt bra sätt
00:30:13
som folk efteråt kommer kunna använda för att förstå den bättre.
00:30:17
Och då menar jag, om man tar specifikt React-komponenter, då menar jag ju
00:30:22
sällan att testa att någonting du har skickat in renderas, för det är inte så himla intressant att testa.
00:30:28
Det är mer att då testar jag att React gör det React ska göra, typ.
00:30:32
Men saker som förväntas förändra sig, extra skumma saker,
00:30:37
uttills som du använder till de här grejerna,
00:30:39
alltså att skriva väldigt bra tester.
00:30:41
Och har man väl skrivit ett test, då är det ganska lätt att skriva för några case till.
00:30:45
Och då blir det väldigt tydligt dokumenterat,
00:30:48
jag förväntar mig det här, jag förväntar mig inte det här.
00:30:50
Om det här händer så är det uppenbart en bugg.
00:30:52
Och då har man gjort, ja men alltså, det är ganska vettigt tycker jag.
00:30:57
Likadant som för andra Java-tester och sådana här, om du bara är tydlig i dina tester, du får så himla mycket med det.
00:31:06
Så det är en konvention jag tycker är bra.
00:31:09
Ja, gud ja. Det är också ett avsnitt som kommer.
00:31:12
Alltså?
00:31:13
Ett pratat testning. Lätt.
00:31:15
Vi har nog kanske dragit över lite på tiden, men jag tänker ändå att vi kan återkomma till konventioner lite mer preppade.
00:31:24
med våra favoritkonventioner
00:31:26
och våra hatkonventioner
00:31:30
- Trailingkommas
00:31:31
- Trailingkommas, uppenbarligen
00:31:32
Ja, det är fem minuter i början
00:31:34
men jag har totalt missuppfattat vad jag pratar om
00:31:37
Det är ändå härligt
00:31:39
Jag hade kunnat klippa bort det, men det ska vi inte göra
00:31:42
- Det är för sent
00:31:43
- Nej
00:31:44
Men vi kanske rundar av där, eller?
00:31:46
- Ja
00:31:47
- Och som vanligt, allt som vi brukar säga på slutet
00:31:51
men det är för varmt för att säga det just nu
00:31:52
Ja, men Twitter, review, säg hej till oss, tycka om oss.
00:31:57
Exakt, vi behöver uppmärksamheten.
00:31:59
Ja, ha ett bra bad.
00:32:01
Allt sånt. Men då säger vi så.
00:32:04
Okej.
00:32:05
Hej då.
00:32:06
Hej då.
Tillbaka upp