tillbaka till startsidan

44. Nyårsquiz

Lyssna på Spotify lyssna! Lyssna på iTunes

Vi rundar av året med att ställa varandra frågor inom diverse kategorier från hemsidan 30 Seconds of Interviews. Det blir allt från CSS selektorer, portaler, Ordo, stenhögsspråk, livscykelmetoder och higher order components.

Mest av allt vill vi tacka alla som lyssnat, kommenterat, frågat och stöttat. Utan er vore vi ingenting. Vi ses igen 2022!

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:

Varför måste utvecklare ha självdistans?
Standup varje morgon.
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
Varför måste utvecklare ha självdistans?
00:00:04
Det här kändes som att jag skulle kunna klura ut, men jag vet inte.
00:00:11
Stand up varje morgon?
00:00:13
Den går vi vidare snabbt ifrån, känner jag.
00:00:20
Vad sa vi nu då? Välkomna till ASTFs nyårskarameller.
00:00:26
[Skratt]
00:00:28
Kanske inte riktigt.
00:00:30
Vi satt och funderade på vad vi skulle prata om och insåg att vi hade någon gång långt tillbaka i tiden pratat om att vi skulle ställa varandra frågor från 30secondsofinterviews.org
00:00:42
Som är någon hemsida där de har samlat, alltså de ska väl föreställa intervjufrågor inom lite olika programmeringsrelaterade ämnen.
00:00:52
Så vi tänker väl att vi kör på den och så får vi se hur det går.
00:00:57
Vi har sagt att vi ska sortera på de svåraste först och så hoppas vi att det funkar bra.
00:01:04
Jag tänker också att det här, det är nu vi kommer bestämma om, som vi i förra avsnittet pratade om senior vs junior.
00:01:10
Det är nu vi bestämmer vilken vi hamnar på.
00:01:12
[Skratt]
00:01:14
– Då vill jag ha easy och vara på juniörssidan.
00:01:16
– Okej, så på den här hemsidan så kan man välja kategori och så kan man sortera.
00:01:20
Vilken kategori vill du ha? Det finns HTML, CSS, JavaScript, React, Node och Security.
00:01:28
Oj, ska man välja någonting man absolut inte kan eller ska man välja någonting som man hoppas att man kan?
00:01:34
Vi kan göra så här då, du får välja till mig så väljer jag till dig.
00:01:38
Jag kommer välja samma sak.
00:01:40
Nej, det tror jag inte. Du får välja till mig först då, så väljer jag inte annat än dig.
00:01:46
Nej, men välj till mig först.
00:01:48
Nej, du får välja först nu.
00:01:49
Varför ska jag välja först?
00:01:50
För att jag bestämde det.
00:01:52
Ja, jag väljer CSS.
00:01:57
Till mig?
00:02:00
Till dig.
00:02:01
Okej, då kan du få React då.
00:02:03
Fan.
00:02:07
Jag höll på att säga att de här svåra frågorna såg inte så svåra ut.
00:02:12
Men jag ska inte säga något innan jag börjar.
00:02:15
Junior direkt.
00:02:17
Okej, vill du börja eller ska jag börja?
00:02:21
Börja med vad då?
00:02:24
Ställa frågan tänkte jag, men jag inser att det var lite oklart där.
00:02:27
Okej, jag kan börja med att ställa frågan.
00:02:30
What is the difference between PLUS and TILDE sibling selectors?
00:02:36
Okej, nu ska vi se. Jag kanske tar tillbaka det här lite grann med att det var inte så svårt.
00:02:43
Vi kan också börja med att säga att jag är ganska säker på att jag inte kommer...
00:02:47
Jag kommer tycka att många av de här frågorna är ganska dåliga intervjufrågor.
00:02:50
Har jag en känsla av.
00:02:52
Men med det sagt så tror jag att skillnaden är att den ena tar...
00:02:59
Alltså, den ena tar bara direkta syskon, alltså om de ligger bredvid varandra.
00:03:04
Och den andra tar om de är syskon överhuvudtaget, även om det är saker emellan.
00:03:09
Vilken som är vilken är en jävligt bra fråga.
00:03:11
Kanske att plus är den som är direkta.
00:03:13
Om jag fissar. Tillde är allt.
00:03:16
- Alltså Tillde...
00:03:20
Ska jag svara här nu? - Ja, nu kör vi. Jag vill ha ett facit.
00:03:24
- Jag är inte ens säker på att jag förstår svaret.
00:03:27
Men Tillde väljer alla element som är som är syskon till det specificerade elementet.
00:03:34
Som jag har divit tillde P.
00:03:37
Då kommer den välja alla P som är syskon till diven.
00:03:42
- Ja, men det var väl typ vad jag sa.
00:03:44
- Fast tvärtom på dem.
00:03:46
- Ja, det kanske det var. - Eller vad landade vi?
00:03:47
- Jag kommer inte ihåg.
00:03:49
- Och plus tar alla element som är...
00:03:55
...närliggande syskon till det specificerade elementet.
00:03:59
- Jag tror fan jag hade rätt. Jag tror till och med jag sa rätt.
00:04:03
- Jag ska träna på det här till nästa fråga, men jag tror att jag kanske försökte läsa svaret
00:04:07
Samtidigt så hade jag liksom missat det.
00:04:10
Ja, men det är lätt hänt.
00:04:13
I vilket fall, jag tror att jag hade rätt.
00:04:16
Det här är självsäkerheten som talar.
00:04:19
Jag tror att jag hade rätt.
00:04:20
Absolut, du får poäng.
00:04:21
Ja, vad bra.
00:04:22
Vi ska definitivt räkna poäng i det här också.
00:04:24
Okej, vi ska se.
00:04:26
Jag ska hitta någon roligare fråga än de här som var högst upp här.
00:04:31
Vad ska du, ska du inte gå i turordning?
00:04:34
Nej, det är skitviktigt.
00:04:36
-Va? -Jag måste välja ut lite grann så det blir bra content.
00:04:42
Okej, "What are portals in React?"
00:04:50
-Oj, det vet inte jag. Är det inte någonting som är väldigt använt i det här med React Native?
00:04:58
-Vet ej, kan inte React Native faktiskt.
00:05:02
- Ja, precis. - React Portal. Vad är Portal? Jag har ingen aning.
00:05:08
Jag tänker bara på sådär "möjlighet" en portal är, att du kan flytta ett specifikt element till ett annat ställe.
00:05:16
- Ja, det var det vi närmast nått. Det finns en API där "react-dom.createportal" och sen tar den emot en "child" och en "container".
00:05:26
Ja, precis. Men att barnet ska visas i en annan container än där man lägger in den.
00:05:32
Så är det.
00:05:35
Det är exakt vad du säger.
00:05:37
Att man ska kunna...
00:05:40
Du kanske har en modal eller något.
00:05:43
Och säg att du har en modal-knapp som också renderar
00:05:48
där du kanske vill hantera själva modal-elementet även i samma komponent.
00:05:54
Men du vill i verkligheten rendera den i body, fast den inte ska ligga nästa i trädet.
00:06:01
Då kan du skapa en portal där du renderar din child i body eller root, eller vad du vill kalla den.
00:06:10
Så det var helt rätt.
00:06:13
– Typ. – Ja, men det var ju samma sak.
00:06:15
– Jag vill inte ha poäng. – Jo, du får poäng.
00:06:20
Jag ska välja roliga frågor, men nej, vad jobbigt.
00:06:27
Ta vilken fråga som helst.
00:06:29
"Can you describe how CSS specificity works?"
00:06:36
Det här känns som en fråga som man kan blaja lite.
00:06:39
Får man det på en intervju så kan man ändå så här...
00:06:40
Jag tror jag klarar mig, men jag kanske inte kan det enligt specen.
00:06:44
Men det är väl att varje selektor har typ en poäng på sig.
00:06:50
Så om man tar ett klassnamn och sen kör man "tilde" och sen kör man "div"
00:06:57
Då kanske den har en poäng av 3, för det är tre olika saker
00:07:01
Och då är det dess specificitet, vilket är ett jävligt svårt ord att säga
00:07:05
Och sen kanske en annan har klassnamn "tilde"
00:07:13
"Klassnamn"
00:07:15
Eller något
00:07:16
Och då kanske den har specificitet på fyra för att klassnamn är värt två.
00:07:19
Men det går inte riktigt ihop nu när jag säger det här.
00:07:21
Men det är att vissa olika selektorer har olika värden och då blir specificiteten högre.
00:07:25
Vilket gör att den skriver över den första selektorn.
00:07:29
Typ så.
00:07:31
– Ja, men alltså attributet ju mer specifikt riktat till ett element det är, desto mer tar det över.
00:07:40
– Ja, det var den väldigt korta förklaringen. Jag gillar den mer.
00:07:44
[Skratt]
00:07:46
[Skratt]
00:07:48
Ja, men...
00:07:50
Absolut. Poäng.
00:07:52
Jag tycker den var bra.
00:07:54
Men sen finns det väl massa sådana här
00:07:56
regler runt omkring, tror jag, som man var inne på.
00:07:58
Typ så här, ja men en klass är ju mer specifik
00:08:00
än ett elementselektor.
00:08:02
Och en
00:08:04
id-selektor är mer specifik än en
00:08:06
klassselektor, till exempel. Och massa grejer.
00:08:08
Ja, du har så här, inline rules,
00:08:10
number of id-selectors,
00:08:12
"Number of class, pseudo class and attribute selectors, number of tags and pseudo element selectors."
00:08:17
Just det.
00:08:19
Och då har du "Specificity matrix, inline ID, class, pseudo class, attribute, tag, pseudo element."
00:08:27
Så det var i den ordningen jag läste upp dem.
00:08:31
"In cases of equal specificity, last rule is applied."
00:08:38
Så det blev nog någon cascading då.
00:08:40
Ja, men just det. Ja, men det är ju varandra jag är nöjd ändå. Jag hade hyfsat koll.
00:08:45
Jag har en annan fråga. En lite "blast from the past" nästan inför tiden.
00:08:49
Också "intermediate" ska sägas, inte "hard".
00:08:53
"What are the lifecycle methods in React?"
00:08:57
Component will mount, component did mount, component will unmount.
00:09:10
Component did update.
00:09:13
Ja, jag har tagit fyra.
00:09:16
Det finns sju totalt.
00:09:19
Finns det sju då?
00:09:22
Jag hade inte heller tagit alla.
00:09:25
- "Component will receive props." - Den har väl bytt namn nu va?
00:09:37
- "Component did receive props." - Nej, den heter "Get derived state from props" nu för tiden.
00:09:44
- Just det. - Två till finns det.
00:09:47
- Jag trodde det var sju när det var "way back". Det fanns sju, men de var nya.
00:09:53
Det är någonting "Will receive state" också.
00:09:56
Ja, det kanske är...
00:09:59
"Get the right state from props".
00:10:01
Ja, det var den du pratade om nyss.
00:10:03
Jaha, ej då.
00:10:05
Minnet är så jävla kort.
00:10:08
För det första har du inte skrivit en ny life cycle-grej på länge, för du sitter ju ändå i ett modernt React-projekt, eller hur?
00:10:17
Så är det.
00:10:18
Så det är inte så lätt att komma ihåg. Och jag tror inte jag hade heller kunnat rabbla dem.
00:10:21
men de du missade var bara Shudd Component Update och Get Snapshot Before Update.
00:10:29
Get Snapshot Before Update vet jag inte om jag har använt en enda gång i mitt liv.
00:10:34
Nej, samma. Men Shudd Update borde jag väl tagit?
00:10:38
Jag tror jag hade tagit färre än vad du tog faktiskt.
00:10:43
Det var en resa.
00:10:47
Ja, precis. Det var de.
00:10:49
Bara för att rabbla de här sista gångerna.
00:10:51
"Get derived straight from props. Component did mount. Should component update. Get snapshot before update. Component did update. Component will unmount."
00:11:00
Ja, just det. Det var en till också. "Component did catch."
00:11:02
Ja, men det är ju Error Boundary.
00:11:05
Det är Error Boundaries.
00:11:07
Just det, men det var ju någonting där också för att det var de gamla liksom och sen gjorde man om
00:11:13
de här och det var ändå ganska kort tag innan Hux kom.
00:11:17
Ja, ja men verkligen.
00:11:19
Så att helt klart poäng.
00:11:21
Nej.
00:11:23
[Skratt]
00:11:25
Okej, Hit Me.
00:11:29
Jag vet inte varför jag tog CSS.
00:11:32
Du kan få byta ämnen om du vill. Det finns ju någon javascript.
00:11:37
Det var så långa förklaringar.
00:11:39
Det orkar vi inte med.
00:11:41
Då tar jag javascript då.
00:11:43
Det här kommer att vara svårt känner jag.
00:11:45
Vad är Big O notation?
00:11:47
Är det inte javascript?
00:11:49
Jag har ändå pluggat Big O en gång i tiden.
00:11:55
Så det borde kunna det här.
00:11:57
Men det är ju ordo i alla fall.
00:11:59
Det har väl att göra med att man räknar ut komplexiteten på olika algoritmer
00:12:05
Så att typ en O1, oavsett input, tar det lika lång tid att köra den algoritmen
00:12:13
Och sen finns det typ O1, och då är det en 1 till 1-relation mellan input och hur lång tid den tar att köra
00:12:20
Och sen finns det typ OlogN och massa såna här grejer som gör att ju större input så ökar tiden att köra exponentiellt.
00:12:28
Typ.
00:12:30
- Ja, nice.
00:12:32
- Ja, det här kommer jag ihåg från universitetstiden för en fan. Det är typ sju år sedan nu eller något. Det är fan sinnessjukt.
00:12:40
- Ja, jag vill dock säga att det är inte OlogN, det är ONlogN.
00:12:47
Fan! Ingen poäng till mig.
00:12:51
Sen har vi också Ardo Array 1 till 1.
00:12:56
Det är att det kan variera.
00:12:59
Ardo 1 uppöjt till 2.
00:13:02
Och Ardo 1 utropstecken.
00:13:06
"The execution time rises extremely fast with even just one addition to the array."
00:13:12
Ja, den kanske man ska undvika då.
00:13:16
Ja, där kom jag också, men jag tror att jag lärde mig Ordo 1.
00:13:21
Att det var fint, och sen gick jag vidare i livet.
00:13:24
Jag minns inte om det var på den här kursen, eller om det var en annan kurs, så hade vi en professor i Uppsala som...
00:13:35
Eller han kanske inte var professor, vi hade inte hann med det, men i alla fall, den hette Algoritmisk Datastrukturer.
00:13:40
och då pratade vi om stenhögar.
00:13:44
Så det var allt som fanns.
00:13:46
Det fanns bara tre saker man kunde göra.
00:13:48
Man kunde lägga till en sten i en hög.
00:13:51
Man kunde flytta en sten till en ny hög.
00:13:53
Och man kunde göra nånting mer.
00:13:55
Hela kursboken var bara stenhögspråket som man sen byggde på.
00:13:58
Så här i efterhand kändes det som att det var ett ganska vettigt sätt att prata om det.
00:14:01
Men där och då var man så jävla förvirrad varför vi pratade om stenhögar.
00:14:08
Jag skulle ändå vilja gå tillbaka till och läsa lite av de här grejerna som jag förstod absolut noll av när det skedde.
00:14:18
Och se nu hur pedagogiskt det hade känts att lära mig det nu. Eller läsa det.
00:14:25
Ja, nämen verkligen. Jag tror också att det hade varit rätt kul faktiskt.
00:14:30
Okej, vill du ha en till fråga?
00:14:34
Ja, antar det.
00:14:36
Ska vi ta den här då? Ja, den här känns bra.
00:14:41
"What are higher-order components?"
00:14:46
"Higher-order components" är komponenter som tar in komponenter,
00:14:52
returnerar en kombinerad komponent.
00:14:55
Det var nästan ord för ord första meningen på förtalingar faktiskt.
00:15:01
[Skratt]
00:15:03
Det känns också som att det inte är en sån här grej som inte är lika populärt längre sen Hoogs kom.
00:15:08
Nej, det var väl en jävla sväng med det där med massa Redux va?
00:15:15
Ja, Redux gjorde det väl skitpopulärt även fast folk ofta inte vet kanske.
00:15:19
Jag tror att många som använder Redux inte fattade vad...
00:15:22
Om man skulle fråga folk som använder Redux så vet kanske inte vad Higher-Order-Components är ändå.
00:15:26
Man pratade inte om det på samma sätt.
00:15:29
Men typ Connect-funktionen till exempel är ju en higher order component.
00:15:36
Får jag för mig? Eller om jag glömde bort något, den returnerade en komponent. Men ni gör det väl?
00:15:42
- Jag kommer inte ihåg, men det är väl här Maps, Date to Props också.
00:15:46
- Ja, just det. Connect returnerar väl en higher order component? Får jag för mig nu?
00:15:51
För man kör ju så här Connect och så skickar man in någonting i den och sen anropar man en funktion på den.
00:15:55
Så det blir två parenteser på rad, vilket var jävligt förvirrande i början.
00:15:58
Jag kan inte påstå att jag saknar higher-order-components dagligen i mitt liv.
00:16:05
Nej, det kan jag verkligen hålla med om.
00:16:10
Men det kom väl in också som ett sätt att dela kod när man inte använder mixins.
00:16:20
Ja, precis. Det var väl ett bättre alternativ än mixins och därför blev det populärt.
00:16:25
Typ så.
00:16:27
Men ja, nu har vi hux.
00:16:29
Nu har vi hux. Det är en dröm.
00:16:31
Okej, kör en till fråga på mig.
00:16:33
Det här tyckte jag var kul.
00:16:35
Kul nyår hörru.
00:16:37
Toppen.
00:16:39
Jaha, det här kändes som en så öppen fråga.
00:16:44
Men du kan få shine.
00:16:47
Vad vet jag?
00:16:49
How can you avoid callback health?
00:16:53
Det var en lite näppig fråga.
00:16:55
Det känns som att det finns jättemånga sätt att göra det på.
00:16:59
Men typ att använda Promises istället.
00:17:03
Är mitt svar.
00:17:05
Och sänka weight på det.
00:17:09
Det var precis det.
00:17:11
Jag tänkte inte att det var så lätt.
00:17:13
Det tror jag är mitt svar.
00:17:17
Att istället för att du har massa koll på verksamheten.
00:17:19
Det var också en grej som har gått ur i tiden.
00:17:23
Jag minns när man skrev Angular 1, alltså innan Angular 2.
00:17:31
Då var det väldigt mycket callbacks.
00:17:34
Allt var callbacks.
00:17:35
Så det kunde bli enorma pyramider om man tittade åt sidan i koden.
00:17:41
Det var inte supernärligt.
00:17:44
Inte heller något jag saknar.
00:17:46
Absolut saknar inte, men känns ändå lite skärmigt att ha gjort.
00:17:51
Ja, det är ju så här, vad är det, survival bias? Nej, det kanske är något helt annat. Men liksom vi överlevde och då var det nice.
00:17:58
Nej, det var inte nice, jag säger bara att det är gjort. Jag förstår varför det är nice att det inte är så.
00:18:06
Ja, men vi tappade många på vägen så att säga.
00:18:11
Men det finns många sätt att lösa problemet med "callback-health".
00:18:17
Dels "promises" speciellt med Async/Await-syntaxen.
00:18:23
Det är så himla "cleant".
00:18:24
Och sen "modularization" - "break callbacks into independent functions".
00:18:29
"Use a control flow library like Async".
00:18:36
"Use generators with promises".
00:18:39
Man säger som om man använder generators.
00:18:44
Jag menar, jag tyckte kanske...
00:18:46
Använd Async/Await, people.
00:18:49
Ja, den kan jag stå bakom.
00:18:51
Men beroende av den här "generators" är man inne på...
00:18:54
Alltså det känns som att ingenting är bättre av generators.
00:18:58
Ja, dålig erfarenhet. Eller vad säger jag? Lite erfarenhet av generators.
00:19:02
Men det är ju typ Sagas i Redux, till exempel.
00:19:04
Är ju generators.
00:19:07
Aldrig stött på det faktiskt.
00:19:09
Skattare är lycklig.
00:19:11
Man ska bygga Redux-sagor för att transportera state.
00:19:16
Ja, de kan anropa sig själv och vara långlivade.
00:19:19
Det är så jävla mäckigt.
00:19:21
Det kommer väl från ombackend-idéer från början.
00:19:26
Sen tog de in det i Redux.
00:19:28
Jag har aldrig stött på en bra implementation av det.
00:19:32
Jag bara backar.
00:19:36
Ja, det tycker jag. Som Homer Memen när han backar in i häcken.
00:19:43
Precis.
00:19:45
Okej, vill du ha en till fråga?
00:19:49
Sure.
00:19:51
Vad ska vi ta?
00:19:54
Det känns spontant, ska jag säga det nu innan jag fortsätter, att de här frågorna inte är superuppdaterade.
00:20:05
Nej, verkligen inte. Och i JavaScript-frågorna så kommer även React-frågor, tror jag.
00:20:09
Jaha, det är ju spännande i alla fall.
00:20:14
Okej, den här då.
00:20:16
"Why does React use class name instead of class, like in HTML?"
00:20:21
För att det inte ska krocka.
00:20:28
Ja, det här kanske är en fråga du inte kan.
00:20:34
Det här är en fråga jag inte kan...
00:20:36
Jag tror jag kanske har kunnat...
00:20:42
Är det någonting...
00:20:43
Är det inte för att differentiera ut någonting så att det inte blir krockar när de bygger om det till HTML eller JavaScript?
00:20:56
Ja, det finns egentligen flera anledningar och du är väl lite inne på en, skulle jag säga.
00:21:03
Den ena är ju som du säger, till exempel förr i tiden så krockade typ så här, då kunde du inte använda reserverade ord i objekt.
00:21:15
Så class till exempel, du kunde inte skapa ett objekt som hade en property som hette class i det här fallet.
00:21:23
– Ja, då blir det problem när de kompilerar det.
00:21:27
Ja, precis. När det går från JSX så blir det ju ett React.createElement.
00:21:32
Bla, bla, bla.
00:21:32
Och sen blir det ju...
00:21:33
Propsen blir ju ett objekt som skickas in till det, anropade till den funktionen.
00:21:37
Och då kunde det inte heta "class".
00:21:40
Så det är liksom en anledning.
00:21:42
Men en annan anledning var också att de försökte
00:21:46
aligna det här med DOM-APIet.
00:21:51
Alltså inte med HTML, utan med DOMen som finns bakom.
00:21:55
Så till exempel när du kör "document create element div"
00:21:58
då sätter du "element.classname" för att sätta klassnamn.
00:22:02
Du sätter inte "element.class" om du gör det via JavaScript.
00:22:06
– Ja, just det. Så de ville återspegla det.
00:22:09
– Ja.
00:22:10
Sen vet jag att det har varit diskussioner skitlänge om att de ska stödja "class" istället för "classname".
00:22:17
Eller att det ska bytas ut.
00:22:20
Och har varit så här "ja men nu är det dags att göra det" och så "ja men nu när vi skjuter lite till på det"
00:22:25
Så får vi se, det kanske händer någon gång.
00:22:27
Jag har inte hört om det i Reacta 18 vilket skulle vara ett bra tillfälle men
00:22:31
förmodligen så vill de väl kanske lägga till att man kan stödja båda.
00:22:35
Och sen deprecera liksom Classname så att längden kan ha bytt ut.
00:22:40
Men vem vet.
00:22:42
- Just det. - Ja.
00:22:47
Ja, men det satt väldigt lång tid. Det känns som att jag kunde mer förr.
00:22:54
Men jag vet inte, de här frågorna, som sagt.
00:22:56
Skulle någon fråga mig, "Varför använder du React Class när vi ställer för klass på en intervju?"
00:23:01
Och liksom bara ha där sådana jävla måttstock, det skulle ju vara katastrof.
00:23:06
Ja, men alltså jag var ju typ... Ja, det skulle vara katastrof.
00:23:10
Men just de här grejerna, jag tror att jag var bättre på React-specifikationen förr.
00:23:15
När jag lärde mig React.
00:23:17
Okej, vart kommer allt ifrån? Vart är det här?
00:23:19
Och sen har det bara rullat på.
00:23:21
Jag har ju inget minne.
00:23:23
Det är så dåligt.
00:23:25
Så jag tänker bara skylla på mitt dåliga minne.
00:23:32
Ja, men det är helt okej, tycker jag.
00:23:35
Ja. Vill du ha en till fråga?
00:23:37
Absolut.
00:23:39
Okej. "What is the event loop in Node.js?"
00:23:43
Vad är det här för skit?
00:23:45
Ja, vad fan, det ska vi se. Här kan man ju kille-isa sig till.
00:23:51
Eventlopen...
00:23:55
Jag har faktiskt ingen aning om hur jag ska förklara det här på ett enkelt sätt.
00:23:58
Jag har inte suttit så mycket på Node.
00:24:00
Jag har ju stött på eventlopen när jag har skrivit Node backends.
00:24:05
Men aldrig orkat riktigt lära mig exakt vad det är.
00:24:09
Jag är helt med på att man kan skicka events i Node och så plockas de upp och så körs de och grejer.
00:24:16
Men jag vet inte om det är event-loopen eller om event-loopen är mer att Node kör, det är det som kör Node-processen så att säga.
00:24:25
Om det är det som är event-loopen. För det skulle det lika gärna kunna vara också. Så jag har ingen aning.
00:24:31
Men jag tänker att det inte bara är en node, det är väl liksom i browsern också?
00:24:37
Eller är det väl en node som kör?
00:24:39
Du får klicka på "show answer" och ge oss den korta versionen.
00:24:43
Jaha, men det här kan jag faktiskt.
00:24:45
Ja, titta vad bra, snyggt.
00:24:47
Ja, men det är ju den som kör alla typ av asynkrona callbacks egentligen.
00:24:51
För att stacken blir full.
00:24:53
Och då är det ju så, eftersom det är singeltrådat så är det ju inte så att den vill köra allting till rådning hela tiden.
00:24:59
Speciellt då när man vill typ ut och anropa web-app-bis och sådana grejer, då lägger den en call queue istället.
00:25:06
Och sen är event-loopens jobb att putta in jobbet från call back queue in i stacken igen och exekvera det när det finns plats.
00:25:15
Över.
00:25:16
Just det.
00:25:17
Så det är den som ser till att "Okej, men nu finns det ledig plats här, så då kan vi putta in dig".
00:25:23
Det låter ju bekant faktiskt och väldigt vettigt.
00:25:27
Vi kan öppna här också.
00:25:31
"The event loop handles all async callbacks. Callbacks are queued in a loop while other code runs and will run one by one when the response for each one has been received."
00:25:43
Oj, vad läste jag precis?
00:25:44
Det var typ exakt vad du sa, eller?
00:25:46
Ja, typ.
00:25:48
"The event loop allows Node.js to perform non-blocking I/O operations despite the fact that JavaScript is single-threaded."
00:25:58
Just det. Ja, men det är bra. Nu har jag en ny fråga till dig här.
00:26:03
- Varför är du så glad? - Det var ett brett leende som inte kunde underslapp mina läppar.
00:26:12
"Just the differences between an HTML specification and a browser's implementation thereof."
00:26:19
- Det är en lång beskrivning, varsågod.
00:26:25
- HTML-specken är ju specifikationen för språket, hur det är uppbyggt och hur tanken är bakom den.
00:26:35
Det är specifikationen för språket.
00:26:37
Sen så väljer browsers att implementera tekniken, att hantera koden på eget sätt.
00:26:44
Så det är därför det kan skilja sig åt från browsers, att de kan tolka det olika.
00:26:49
Eller att den här browsern och den här versionen tog in funktionen för det här HTML-grejen som bara var ett draft.
00:26:59
Så därför skiljer det sig jämt emot hur den andra browsern gör det.
00:27:04
Guldstjärnan tycker jag. Applåder.
00:27:07
[Applåder]
00:27:09
Det är ju bara en fly.
00:27:11
Det var ändå rätt.
00:27:13
På höftet, eller skjutet från höften kanske.
00:27:19
Men utan förberedelse så att säga.
00:27:23
[Skratt]
00:27:25
Så det tycker jag du gjorde väldigt, väldigt bra.
00:27:28
Jag vet inte, vill du ta en fråga till eller ska vi...
00:27:31
Ja, eller ska vi packa upp. Vem började?
00:27:33
Jag vet inte faktiskt.
00:27:35
Nej, jag vet inte heller. Vi kan ta den här.
00:27:40
Bara för att jag själv hatar det.
00:27:42
"What is Coors?"
00:27:44
Ja, där lägger vi ner.
00:27:46
Nu tar vi nytt år.
00:27:49
Vi kan väl runda av med att säga
00:27:55
tack till alla som har lyssnat.
00:27:59
Jag tycker att det var jävligt kul
00:28:01
Det var jävligt kul att få feedback och få frågor.
00:28:06
Jag har haft jävligt kul att göra den här podden i år med dig, Therese.
00:28:10
– Ja, verkligen. Tack så jättemycket allihopa.
00:28:13
Det är jättekul att höra feedback som är så här att...
00:28:19
Det känns verkligen som att det är lite som att hänga med.
00:28:24
Just den "vi vill ha"-pitchen, bara hänga med oss i ett vardagsrum.
00:28:28
Exakt. Så vi får hoppas att även om vi gick ifrån det här lite grann att bara prata och ställde varandra lite hårda frågor idag så kanske ni står ut med oss.
00:28:38
Vi är såklart tillbaka igen om två veckor med kanske något annat vettigt eller ovettigt.
00:28:46
Tills dess så säger vi väl tack för oss.
00:28:49
Gott nytt år och vi hörs snart igen.
00:28:55
Gott nytt år, glad vinter och sånt.
00:28:57
Vi ses då.
00:28:58
Bye bye.
00:28:59
Hej då.
00:29:00
[Musik]
Tillbaka upp