tillbaka till startsidan

26. En djup kris i Therése relation

Lyssna på Spotify lyssna! Lyssna på iTunes

Anton har bytt uppdrag och har i sin reflektion insett hur mycket han älskar Prettier. Med det som utgångspunkt diskuterar vi “developer experience” (DX), trailing commas, copy paste-utvecklings styrka och att automatisera så mycket som möjligt. Dessutom lite snack om en djup kris i Therése relation, för tidiga abstraktioner och den skavande känslan när React-importen ej är överst.

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

Länkar

Avsnittets skämt:

Vilket är webbutvecklarens favorit-te?
URL Grey
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
Vilket är webbutvecklarens favorittte?
00:00:05
Jag dricker ju ändå te, men jag kommer inte på ett enda te sort just nu.
00:00:10
Grönt te.
00:00:12
Urle Grey.
00:00:15
Fan, det där har jag till och med hört förut.
00:00:18
Fan också. Åh, vad dåligt.
00:00:21
Jag är helt hundra av att jag har hört det här förut.
00:00:24
Kanske till och med sagt den till någon för länge sedan.
00:00:27
Ja men säkert. Det här är nog någon som har passerat förbi mig på internet.
00:00:32
Ja, det var bra tycker jag. Bästa på länge.
00:00:36
För att jag inte har kommit på den själv.
00:00:40
Det kanske är det som är temat varje gång jag säger det. Det här var ett bra skämt, så har du inte kommit på det själv.
00:00:45
Ja. Nej det tror jag inte.
00:00:48
Välkommen till ett nytt avsnitt av ASDF.
00:00:53
Idag så... Jag ska byta uppdrag kan jag börja med, typ på måndag.
00:01:00
Och då har jag reflekterat lite grann över vad jag har gjort senaste året, typ.
00:01:06
Och en av de största grejerna till och med mig tror jag, för jag är ju suttit i ett projekt
00:01:11
där jag vill bygga om en frontend-plattform från grunden, typ.
00:01:14
Och den gamla är liksom en plattform från 2016 eller något, så det är ganska gammalt.
00:01:19
Men en grej som har slagit mig så jäkla mycket är att fan vad bra Prettier är.
00:01:25
Ja, jag vet.
00:01:27
Alltså för i det gamla projektet finns inte Prettier.
00:01:30
Och i det nya så finns det.
00:01:33
Alltså vet du, det är kul för jag håller ju inte på att byta uppdrag idag.
00:01:37
Men jag tänkte precis det här om dagen.
00:01:40
Jag hade till och med en liten diskussion på jobbet om det.
00:01:44
att vi fasen var Prettier är fantastiskt.
00:01:49
Ja, alltså jag minns tillbaka till innan Prettier kom
00:01:54
och det var diskussioner om syntax.
00:01:57
Alltså inte syntax, utan formatering.
00:02:00
Ja, man samlade sitt rum alla frontändare i en timme
00:02:05
och så bråkade man lite om vilken rad saker skulle ligga på.
00:02:08
Ja, nu ska vi skapa en style guide för teamet
00:02:11
där vi bestämmer om vi ska ha mellanslag eller tomrad efter funktion eller inte.
00:02:19
Det är mycket så här konstiga grejer som man bara, det här måste vi komma överens om.
00:02:26
- Ja och sen typ, vi måste verkligen i code reviews och sånt påpeka när vi inte följer Styleguide.
00:02:36
Så det blir små kommentarer och små fixar för att fixa bara utseendemässig syntax.
00:02:43
Och jag var faktiskt väldigt skeptisk första gången då Prettier skulle dras in i projektet jag satt i.
00:02:51
För jag var så här, nej det ser ju ut som skit när Prettier formaterar.
00:02:56
Speciellt om man bara har typ 80 tecken per line.
00:02:59
Så jag var faktiskt ganska skeptisk, plus att jag fann ändå någon typ av charm i att sitta och bråka om dubbel förnutt eller enkel förnutt på möten.
00:03:10
Men jag är verkligen omvänd där, för att Prettier är så jäkla skönt.
00:03:16
- Ja, jag tycker att deras filosofi är så sjukt bra, att det är så här, det här är "the false end".
00:03:24
Det här är så vi tycker och vi kommer inte att ändra oss.
00:03:27
Sen är det klart att de har en massa regler man kan overrida där också.
00:03:30
Men det känns som att de flesta som jag känner har sagt att "ja men okej, vi kör default".
00:03:38
Ja, det var ju det med trailingkomma va? Men det ändrar ju dem.
00:03:42
Ja, precis. Det är väl en grej. Det var väl sista raden på en array med saker.
00:03:49
Förut så tog de bort trailing-kamera på den sista raden, men nu läggs det väl på då?
00:03:54
- Ja, för det kommer jag ihåg för att det var en update.
00:03:59
Så plötsligt en dag så ändrade jag i varje fil jag var inne i så ändrade jag på saker.
00:04:04
Och det var det att de hade bytt ifrån till inställningen.
00:04:06
- Ja, den ändringen tycker jag ändå är vettig i det.
00:04:12
Det blir bättre till exempel när man kollar skillnader när man har gjort någon ändring.
00:04:19
För då behöver du inte ändra på den raden som egentligen inte berörs.
00:04:23
Så här lägger du på en ny rad i en array så behöver du inte visa i diffen vad som...
00:04:29
Att den raden ovanför ändras bara för att du lär på dig komma egentligen.
00:04:33
- Nej, alltså jag älskar trailing commas också.
00:04:35
Så att vi behöver inte övertala så att säga.
00:04:40
Nej men exakt. Och sen tycker jag också att det finns andra saker som jag tror att jag brukar ändra så att det inte är 80 i bredd.
00:04:47
Alltså 80 karaktärer i bredd.
00:04:50
Utan brukar det vara lite högre.
00:04:53
Och jag kommer inte ihåg vad deras default nu för tiden är på semicolon.
00:04:58
Jag tror det är inga semicolon.
00:05:00
Ja, det känns också som att det är det. För det är det jag föredrar.
00:05:04
Och när jag tänker efter så tror jag inte att jag brukar overrida det på nya projekt.
00:05:08
För det är ju så sjukt skönt.
00:05:09
För där var jag, liksom,
00:05:11
tidigt, det kanske är överdrivet,
00:05:13
men hyfsat tidigt ute med att förespråka
00:05:15
inga semicolon.
00:05:17
Och många bara "men man måste ju ha semicolon!"
00:05:19
Vilket gjorde det så jäkla skönt.
00:05:21
Men Preacher bara "nej, vi rekommenderar inga semicolon".
00:05:23
- Jag var fan team semicolon alltså.
00:05:27
(skratt)
00:05:29
Och jag vet verkligen inte varför.
00:05:32
Hatar väl förändring eller något sånt?
00:05:34
- Ja, men du är lite liksom konventionell av dig.
00:05:37
Du vill inte ha förändring.
00:05:39
Nej, Gud. Herregud, vad gör vi här? Varför kodar vi ens ES5?
00:05:44
Jag tycker inte det är ett sådant här verktyg som kommer och...
00:05:49
Jag skulle ändå säga att 99% av utvecklare tycker att det är positivt.
00:05:54
Att det här förbättrar upplevelsen som vi har, alltså Developer Experience, eller DX.
00:06:02
att den blir mycket bättre bara för att vi kör det här lilla verktyget?
00:06:05
Ja, för att vissa kan ju dock vara så här att
00:06:10
okej, jag tycker det har sina fördelar i ett projekt där det är många personer
00:06:16
men skriver jag egen kod så vill jag absolut inte ha det för att jag vill kanske inte att
00:06:21
något ska bestämma över hur jag vill formatera saker och det blir fult och grejer.
00:06:25
Och det kan jag ändå förstå.
00:06:27
Men för mig har jag blivit så sjukt van vid, och jag är ett vanlig djur, men att trycka "Ctrl" eller "Command" "Save" och så formateras hela min fil.
00:06:39
Ja.
00:06:41
Och det vill jag ju ha kvar.
00:06:43
För jag vill inte hålla på, alltså fasen vad mycket man har suttit och tabbat eller spacat och flyttat fram och tillbaka och grejer.
00:06:50
Det tar ju bara tid. Det är helt magiskt att jag vill ha den här koden, det ser ut som skit nu. Jag trycker "Save" och det blir bra.
00:06:57
Ja, verkligen. Tittar man på ett av projekten som jag har med Prettory så är det några filer som jag ignorerade av Prettory.
00:07:07
Men varje gång man ska göra något i de filerna så försöker man spara och så händer ingenting. Då tror jag att jag inte har sparat.
00:07:15
Jag tror att saven har misslyckats för att Prettory inte körs. Så det är en jäkla muskelminne på något sätt.
00:07:23
att det är en sån visuell cue på att "ja, nu har det sparat" att den ändrar min fula formatering.
00:07:29
Så där brukar jag sluta med att typisar jag tar den koden jag skrivit, kopierar ut den i en annan fil som inte är ignorad
00:07:35
och så sparar jag den där en gång och så kopierar jag in den igen. Så det är perfekt.
00:07:41
- Gud, vad jobbigt.
00:07:42
- Man skulle kunna ta den pragmatiska vägen att faktiskt undersöka varför de här filerna är ignorade
00:07:46
och kanske lösa det, men det har jag inte riktigt blivit av.
00:07:50
Jag är i och för sig inte någon som gör fiffiga lösningar heller, jag gör ganska mycket manuella saker. Men just Prettier också när man ska sätta upp ny miljö och så.
00:08:02
Det är alltid, alltså ska jag trycka in i, för nu kör jag VS Code och då har jag gjort i två uppdrag nu. Jag var lite sen på att gå över till VS Code men det har också blivit riktigt skönt.
00:08:14
Jag förstår vad alla pratar om, jag ska sluta vara en "old man" gällande Cloud.
00:08:19
Varje gång jag ska stoppa in i JSON att jag vill formatera on save, då har jag av någon outgrundlig anledning fortsatt att göra det per språk.
00:08:31
Ja, "script", "format on save". Sen sitter jag bara i TypeScript-filer.
00:08:35
Lite pitsur för att ingenting funkar.
00:08:38
Och så kommer man in i en CSS-file och så fortsätter det så att jag måste skriva upp alla filer.
00:08:44
Men man borde ju bara köra format on save på allt.
00:08:47
Ja, det tror jag att jag gör faktiskt.
00:08:51
Jag vet inte, det var någon som sa någon gång att det var dåligt att göra så. Jag kommer inte ihåg varför.
00:08:57
Nej, det kan ju vara en lyssna fråga. Om ni tycker att det är dåligt att göra och säga format on save på allt så berätta gärna varför.
00:09:07
Jag såg också att det var någon som gjorde ett projekt, undra om det var någon som jobbar på Spotify kanske, om jag inte minns helt fel.
00:09:13
Som har gjort ett projekt som heter "Betterer".
00:09:15
Alltså... "Bettre"?
00:09:17
Eller... Alltså...
00:09:19
Det är väl någon halv kombination av det och "Prettier", att det ska styras upp på samma sak.
00:09:24
Som är...
00:09:26
Jag körde det i... Vad var det? Jag körde det nog i ett privat projekt, tror jag.
00:09:30
Det är i alla fall att man kan ställa in saker, att nu vill vi inte använda det här biblioteket längre.
00:09:34
Så därför disallarar vi nya imports av den.
00:09:39
Så alla gamla finns kvar fortfarande och de är helt okej.
00:09:43
Men lägger du på en ny så kommer du få en varning för det, eller en linting error.
00:09:47
Det tycker jag också är ett bra sätt att...
00:09:51
Då behöver man inte göra allting på en gång.
00:09:54
Och du kan bara rekommendera att från och med nu, om vi ska byta från Moment till Dejjs eller vad som helst.
00:10:01
Då kan man lägga in att istället för Moment rekommenderar vi DayJS.
00:10:05
Vad är det om man importerar en Moment på nya ställen?
00:10:08
Då får du en varning som säger att importera DayJS istället.
00:10:11
Och det är ju sjukt smidigt.
00:10:13
Ja, men det är superbra för att så många, speciellt om det kommer in nya personer i projektet.
00:10:18
Ibland hoppar man ju bara runt och copy/pastar.
00:10:20
Har man gjort det här förut? Ja, men de drar in Moment och antar att det är det vi kör.
00:10:25
Så det där är ju otroligt hjälpsamt.
00:10:28
Ja, men exakt. För det är ju väldigt mycket, man driver ju med copy-paste-utveckling, men när man sätter sig in i nya projekt så är det ganska mycket som är copy-paste i den mån att man tittar hur lösningar är gjorda på andra ställen i kodbasen.
00:10:43
Så jag tycker att det är sjukt vettigt.
00:10:47
Men det handlar ju också lite om att inte bara copy-pasta för att man inte pallar att göra.
00:10:53
Men ibland så copy-pasta man ju lite för att bara hålla kod konsekvent och lösningar konsekventa in i nya projekt.
00:10:59
Eller om man vet att den där jävla skiten löste jag för en vecka sedan och det här är exakt samma sak så copy-pasta man lite.
00:11:10
Det är väldigt viktigt att man ändå sätter regler för att förhindra att kodbasen spretar åt en och olika håll.
00:11:19
Att man går in och tittar på ett ställe med formulär som är löst på ett sätt och på ett annat ställe med formulär så är det ett helt annat sätt att lösa.
00:11:26
Då kan det ändå vara väldigt vettigt att man kan copy-paste det lite grann.
00:11:30
Sen kanske man vill abstrahera det så småningom.
00:11:34
Men ett litet sidospår på det här är att jag tycker att man copy/pasta för lite egentligen.
00:11:42
Det är för lätt att sträcka sig efter att nu ska jag skriva en smart abstraktion här som vi kan återanvända i hela kodbasen.
00:11:50
Medan att man då gör det för tidigt ofta leder till att det blir bara en jättedålig abstraktion som inte passar på de användarfallen man har.
00:12:00
Det är så jävla lätt att fastna i. Alltså jag fastnar i det här så himla lätt för att det är typ att jag tänker att
00:12:07
här hade någon annan gjort någon smart lösning så nu måste jag göra en smart lösning för att bevisa att jag kan göra en smart lösning
00:12:16
men egentligen så vill jag inte göra en smart lösning. Egentligen vill jag göra en så här tydlig, bara make it work-kod.
00:12:23
Men jag fastnar ändå i det. Sjukt starkt.
00:12:26
Jag är starkt förespråkade för att ska du ha ett formulär med lite olika fält på, skriv ut alla inputs och labels och divvar och allting som du vill ha.
00:12:42
Även om de liknar varandra, de här fälten så att säga.
00:12:46
eller grupperna, istället för att försöka göra något objekt och sen loopa över det, eller mappa över det, och försöka göra något smart så.
00:12:53
Alltså hellre att man till att börja med gör en dum lösning, där det är en jättelång return, med jättemycket J60,
00:13:00
för att annars så tror jag att den abstraktionen kan bli helt fel.
00:13:08
Men om man ska komma tillbaka till Pricker, jag har inte superkoll på det, men det finns väl på andra språk också?
00:13:19
För jag har bara suttit med det i JavaScript-världen.
00:13:23
- Ja, det tror jag. Jag tror att det finns för de flesta språk, eller vad säger jag nu, men många språk i alla fall.
00:13:29
Jag vet att det finns för Markdown till exempel, bara för att ta ett exempel på, inte kanske ett programmeringsspråk,
00:13:36
Men det finns väldigt många olika textfiler.
00:13:43
- Jag tänker att det finns också för Java och sånt.
00:13:46
Jag vet inte om det heter Prettier, men det finns samma typ av opinionated formatting.
00:13:51
- Ja, exakt. Just Prettier-biblioteket vet jag inte hur många språk det kör på.
00:14:02
Men det känns ju som att det finns en så många språk. Jag vet inte hur det är med sådana där språk som är
00:14:09
det som jag tycker är, typ objektorienterade språk, typ Java eller C# eller vad det nu kan vara.
00:14:16
Det känns mer som att det är rena webbfronten språk som de har fokuserat på.
00:14:23
- Ja, man kanske inte ska ut och vifta i saker man har noll koll på här.
00:14:28
Jag googlade lite snabbt nu faktiskt, bara för att jag kände att vi var inte alls med.
00:14:32
Och det är som du säger, det är webbgrejer.
00:14:35
Så det är typ JavaScript, JSX, Angular, Vue, Flow, TypeScript, CSS, HTML, JSON, GraphQL, Markdown och YAML.
00:14:43
Just det. Jag tror jag pratade med någon när vi införde det som satt i Java och pratade om att det finns den typen av opinionated formatters i Java.
00:14:54
Och liksom .net och dem också. Men det är väl inte Pritter då?
00:14:59
Nej, precis. Undra om inte, är det Go eller Rust, slänga ur mig nu utan att egentligen veta, som har det här inbyggt?
00:15:08
Alltså det följer med i språket på något sätt. Jag får för mig att det är Go.
00:15:13
Att du kan typ skriva så här Go format och så formaterar den enligt deras opinionated style liksom.
00:15:18
-Måste jag säga stort pass? -Ja, men jag tycker ändå, oavsett vilket språk det är som har det, så tycker jag det är ganska spännande att idén har spridit sig så pass mycket att det byggs in som en grundsten i ett språk eller i ett ramverk kanske då.
00:15:37
För det är ju inte själva språket som kör formateringen.
00:15:40
- Nej, men det är intressant när man tänker på hur mycket energi man kan ha lagt på något som egentligen spelar noll roll som börjar skönt att bli av egentligen.
00:15:51
För att jag har börjat med importer i filer.
00:15:55
Jag har ju varit väldigt länge såhär, "ja men React ska vara överst i en J6-komponent"
00:15:59
och sen så typ externa bibliotek ska vara såhär, blablabla, och så har jag ändrat om ordningen och grejer.
00:16:05
Och nu på Mac-VS Code så har jag ju bara hittat "Option Shift O" som tar bort alla unused imports och sorterar dem.
00:16:20
Så det blir ju fel. React är ju inte överst och det blir så här helt huller om buller.
00:16:25
Men jag är så här "fuck it" det är ju så jäkla skönt att bara kunna trycka på det där, det jag inte vill ha och sen så är det så.
00:16:32
Jag vinner ju mer på det.
00:16:35
Ja, men gud, för egentligen så borde man ju kunna dölja alla importer.
00:16:40
Man borde kunna kollapsa alla importer och sen inte bry sig om vad det står där.
00:16:44
Så länge du kan veta om att jag tar bort de som är oanvända och de som jag behöver finns där.
00:16:50
Ja.
00:16:52
För det är det enda man bryr sig om egentligen.
00:16:54
Precis.
00:16:56
Det känns som att jag har lagt alldeles för mycket tid och mitt liv på att ordna importer till ingen nytta mer än min egna hjärnas belåtenhet.
00:17:09
Ja, exakt. Jag håller helt med. Det känns helt onödigt egentligen. När du säger det här så kände jag direkt att React ska vara överst.
00:17:21
Vi kan ju inte gå ifrån att React ska vara i överst.
00:17:23
Nu är det inte lika stort problem längre när man inte behöver importera React längre.
00:17:26
Men fortfarande, det kändes i själen nästan att jag "Åh, nej, nej".
00:17:33
Även om jag skulle automatiskt sortera och gå in och redigera så att vi flyttade React i överst.
00:17:38
Nej, jag släppte. Jag släppte.
00:17:41
Ja, jag tror att i nuvarande projektet så har vi också massa ESLint-regler.
00:17:46
Jag kommer att tänka på det nu för att vi har någon regel att vi måste gruppera våra importer, tror jag.
00:17:50
Att de som är från bibliotek måste ligga högst upp i en grupp.
00:17:57
Och sen kanske de som är från...
00:17:59
Jag vet inte hur den grupperar riktigt, om det är typ per nivå i filstrukturen, eller i mappstrukturen.
00:18:08
Om det är där som den grupperar.
00:18:10
Att de som ligger i samma mapp som den här ska ligga i en grupp.
00:18:12
Och den som ligger några nivåer upp i trädet ska ligga i en grupp med en tomrad emellan i stort sett.
00:18:20
Men det är inte heller så stor problem, för där kan man bara köra fix och så fixar den det åt dig.
00:18:27
Och det är också väldigt skönt att slippa bry sig om.
00:18:33
Ja, sådana regler har jag också varit med och satt upp.
00:18:39
Och det är det ju liksom. Men det är ändå så här, då måste du fixa det.
00:18:43
Ja, absolut.
00:18:45
Det är inte så jobbigt att köra dashdash fix, men det blir på något sätt lite jobbigt att man inte får någon överblick på vad som faktiskt kommer fixas.
00:18:54
Det är lite läskigare.
00:18:56
Ja, men du kan ju köra, jag tror att jag har något, undrar om det är ett VS Code Extension kanske som gör det?
00:19:02
Eller om det är inbyggt? Att du kan fixa i den här filen som du är i.
00:19:06
Och att den gör det inline för dig, så att säga, i editorn.
00:19:11
Mm, nice.
00:19:13
Det är ju ganska skönt.
00:19:15
Ja, men det är lite kul när man tittar på det här med en sådan
00:19:21
developer experience, hur stor skillnad det ändå kan göra.
00:19:27
För om man drar upp ett nytt projekt eller ett hobbyprojekt,
00:19:31
eller om jag drar upp och sitter i Atom, eller inte har
00:19:36
konfatt alla paket som jag vill ha och allt sådant,
00:19:39
Man måste ju lägga mycket mer tid på allt möjligt.
00:19:44
Bara en sån sak som jag har i VS Code, den här Rainbow Colorizer-paketet.
00:19:53
Jag kommer inte ihåg vad det heter exakt.
00:19:54
Men det sätter färg på brackets och parenteser så att det är lättare att se vilka som hör ihop.
00:20:01
Det är ju också magiskt för jag har ju suttit på en felaktig måsvinge både en och annan dag i mitt liv.
00:20:11
Ja, exakt.
00:20:13
Hur allt det här verkligen förbättrar.
00:20:18
Alltså det går ju snabbare och jag har ju varit anti sånt här för jag är ju kanske lite manuell och rädd för att om jag inte får göra allt manuellt så kommer det se ut som att jag inte jobbar.
00:20:27
"Varför jag kan inte göra något annat än små uppgifter?"
00:20:29
Men så är det ju inte.
00:20:32
- Nej, men jag tycker också det är sjukt ändå vilken impact det kan få.
00:20:39
Alltså om vi pratar lite så här ES-Lint till exempel.
00:20:43
Jag är så jävla för att så fort man springer på någonting som kan automatiseras i ES-Lint
00:20:50
som man har en diskussion om och säger så här.
00:20:52
Man kan springa på det i en pull request eller vad som helst.
00:20:54
"Borde vi inte göra så här? Borde vi inte göra så här?"
00:20:56
Eller så är det en liten diskussion fram och tillbaka.
00:20:58
Om man tar ett beslut på att "Vi kör så här"
00:21:00
och det går att lägga in en ES-lintregel på det
00:21:02
så borde man göra det.
00:21:04
För att då slipper ha diskussionen igen.
00:21:06
- Ja, absolut.
00:21:09
Och du behöver inte ha diskussionen med nya som kommer in.
00:21:11
Eller ja, det kanske du behöver ha.
00:21:13
Men då har man i alla fall en historia och en redan satt sak.
00:21:16
Men det är också intressant om man tänker på
00:21:19
vissa saker som att
00:21:21
Att köra alla lintregler i en pre-commit-hook eller en pre-push.
00:21:27
Speciellt på projekt som är live och du pushar till master.
00:21:34
Det är ofta att man känner att det bara tar tid att köra igenom.
00:21:38
Vad är det här?
00:21:40
Men det har ju räddat den ett par gånger.
00:21:44
Jo, definitivt. Vi kör typ alla tester och linting på Commit.
00:21:52
Det tar ju lite längre tid att Commita, men det är inte så att det påverkar mig jättemycket.
00:21:57
Man kan ju fortsätta annat medans. Det är bara att låta den fortsätta köra.
00:22:01
Om man ska pusha och skapa en PR så kanske man sitter och väntar på att det där är klart.
00:22:04
Men man slänger inte bort hela dagen.
00:22:08
- Nej, men det är också så att gör det någonting att sitta och vänta en minut extra.
00:22:14
Måste dagen vara så pureffektiv att du inte kan låta hjärnan bara glo ut i tomheten?
00:22:21
Nu är det inte hjärnan som glor, men ni förstår vad jag menar.
00:22:25
- Ja, exakt. Jag håller helt med.
00:22:28
Sen är det ju så här, så länge det inte hindrar en när det behövs, typ commit-grejer.
00:22:34
Jag vet inte om vi kör Haski eller något sånt där tror jag det heter.
00:22:38
Då kan man skicka in en flagga som heter "No Verify" eller vad fan det nu är.
00:22:44
- Ja, det är det. - Och så bypassar man det där.
00:22:46
- Det är jag inte bekant med. - Ja.
00:22:48
Så länge det finns sådana escape hatches, för du skulle ju kunna sitta i en stressig situation
00:22:54
och bara "Shit, det här är alltid paj i prodd, vi måste få ut det här nu".
00:22:58
Då är den här minuten jävligt lång helt plötsligt.
00:23:01
Ja, så är det ju absolut. Men det kan ju också vara så att du måste få ut det här nu men du har pajat andra saker.
00:23:08
Ja, definitivt. Så är det.
00:23:11
Men jag menar då kanske man hellre, för vi kör ju också alla test och grejer på varje pullrequest.
00:23:17
Så då kanske man inte behöver köra den lokalt utan kanske man behöver pusha upp det här så snabbt som möjligt så att man kan
00:23:23
köra, se i pipen istället för att göra det lokalt också.
00:23:28
Ja, absolut. Det är skillnad på vad man gör. Nu till exempel sitter jag i ett projekt som inte är live än.
00:23:39
Där det fortfarande är mycket utveckling som går, refaktorering och det är verkligen inte färdigt.
00:23:49
Och där är ju inte poängen lika stor att ha den. Jag testade faktiskt att lägga in den bara för att få köra "no unused locals".
00:23:58
Men det funkar inte ordentligt om man körde bara "no verify" för det är bara en "whip commit" och det kommer ännu inte igen.
00:24:06
Så det är verkligen så här, man ska vara i ett visst state, tror jag.
00:24:09
Ja, exakt. Det krävs nog att man har någonting att verifiera, så att säga.
00:24:15
Du måste ha någonting som du bara "Okej, men nu har vi det här, vi vill inte att den här ska vara trasig".
00:24:23
Man måste vara säker på det.
00:24:25
Medan om det är i ett halvt trasigt state från början så spelar det inte så stor roll.
00:24:30
Nej.
00:24:32
Jag tycker det är spännande. För det här är också en grej som jag tänkte på.
00:24:39
Det är svårt att motivera oftast, det beror lite på organisationen, att vi ska förbättra utvecklarexperiensen.
00:24:48
Det är svårt att få tid till att göra sådana saker.
00:24:53
Ja, men det är också kul hur man tänker på det, att vi tänker på det som utvecklar experience för att om man börjar tänka på det och faktiskt att det här med ESLint och även om man har typning och sånt som TypeScript som kör och sådana saker att det faktiskt är egentligen i test sfären mer än det är i bara så här user experience världen.
00:25:22
Jag har alltid tänkt på det som user experience.
00:25:24
Sen har jag gluttat lite på vilka tester vi behöver för att få en komplett testning av ett system.
00:25:36
Då nämner man just det här "static test" som är den här typen av syntakstest som en del av det.
00:25:45
Det har inte jag riktigt tänkt på tidigare.
00:25:48
Nej, jag tror att det är extremt lätt att missa.
00:25:52
Om någon tänker test, då tänker folk enhetstester eller integrationstester.
00:25:56
Eller användartester om man ska gå ännu högre upp.
00:26:00
Men det tidigaste eller enklaste, som kanske är enklast att sätta upp också, är ju just statiskt.
00:26:07
Att du har typat någonting, om du kör Flow eller TypeScript eller IS-Lint som fångar lite fel.
00:26:14
Eller vad heter den andra? JS Hint finns det väl också.
00:26:17
Jag vet inte hur populärt det är längre. Jag har inte kört på någon projekt på länge.
00:26:20
Men den är väl typ lite mer "hitta code smells" typ.
00:26:24
Ja, det var väldigt länge sedan jag sprang förbi det tror jag.
00:26:28
Ja, det kanske har försvunnit ganska mycket tror jag.
00:26:32
Ja, för nu känns det ju verkligen som så här.
00:26:35
Uppsättningen är Prettier och så är det ES-Lint.
00:26:37
Och då kör du Prettier och sen kör du ES-Lint.
00:26:40
Ja.
00:26:42
Ja, det känns verkligen som att det har blivit en extremt stor standard.
00:26:46
En sak som jag ska prata om i ett annat avsnitt som jag tänkte på och läste en artikel om häromdagen
00:26:52
var typ att just syntax-highlightning är en lite, vad får man säga, en
00:26:59
outnyttjad möjlighet för att förbättra DX.
00:27:04
Ur perspektivet att "Okej, nu highlightar vi bara efter vilken
00:27:10
typ av "keyword" där.
00:27:13
Är det en variabel så får det en specifik färg.
00:27:17
Är det en måsvinger får den en specifik färg till exempel.
00:27:19
Men att det finns möjligheter där att man skulle kunna bygga något mycket mer avancerat.
00:27:24
Alltså att du kan ha olika linser på som du byter mellan i din highlighting.
00:27:30
Typ att du skulle kunna ha en vanlig syntax-highlighting när du skriver din kod.
00:27:35
Men sen kan du byta en annan lins när du debuggar som visar
00:27:39
komplexitet i olika färger eller olika concerns, alltså typ så här
00:27:47
kod som hör ihop får en färg. Det är ju säkert såklart superavancerat, men
00:27:53
ju mer vi kommer med AI och ML och allt möjligt däremellan så blir det
00:27:57
möjligt att göra sådana här coola grejer och det tror jag kommer bli
00:28:00
extremt coolt när det väl kommer, för jag tror definitivt det kommer komma.
00:28:04
Ja, det är också spännande för att det här med att ha olika färg på olika delar i kodbasen, det tar jag för givet, det är så jag tycker att det ska vara.
00:28:17
Och det är helt sjukt att det inte är så.
00:28:21
Vilket leder mig till att tänka på en i min relation djup kris
00:28:28
när jag en dag såg min sambo arbeta och jag kom in i hans rum
00:28:32
såg att han satt i VIM med vit bakgrund och bara svart text.
00:28:38
Det var det sjukaste.
00:28:43
Ja, jag förstår att det kan leda till en kris faktiskt.
00:28:48
Nu får alla såklart ha den typ av syntax-highlightning och teman de vill.
00:28:53
Men jag förstår inte ens hur... Jag hade aldrig kunnat lösa ett enda problem i temat.
00:29:00
Men variablerna är ju fetstilt. Jag bara, vad?
00:29:07
Nej, jag är helt på din sida här. Jag ser inte heller med att kunna sitta utan syntaxalärning.
00:29:13
Däremot kanske att man kan byta vilka färger man får utifrån vilken kontext man är i.
00:29:18
Men aldrig att det bara är svart på vitt. Det låter så jävla hemskt.
00:29:23
- Det kanske bara är "level up a thousand" att kunna göra det.
00:29:28
Men jag kommer aldrig nå dit, tror jag.
00:29:30
- Ja, det känns som att man måste... Jag vet inte.
00:29:33
Man måste förstå koden mycket djupare.
00:29:36
Det är nånting som gör att det är mycket lättare.
00:29:39
För det är på något sätt undermedvetet.
00:29:40
Det är inte så att jag aktivt tänker att nu ska jag till en röd kodsnutt.
00:29:45
Nej, nej.
00:29:46
Utan det blir bara undermedvetet.
00:29:47
Man vet att det är variabler i den här färgen och därför kan jag hoppa dit.
00:29:52
Ja, för om någon skulle fråga mig vilken färg har dina funktioner?
00:29:57
Jag tror inte jag skulle kunna svara på det på rak arm bara.
00:30:00
Nej, jag håller helt med.
00:30:04
Det skulle nog vara jävligt svårt faktiskt.
00:30:08
Nu kan inte jag fatta att jag har trog ner min sambo i skiten i den här podden.
00:30:14
Det får han stå ut med faktiskt.
00:30:16
Men jag kan också passa på att han ska få en shoutout för att han har sponsrat
00:30:20
podden genom att han gav mig i förutsatt present den här mikrofonen som jag kan använda nu.
00:30:27
Han gav dig någonting i förutsatt present och får ändå en shoutout.
00:30:30
- Ja, det är ju inte så stort. - Eller hur? Men han var tvungen att bli dragen i skiten först.
00:30:38
- Ja, exakt. Så det går jämt ut. - Ja, men med det så kanske vi ska runda av så att säga.
00:30:46
- Ja, det kanske är dags. Det gick jäkligt snabbt den gången. Jag tror att det finns mycket mer att säga om allt det här.
00:30:52
Men vi återkommer väl dit i ett framtida avsnitt helt enkelt.
00:30:58
Vi finns på Twitter, om det är något, ge en recension i iTunes, hör av er om det finns skämt eller ni vill rätta oss eller tipsa oss av något.
00:31:09
Annars så hörs vi i nästa avsnitt.
00:31:12
Det gör vi.
00:31:13
Hej då.
00:31:13
Bye bye.
00:31:14
[OUTRO]
Tillbaka upp