tillbaka till startsidan

40. Frustrationens uppgång och fall

Lyssna på Spotify lyssna! Lyssna på iTunes

Anton går i rasande tempo igenom en frustrerande resa med prestandaproblem i sitt nya hobbyprojekt. Det leder till prat om att sortera i objekt istället för arrayer, vikten av dokumentation, att lära sig mer än API specifikationer och Reacts senaste framgångsfaktor. Dessutom en del om att smidigt återskapa problem, lite elitism och att fastna i att det ska bli bra.

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:

Hur semestrar front-endare när de vill ha ett riktigt oväntat äventyr?
Safari
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
Hur semestrar frontäldare när de vill ha ett riktigt oväntat äventyr?
00:00:06
Jag vet inte.
00:00:08
Safari?
00:00:10
Ja, det var bra. Jag gillar det.
00:00:18
Jag förväntade mig nästan något med Gevalia först, men jag fick inte riktigt ihop det med äventyr och utvecklare.
00:00:26
Kan vi gå via Java då kanske? Det hade varit långt.
00:00:31
Ja, men det finns ju någonting med Java, Javalia, oväntat.
00:00:37
Där har vi det.
00:00:39
Får jobba på den.
00:00:41
Exakt. Välkomna till ett nytt avsnitt av ASDF.
00:00:45
Idag har vi kanske inte riktigt några ämnen, utan det är mer jag som är frustrerad.
00:00:49
Så vi får se hur intressant det är. I värsta fall får ni spola.
00:00:54
Men jag har kommit ihåg, tror du att jag har pratat i podden om det sidorprojektet eller hobbyprojektet eller vad man ska kalla det som jag har nu där jag håller på att bygga någon typ av gameshow i React?
00:01:08
Jag vet inte, du har pratat om det utanför podden så mycket vet jag.
00:01:13
Det har jag gjort. Det är väl det senaste. Jag byggde ju det här rita-gissa-spelet,
00:01:20
eller vad man ska kalla det, som heter Draw to Fuck. Vi lägger en länk till det i beskrivningen.
00:01:24
Jag brukar ofta köra ganska intensivt på sidoprojekt i korta perioder,
00:01:34
och sen breddar man ut sig lite grann och får börja med det nytt.
00:01:37
Jag kollade häromdagen, jag gjorde första kommitsen på det här projektet för ett år sedan, vilket känns helt sinnessjukt.
00:01:45
Men det är lite så här coronapandemitidsuppfattningen som ställer till det.
00:01:50
Ja, jäklar. Är det ett år sedan du pratade om det?
00:01:54
För jag kommer ihåg när vi pratade om det där du bara hade ritat upp tankarna på papper hittills.
00:02:01
Det är typ ett år sedan. Jag har inte kommit så långt. Det känns som att det är en lång väg kvar.
00:02:10
Men i och för sig, grunden är f*n satt. En del av den här grunden är att jag kör Overmind som statehanterare.
00:02:18
Allting är skrivet i React. Och Overmind har vi pratat om många gånger innan. Det känner våra lyssnare väl till.
00:02:24
Det brukar vara min go-to-state-hanterare nu för tiden.
00:02:28
Jag gillar hur den är upplagd och idéerna bakom och allt sånt.
00:02:32
Men så kom jag på, eller jag började bygga det här för ett år sedan.
00:02:37
Det jag har byggt hittills, det är kanske där jag börjar, är typ ett drag-and-drop-interface som ser ut i stort sett som Trello.
00:02:46
Bara att varje kort är en fråga och varje kolumn är typ ett segment i den här gameshowen.
00:02:53
Så jag har byggt en...
00:02:55
Vad ska man säga?
00:02:56
En gameshow-skapare.
00:02:59
Eller vad fan man ska kalla det. Än så länge.
00:03:01
Själva gameshowen, att köra den, det funkar inte överhuvudtaget.
00:03:03
Sånt har jag byggt.
00:03:06
Problemet började med att bygga lite state och sätta upp lite grejer där man kunde skapa en ny fråga i en formulär.
00:03:14
Och man kunde göra lite allt möjligt.
00:03:16
Och sen så började jag bygga det här drag-and-drop-interfacet för att kunna lägga till frågor i varje segment.
00:03:22
Och sen körde jag för Drag & Drop React DnD, om du vet vilket bibliotek det är.
00:03:30
Det känns som att det är det mest klassiska Drag & Drop-biblioteket.
00:03:34
- Ja, nej. Noll koll på allt du pratar om.
00:03:40
- Jag tror kanske att det är Dan Abramov som har skapat det från början.
00:03:44
Det känns som att han har skapat varenda jävla bibliotek som är så här gammalt.
00:03:48
Få en känsla av att han har gjort det. Ni får "fact checka" mig på det, men jag tror att det stämmer.
00:03:55
I vilket fall så la jag till det, och det funkade fan svinbra. Det var inte alls särskilt svårt. Så jag kan varmt rekommendera det.
00:04:03
tills dess att jag först då började få prestandaproblem.
00:04:08
Så att när jag hade ett visst antal segment med ett visst antal frågor i
00:04:13
så började det gå extremt långsamt först med att dra de här frågorna och byta segment
00:04:19
så att när man bytte segment så laggade det till litegrann.
00:04:23
Jag fick problem med att jag flyttade en fråga och sen så började den hoppa fram och tillbaka
00:04:28
tillbaka i en oändlig loop.
00:04:30
Och ville inte stanna när man sorterade om den.
00:04:33
Här kände man ändå att det här är lugnt.
00:04:37
Det här löser jag.
00:04:40
Jag kände mig inte så orolig.
00:04:43
Det var problem som jag kände att förväntade mig.
00:04:50
Sen började jag kolla på att fixa det här.
00:04:53
Och hittade först då att prestanda problemet förmodligen kommer från att jag kör Overmind.
00:04:59
Och det är ju som en jävla kniv i ryggen. Älskar Overmind.
00:05:03
Fan nu spricker...
00:05:05
- Typ betrayal. - Exakt.
00:05:07
Och börja kolla lite grann på.
00:05:10
För det jag hade gjort som jag egentligen vet att man inte ska göra är typ att
00:05:14
Overmind vill inte ha sitt state i arrayer.
00:05:19
Utan om du har en lista så vill den att det ska vara en objekt istället.
00:05:26
Alltså en key value.
00:05:28
Det är antagligen anledningen bakom skynket för att den ska kunna ha tracking på vilka förändringar som sker och allt möjligt.
00:05:39
Men mitt problem var att jag använde arrayer för att jag ville ha en ordning på allting.
00:05:47
Så att jag skulle kunna sortera om dem och hålla på med allt det.
00:05:51
Så första steget blev att jag gör om det här till objekt.
00:05:56
Sätter dem så att de får en "property" som heter "position" som ska vara motsvarande platsen i listan.
00:06:04
Och sen när jag drar dem här, då ska jag istället uppdatera positionen, "propertyn".
00:06:10
Och här börjar man ju tappa modet. Eller jag börjar tappa modet.
00:06:14
Alltså fan vad läss jag var här.
00:06:17
Det jag berättar om nu har ju typ skett under ett år bokstavligen.
00:06:20
Så det låter kanske snabbt, men det har varit långa perioder där jag bara "Nej, jag gör inget mer. Jag ger upp".
00:06:26
Och låter det vara.
00:06:28
Men så satt jag och kämpade med att sortera om eller flytta ett element i en array är ju relativt enkelt.
00:06:37
Då kan man ju köra splice och sen stoppa in den på nya stället.
00:06:40
Men att göra det när jag bara hade en positionsiffra på varje objekt gjorde mig förvirrad.
00:06:50
Jag kunde inte komma på hur jag skulle göra. Det var helt omöjligt.
00:06:55
Jag vet inte, om du har ett objekt som innehåller massa objekt som har en position på sig och så vill du sortera om den som är på plats fyra ska landa på plats sju.
00:07:13
Men det finns saker framför och bakom båda två.
00:07:16
I mitt huvud dyker det bara upp en massa "gör om det till en array, organisera om den och gör tillbaka det till ett objekt" typ.
00:07:27
Det är såhär "object entries" och "object from entries".
00:07:30
Om det nu var lätt att jobba med arrayer. Får man säga att du bröt stackars Overminds regel där? Det är ju inte deras fel.
00:07:40
Nej, alltså det var ju helt klart mitt fel att prestanda vara dålig på grund av det här.
00:07:45
För det står liksom uttryckligen att "working with a race" och så står det typ "don't use a race".
00:07:53
Och du bara "äh".
00:07:55
Ja men jag hade kanske förtränkt det där litegrann. Så jag tänkte "äh, det kan jag väl göra".
00:08:01
Ja exakt, det är det jag säger. "Äh".
00:08:03
Ja, exakt.
00:08:05
Jag vet inte riktigt hur det ser ut, men jag tänker att det kanske skulle gå att göra om det till en array.
00:08:11
Och sen jobba tillbaka till ett objekt. Men jag har ju noll insikt i exakt vad det är du pratar om.
00:08:18
Det lovar inte gott för våra lyssnare som kanske förstår ännu mindre.
00:08:23
Men det var nog en idé som aldrig kom till mig.
00:08:28
Det kanske var den enklaste lösningen. Att man gör en "object entries" och sorterar efter position "property" och sedan slänger man tillbaka och uppdaterar position "property" baserat på vilket index de har.
00:08:43
Ja, den skulle jag ha tänkt på.
00:08:49
Då hade jag kanske sluppit sitta och slita mitt hår.
00:08:53
I slutändan blev det ganska bra tror jag.
00:08:56
Men det jag gör nu i stort sett, om jag minns rätt, är att
00:09:01
jag vet ju vilken position den jag vill flytta har.
00:09:04
Alltså när innan den flyttas och vilken position jag vill flytta till.
00:09:07
Så att alla då, om den flyttas, ska vi se hur det blir, om den flyttas neråt i listan
00:09:16
då måste jag ju uppdatera
00:09:18
Alla som är mellan de två platserna och nedanför.
00:09:24
Alltså allting nedanför.
00:09:27
Alltså allting mellan där den befinner sig och dit den ska.
00:09:32
Allting där emellan måste ju skiftas upp.
00:09:37
Just det, och allt efter dit den ska måste skiftas ner.
00:09:43
Nej, de är kvar på samma ställe.
00:09:45
Ja, de borde få komma på oss där.
00:09:47
Och sen åt andra hållet då, om man flyttar den uppåt i listan, då blir det att man gör det åt andra hållet.
00:09:52
Så det var där jag landade i slutändan, men det tog en jävla tid att komma dit och få det att funka.
00:09:59
Det känns ju så jävla självklart nu i efterhand, men när jag väl satt där så försökte jag bara "Nej, jag vill ha en Arrayer, låt mig bara".
00:10:05
Och alltså, det gick ju liksom, jag har ändå övervägt och överget Overmind.
00:10:11
- Oj, oj, oj.
00:10:13
- Men då landar jag istället i så här, jaha, okej, istället då ska jag börja försöka komma på hur ska jag hantera mitt state?
00:10:21
Och det känns som en ännu större fråga.
00:10:24
Men ja, recoil skulle ju kunna funka.
00:10:30
Men jag har liksom inte kört recoil innan, och det här känner jag så här, det här är ett projekt där jag inte vill fundera så mycket på hur mitt state ser ut, utan vill bara köra och sedan liksom fokusera på andra saker.
00:10:39
Så att vi får se, det finns ju en risk att jag skjuter mig själv i foten här och så sitter jag om ett år och bara "ja, bara så att ni vet, jag bygger om nu från Overmind till Recoil".
00:10:49
Men vi får se, för du har ju kört ganska mycket Recoil, vi pratade väl om Recoil i något avsnitt för ett tag sedan?
00:10:56
Ja, och vi ska absolut inte säga att jag har kört ganska mycket Recoil, det tar vi tillbaka, det tar vi verkligen tillbaka.
00:11:04
Men okej, du har kört Recoil?
00:11:06
Jag körde Recoil.
00:11:08
Och du gränder fortfarande om det eller?
00:11:10
Jag sitter inte ens med det just nu.
00:11:14
Jag bara plockar någonting från luften och så kastar jag ansiktet på dig för att jag har inget bättre att säga.
00:11:20
Nej, det var mer att när jag tittade på introvideon som alla kan titta på till recoil så var det väl att exempel var mycket att det var väldigt bra när man gjorde beräkningar för att flytta saker i gränssnittet.
00:11:36
För att du behövde inte sammankoppla och det var fritt. Och just den här prestandaproblemen som kan uppstå när du gör nya beräkningar hela tiden, löste i Recoil bra.
00:11:47
Så jag tänkte att det kanske var ett bra case för det. Men jag har ingen teknisk kunskap att stå på här.
00:11:56
Nej, men jag kan fan tänka mig det, för det känns som att Overmind, de pratar väldigt mycket om så här.
00:12:05
För det första så är jag lite leds på att Overminds dokumentation är ganska kass.
00:12:09
Eller, den är inte dålig, det finns ju olika nivåer av dåligt.
00:12:14
Shots fired!
00:12:15
Den är inte toppen bra.
00:12:17
Jag tror lite beror på att han som byggde det från början, Christian Alfoni tror jag.
00:12:22
Norsk tror jag också han är. Vilket är kul.
00:12:25
Heja Norden och så vidare.
00:12:27
Men jag tror han har steppat ner som maintainer för att han inte har tid.
00:12:32
Så just nu tror jag att det inte är någon som maintainer Overmind.
00:12:36
Vilket också var lite såhär "Kanske ska skita i Overmind då, kanske inte är det perfekt val för ett projekt. Jag tänker att det ska leva ganska länge."
00:12:45
Men sen hängde jag lite grann på deras Discord och det verkar ändå som att det är någonting på Gieton som ska välja en ny och det finns folk som ändå engagerar sig och tänker att det löser sig.
00:12:58
Annars får jag väl ta ett projekt och byta ut allt straight. Det kommer säkert vara superkul.
00:13:02
Eller så får väl du bara steppa upp som maintainer för Overmind.
00:13:07
Jag fattar liksom inte, kollar jag källkoden på mig så fattar jag fan ingenting. Det är proxy och dit och dit och det är fan allt som händer.
00:13:14
Men vi får väl se, jag tänker att det är ett problem för framtiden Anton. Jag skjuter på det där just nu.
00:13:23
Sista Overmind-krigaren.
00:13:26
Exakt. Jag vet inte om någon frågar mig nu, skulle du rekommendera Overmind på ett projekt så skulle jag nog säga nej.
00:13:33
Inte för att koden i sig är dålig utan mer för att dokumentationen inte är top notch och att det är sak att man sedan maintainerar projektet.
00:13:41
Men det är ju mycket det där, för att ofta är det ju inte saker som är riktigt bra nödvändigtvis som slår, utan det är ju saker som har en tydlig community och där man kan googla sig fram till hjälp och när det finns bra dokumentation.
00:13:58
För alla är ju inte de som orkar ge sig in i Slacken eller Discorden för communityt.
00:14:08
Utan man vill kunna googla sig fram till det på sin egen kammare i skydd av mörkret.
00:14:14
Ja, exakt. Jag tror att jag tweetade något om det här häromveckan.
00:14:21
Jag skriver en presentation om nya features i IT-projektet 18 och längre fram i tiden.
00:14:30
Men jag tror samtidigt att deras största vinst som de gör just nu är att de skriver om sin dokumentation från grunden.
00:14:41
De har släppt en sån beta nu så jag kan lägga en länk i beskrivningen.
00:14:47
Men den ser sjukt bra ut.
00:14:49
Alltså den är så här extremt pedagogisk.
00:14:51
Den är omskriven en modern React.
00:14:53
Alltså det är fokus på funktionskomponenter och hooks.
00:14:57
Och den är superpedagogisk i att den också förklarar så här.
00:15:03
Så här ska du tänka i React.
00:15:05
Mer än att så här skriver man React.
00:15:07
- Ja det låter riktigt nice alltså.
00:15:12
Det var länge sedan jag hängde i dokumentation känner jag.
00:15:14
Det känns som att jag har tappat all React. Jag kan ingenting längre.
00:15:19
Jag borde kanske bara börja om från början. Det kan nog vara rätt skönt.
00:15:23
Jag har tänkt att jag ska läsa igenom all den här nya dokumentationen.
00:15:27
När de släppte den så var de ungefär 70% klar med den här "Lär dig React"-bitarna.
00:15:35
Och typ 5% klar med API-referensen. Så det är väl en del arbete kvar.
00:15:40
Men jag tror att den kommer bli ruskigt bra.
00:15:43
Också extremt bra metaforer och illustrationer på hur de förklarar saker.
00:15:48
Så jag kan verkligen rekommendera folk att gå in och titta på den.
00:15:52
- Ja, men det är så nice när de lägger tid på det där.
00:15:55
Nu har vi väl kommit in på Svaja tillväg fullständigt.
00:15:59
Men jag kommer ihåg, var det inte i vår, det kanske till och med var ett år sedan,
00:16:05
då de skickade ut en survey.
00:16:08
Vad tycker ni är bra, vad tycker ni är dåligt, vad är det vi behöver?
00:16:12
Och verkligen försöka ta input från användarna.
00:16:16
Det är väldigt så här, man pratar jämt om när man bygger produkter att
00:16:19
okej, vad säger användarna? Men det är inte alltid vi tänker på det.
00:16:22
För vi tycker att alla utvecklare tänker väl som jag gör så det är lugnt.
00:16:25
Men så är det verkligen inte.
00:16:27
Ja, nej verkligen. Nej exakt. De har både skickat ut en service som de har kört.
00:16:30
Sen har de också kört användartester.
00:16:33
På dokumentationen har jag sett.
00:16:34
Jag vet att Rachel och hennes effen har drivit projektet och verkligen kört användartester där de har suttit ur UX-perspektiv.
00:16:52
Fast kanske också på texten som de har haft på sajten.
00:16:56
Jag kan inte komma på att jag har hört att det är så många andra projekt som har gjort så.
00:17:03
Nej, inte jag heller.
00:17:06
Det är kanske det som är en del av Reacts storhet.
00:17:13
Att fortfarande lever och frodas, att man öppnar upp för alla också.
00:17:19
För det är så himla svårt när man går in på ett nytt ställe och så har man deras dokumentation.
00:17:26
Och jag blir så här nedslagen när jag inte förstår den.
00:17:30
Jag känner mig så korkad.
00:17:33
Och då kan jag tänka mig att när man är...
00:17:35
För det kom jag ihåg när jag var helt ny också.
00:17:37
Jag förstod liksom ingenting.
00:17:39
Och då blir man ju verkligen inte sugen på att använda det.
00:17:42
- Nej, men verkligen.
00:17:43
Och jag tror att det här är nog en av anledningarna till att jag
00:17:46
en gång i tiden försökte lära mig React,
00:17:48
misslyckades,
00:17:50
och började köra Vue istället.
00:17:52
För att Vues dokumentation har ju varit extremt bra från dag ett,
00:17:55
skulle jag väl påstå.
00:17:58
Och har verkligen varit pedagogisk i att de har haft en "Lär dig VUE"-sektion som är mer guidad kunskap än bara passivt där man ska läsa API-referensen.
00:18:11
Jag tror att det har gett VUE extremt mycket att det har känts som att VUE är lättare att lära sig.
00:18:17
Vilket absolut, jag tror att det kan vara någon poäng i att API-ytan eller hur det är byggt gör det lättare att lära sig också.
00:18:26
Men jag tror att en stor del har varit att de har haft en extremt bra dokumentation och de har haft en extremt bra,
00:18:33
även att de har haft extremt mycket exempel på så här, så här skulle vi som ByggerView göra den här grejen.
00:18:39
Medan React har varit väldigt basic i att vi visar bara vad React är för något och sen så vill vi inte göra något mer.
00:18:46
Ja, jag kan inte View så jag vet inte, men jag tror det.
00:18:54
Men tillbaka till min frustration.
00:18:59
För det jag också höll på med här var att bygga om det där och så löser vi det här problemet.
00:19:09
Och sen gjorde jag det här och så bara "Fan, det blev inte så mycket bättre performance".
00:19:15
Jag bara "Fan, vad har jag gjort nu?"
00:19:19
Jag testade debounce, trottla och allt möjligt.
00:19:27
Jag tänkte att jag skiter i performance just nu och går vidare i livet.
00:19:32
Jag ska bygga någon mer feature. Jag kommer inte ihåg exakt vad det var.
00:19:38
Men det var någon som sa att jag skulle drag and dropa till en papperskorg i Sikon för att kunna slänga en fråga.
00:19:47
Jag kommer inte ihåg vem det var exakt där, men säger att det var något sånt.
00:19:50
Och stödet för det i ReactDnD var halvdåligt.
00:19:57
Och jag försökte hitta något och communityn är så här "ah, okej, läste mycket issues på GitHub"
00:20:05
Och så här igen, att vi gick in på deras dokumentation som inte är heller svinnice.
00:20:10
Det är väldigt mycket så här "Så här funkar det. Vi förklarar inte så mycket mer än vad vi måste."
00:20:17
Vilket kan förklara att jag inte heller vet om det är någon som underhåller det längre.
00:20:21
Jag tror inte det.
00:20:23
Som sagt, "fact checka mig" mycket på det jag säger.
00:20:25
Men jag tror inte det.
00:20:27
Så då blev jag istället så här "Jaha, vad ska jag göra då då?"
00:20:30
Och sen så bara satt jag och surfade runt lite grann helt random.
00:20:32
Och så hittade jag ett annat bibliotek för Drag & Drop som heter DND-kit.
00:20:37
Och så hittade jag ett exempel som är i stort sett exakt samma sak jag bygger.
00:20:45
Alltså i stort sett varenda feature jag ville ha var i det här exemplet.
00:20:50
Och så hittade jag lite kod och det ser ut att vara ganska samma upplägg.
00:20:54
Det ser lite inspirerat ut av React-DND, men man får mycket mer out of the box.
00:20:59
De hade byggt några "presets", så att du har grundbyggstenar men sen har de byggt någonting ovanpå det som var tänkt för saker du vill sortera.
00:21:11
Så då tänkte jag "vafan då rivar jag väl ut projekt DND också".
00:21:16
Så då började jag riva ut det också och byta ut mot DND-kit.
00:21:21
Och det måste jag säga, det gick fan jävligt bra.
00:21:24
Där frustrationen försvann. Och deras dokumentation är också extremt bra och pedagogisk.
00:21:33
Det kanske är det här avsnittet handlar om, pedagogisk dokumentation. Eller vikten av det.
00:21:39
Men så då släppte jag det och bytte ut det här och fick extremt mycket som bara funkade.
00:21:47
Och samma sak, jag tror jag tweetade någonting om att det inte riktigt fungerade som jag förväntade mig.
00:21:54
Och då kom han som har det repot och svarade mig, "Det kan vara det här, men annars öppnar jag nischen så kollar vi på det."
00:22:01
Och han hade ju rätt så klart att det var det.
00:22:04
Men det gör ju att man köper in sig ganska mycket mer på ett bibliotek.
00:22:11
När man får väldigt aktiv hjälp, det är bra dokumentation och allt förrän du kan vara runt omkring dig.
00:22:19
Ja, jag är så fascinerad av din shoutout till hjälp. Jag hade ju bara gömt mig.
00:22:28
Jag skrev ju mer, det var ju kanske mer än så här, jag är frustrerad.
00:22:33
Och så skrev jag inte kanske precis, jag vet inte ens om jag taggade honom eller om jag gjorde det.
00:22:38
"Det här verkar inte funka, men det löser jag imorgon."
00:22:42
Och sen han bara "Det kan vara det här."
00:22:43
Jag bara "Ah, nice, okej."
00:22:45
- Det är väl härligt. Det är så himla nice när man...
00:22:51
För ibland också när man har köpt in sig på ett paket och så orkar man inte byta det.
00:22:56
Men det här, det går. Jag löser det.
00:23:00
Och så hittar man ett nytt, tar sig tiden att byta ut det.
00:23:03
Och så hör man den här ängla "haaaaaa" för att det var värt det.
00:23:09
För att det funkar. Det är ju en otrolig känsla.
00:23:12
Ja, verkligen.
00:23:13
Och också så här som jag har känt i den här processen för att
00:23:18
featuremässigt har det inte ändrats så mycket, men jag har liksom så här
00:23:21
särskilt när jag hade prestandaproblemen så var jag inte rätt säker på vad som var problemet.
00:23:24
Alltså jag visste liksom inte om det var Overmind
00:23:27
eller om det var ReactDnD som jag hade gjort något konstigt i eller vad det nu kunde vara.
00:23:32
Jag hade svårt att skriva om hela statet i ett lokalt state för att testa.
00:23:40
Det kändes väldigt långt bort.
00:23:42
Samtidigt landade jag i ett exakt kod-sandbox.
00:23:47
Jag skapade nya kod-sandboxar där jag byggde hela featuren från grunden.
00:23:54
Hur jag ägt en del.
00:23:55
Och ett lokalt state för att se när det blir performanceproblem.
00:23:59
Och det blev ju då när det gällde till Overmind i slutet.
00:24:03
Och då insåg jag att det kanske är det som är problemet men att det inte går att göra så mycket bättre.
00:24:09
Ur ett felsökningsperspektiv så var det ju sjukt nice att kunna spina upp en code sandbox.
00:24:19
Jag behöver inte göra någonting lokalt i mitt projekt utan jag spinner upp en code sandbox och sitter där och labbar.
00:24:24
Och att jag kunde liksom så här, nu har jag byggt den här, då forkar jag den så att jag har kvar det gamla, men jag jobbar vidare på det nya och ser om problemet och så kan man jämföra lösningarna sen.
00:24:35
Så det är också ett hett tips att bryta ner problemen till mindre grejer.
00:24:42
Ja, jag känner ju att jag är väldigt fascinerad och imponerad av din ihärdighet och kämpaglöd.
00:24:55
Men det är också så här, på jobbet är det betalt, då kanske jag skulle ha det.
00:25:02
Men för privata projekt så har jag ju bara orken för att det är ett projekt jag själv vill ha.
00:25:08
Om det här hade varit ett annat projekt där jag kände att jag bygger för att testa lite teknik, då hade jag gett upp för länge sedan.
00:25:17
Här är jag ute efter ett slutresultat som jag kan använda istället för att bara "ah ja".
00:25:23
Men ändå, jag har säkert inte orkat fast jag får betala. Nej, sådant ska jag inte ha. Men risken finns.
00:25:35
Man kanske behöver sitta i grupp och göra det med folk som kan hålla en "accountable" för att man faktiskt löser problemet.
00:25:44
När det är utan någon annan förutom en själv så behövs det för min del att det är något som jag brinner för slutresultatet på mer än resan.
00:25:53
Ja men det kanske också är just det här om vi ska knyta till dokumentation och grejer.
00:25:57
Om man har schysst, schyssta personer att bolla med, man har schysst dokumentation som inte får någon att känna som att man är sämst i världen för att jag inte förstår saker så hjälper det säkert på vägen.
00:26:09
Så det är ju väldigt mycket i de delarna att om man har någon så här metokras, jag ska inte ens försöka men du vet när den här kunskapen det är som äger liksom.
00:26:21
"Förstår du inte min dokumentation, då borde du inte ens använda det här ramverket för då förstår du inte vad du gör."
00:26:27
Alltså den inställningen till saker, det sabbar ju hela den här grejen också.
00:26:32
Så det kanske är, du vet, om man alltid ska ta med sig en poäng från en film,
00:26:38
Just det här att bättre inkluderande teknik, alltid kommunikation och att lära sig av varandra kommer få en att orka mer.
00:26:56
Ja, verkligen. Det tror jag definitivt på.
00:27:01
Allt det här jag gjort ligger också open source. Man kan se hur mycket jag har tagit bort.
00:27:08
Jag lägger en länk till repot i beskrivningen.
00:27:11
Vi får se om det blir något i slutändan. Det har tagit mig ett år att bygga drag-n-drop-featuren fram och tillbaka.
00:27:24
Så vi får se om det här projektet faktiskt går i mål någon gång.
00:27:26
Men nu känns det ändå som att jag inte sitter fast längre.
00:27:31
Jag hade ju också kunnat skita i de här performance-grejerna.
00:27:33
För det är väl så man ska egentligen.
00:27:35
Skit i att det är lite performance-problem just nu.
00:27:37
Gå vidare och så bygger man klart allting.
00:27:39
Så man kan liksom optimera i efterhand.
00:27:41
Men jag kände att fan jag vill att det ska bli bra.
00:27:44
Ja, är det där lätt att fastna i?
00:27:47
Men om man skulle se då att du har lagt de åtta månaderna på det här.
00:27:50
Hur många procent av projektet är klart?
00:27:55
Vad har du för roadmap här?
00:27:58
Jag vet inte. Nu har jag ju att man kan skapa frågor.
00:28:02
Man kan skapa en show.
00:28:05
Man kan sedan arrangera den här showen i olika segment och
00:28:11
bestämma lite grann hur det ska se ut.
00:28:14
Och det är det som är.
00:28:15
Sen känner jag, nu ska jag prata med dig precis när vi börjar spela in, att jag ska
00:28:20
Jag börjar kolla på lite state machines. Det känns som ett perfekt use case för själva spela upp gameshow-biten.
00:28:28
Att den styrs av en gamemaskin, eller flera, jag har fan ingen aning.
00:28:32
Men det är väl typ det som är kvar. Så helt assar. Jag har byggt ett litet admin-grässnitt.
00:28:39
Sen kanske det är 75% kvar eller något.
00:28:44
Tänker vi då att i framtiden kanske kommer ett avsnitt om din frustration gällande state machines?
00:28:51
Ja, det är mycket möjligt. Eller hur mycket jag älskar det. Det vet man aldrig.
00:28:55
Det finns ju inbyggt state charts som är en abstraktion ovanpå state machines i Overmind.
00:29:04
Men nu i och med att Overmind är lite halv, alltså det lever fortfarande farligt i projektet, det ska jag kännas.
00:29:09
Men då tänker jag att jag bygger det med X-State eller något av de andra populära state-maskinsramverken.
00:29:17
Ja, det blir en liten "to be continued" där tror jag.
00:29:22
Det blir definitivt en "to be continued". Vi får se om det är ett år till innan jag har nästa uppdatering.
00:29:27
Eller inte. Men ja, vi får se.
00:29:30
Ja, men då kanske det som är det.
00:29:37
Det är nog det hela.
00:29:39
Då får vi väl säga att vi finns på iTunes och Spotify.
00:29:46
Anton blir jätteglad för en liten review i iTunes.
00:29:50
Han kommer lägga massa länkar.
00:29:52
Jag har glömt vad mer. Jo, vi finns på Twitter.
00:29:55
Så shout där om det är någonting.
00:29:58
Och så ses vi om två veckor. Tack så mycket.
00:30:01
Det gör vi. Vi säger så. Hej då.
00:30:03
Hej.
00:30:04
[Musik]
00:30:11
Hej!
Tillbaka upp