Ze zeggen dat de tijd snel vliegt als je plezier hebt. Voor mij persoonlijk is het plezier vooral belangrijk in de dagelijkse rit van het opstarten en groeien van een bedrijf. Het zorgt ervoor dat ik geniet, ongeacht hoeveel van mijn innerlijke energiebronnen worden opgevreten door de drukte van week tot week.
(In de volgende aflevering zal ik dieper ingaan op het onderwerp humor op de werkplek, gewoon omdat het kan. "Waarom zo serieus?").
Over tijd gesproken, er zijn 2 weken verstreken sinds mijn laatste publicatie en daarom is het hoog tijd voor de 4e aflevering van onze #TheCodestReview serie.
Lijst met onderwerpen die we deze week behandelen:
- Verslaafd raken aan React
- Alles wat je ooit wilde weten over view caching in Rails
- De Engineering Manager als meester recruiter
Het commentaar op view caching werd geleverd door onze fullstack developer en de engineering manager podcast werd becommentarieerd door mijn nederige ik.
Als een in de volksmond bekende Paint app meester en bewonderaar van GIF's en memes die net als Merci chocolaatjes - meer zeggen dan 1000 woorden, heb ik besloten dat ik vanaf nu hier een smaakje van zal toevoegen. En raad eens?
Darth Sidious Je denkt dat je me kunt stoppen GIF van Darthsidious GIF's
De laatste keer hebben we besloten om StimulusReflex in de schijnwerpers te zetten. StimulusReflex krijgt steeds meer aandacht in de Ruby gemeenschap als een nieuwkomer in het blok, als alternatief voor het gebruik van moderne Javascript frameworks in Rails projecten om overkill te vermijden.
Zie: StimulusReflex aka ReactiveRails
Om er een gelijkwaardige strijd van te maken, wilde ik React laten terugslaan op Stimulus. Aangezien ik ook een bekend man van eer ben, die altijd doet wat ik zeg en mijn beloften nakom, gaat het hier:
In de volgende aflevering heb ik het genoegen om aan te kondigen dat we een gastpost krijgen van React engineer van Vinted.com. Voor degenen onder jullie die nog nooit gehoord hebben van Vinted (kleine kans, maar toch mogelijk), Vinted is een fashion marktplaats afkomstig uit Vilnius, Litouwen dat een unicorn waardering heeft bereikt in 2019. Het platform is gebouwd op een solide Ruby on Rails basis ondersteund door React op het frontend gedeelte.
Kanttekening: mijn vrouw is helemaal weg van Vinted en ze is bijna helemaal gestopt met OLX als haar primaire bestemming voor het opruimen van onze garderobe en het verkopen van gebruikte kleding (ze was een echte die-hard fan). JULLIE DOEN HET GOED!
Het is mij een eer om de eerste gastbijdrager in onze serie te mogen verwelkomen:
Meryl Streep Ja GIF van Merylstreep GIFs
Ugnė Kryževičiūtė - React ingenieur van Vinted
Bij het lezen van de titel van de recente LadyBug podcast ("Getting Hooked On React"), verwachtte ik dat het vooral over React Hooks zou gaan. Maar, hoewel het niet diep in Hooks dook, gaf de podcast een uitstekende introductie in de basis van de React bibliotheek voor JavaScript.
Ali en Emma van de LadyBug podcast bespreken de ins en outs van React - van de algemene lay-out van de bibliotheek en de voordelen tot levendige discussies over componenten, dataverwerking of de levenscyclus van React, allemaal gepresenteerd met een snufje persoonlijke ervaring. Het is de moeite waard voor elke front-end ontwikkelaar die nog niet de kans heeft gehad om de wonderen van React uit te proberen.
Mijn eerste kennismaking met React was ongeveer drie jaar geleden, toen ik mijn reis als ontwikkelaar begon. Hoewel Ali en Emma suggereren dat React in het begin verwarrend kan lijken, vond ik het vanuit mijn eigen ervaring relatief makkelijk om mee te beginnen en waarschijnlijk het makkelijkst om mee verder te gaan in vergelijking met andere front-end frameworks. Er zijn overal veel tutorials, artikelen, open-source bibliotheken en andere soorten lesmateriaal beschikbaar. Je moet je echter wel bewust zijn van de actieve ontwikkeling van React als je dergelijke bronnen doorneemt. Deze aflevering van LadyBug's podcast is geen uitzondering - sommige aspecten en methoden die worden genoemd zijn al enige tijd deprecated. Het is dus het beste om het advies van Emma zelf op te volgen en te kijken naar de meest recente documentatie.
React is sterk geëvolueerd en volwassen geworden, waardoor code schrijven nog eenvoudiger met Hooks, waarmee je state- en lifecycle-methodes kunt gebruiken zonder klassecomponenten te schrijven. Maar voor beginners - zoals Ali nauwkeurig opmerkt - voegt de verscheidenheid aan manieren waarop je React zou kunnen schrijven (zoals class/functional/Hooks componenten) extra complexiteit toe, omdat het soms moeilijk kan zijn om te visualiseren wat er aan de hand is. Ook kan het een uitdaging zijn om te destilleren wat je nodig hebt en relevante informatie te vinden over de implementatie van code.
Als een van de belangrijkste voordelen van React wijst Ali erop dat het component-gebaseerd is, wat modularisatie van code mogelijk maakt en het makkelijker maakt om samen te werken met andere ontwikkelaars. Bovendien is de mogelijkheid om JSX te gebruiken een geweldig visueel hulpmiddel bij het werken met UI in JavaScript-code - je hebt geen aparte HTML-bestanden nodig!
Ali en Emma vatten ook mooi de flexibiliteit samen die een componentensysteem geeft. Een uitstekend voorbeeld uit de praktijk is mijn bedrijf Vinted, dat een snelle groei heeft doorgemaakt wat betreft de product evenals de ontwikkelteams De afgelopen jaren hebben we eraan gewerkt. React heeft enorme voordelen opgeleverd - het heeft ons in staat gesteld om veel schonere code te schrijven, herbruikbare UI-componenten te gebruiken en het heeft het testen van onze code makkelijker gemaakt.
Over het algemeen biedt deze LadyBug podcast een levendige en charmante discussie over de belangrijkste aspecten van React. Ik raad het iedereen aan die met React begint. Vol met grappige voorbeelden en analogieën met het echte leven, "haakt" de aflevering naadloos de aandacht van elke luisteraar, inclusief die van mij.
De views in Rails worden helaas trager met de tijd. Dat komt omdat het aantal objecten in de database groeit. Dit zorgt voor langere query-tijden en natuurlijk voor een langere verwerking als je iets doet met elk van de objecten. Wanneer dit gebeurt, ben je niet kansloos want er bestaat Rails views caching.
Hierdoor kun je veel tijd besparen door database-intensieve gegevens uit de cache te laden (één opgeslagen html-achtig bestand laden in plaats van de database op te vragen en objecten te verwerken). Je kunt het ook minder duur maken in het geval van verschillende partials en objecten - natuurlijk als de objecten niet te vaak veranderen. Je kunt ook proberen om de objecten in de cache in afzonderlijke partials te bewaren - en zo te voorkomen dat bijvoorbeeld 19 van de 20 berichten worden gerenderd (mogelijk met veel velden).
Standaard gebruikt Rails caching de file_store en bewaart de cachegegevens in de mappen. Maar het verwijdert geen oude cache entries (die misschien al lang verlopen zijn). Dit kan leiden tot een overschot aan bestanden of zelfs een tekort aan vrije ruimte op een server. De andere methode is memory_store die ook enkele nadelen heeft (omdat de cache op een enkele server wordt bewaard). Het kan ook de hoeveelheid RAM op de server overschrijden (of het gebrek aan cache als het de hele tijd wordt verwijderd). Daarom is het beste cachingmechanisme op grote schaal de Memcached/Redis methode. Dit geeft je de kans om een aparte machine te gebruiken die de cache bewaart die door alle servers kan worden gebruikt. Hierdoor is er geen probleem met een gebrek aan cache of schijfruimte op een server.
De cache in Rails wordt bijgehouden op basis van een identifier - die kan direct worden gegeven als een string of automatisch worden gegenereerd wanneer je een object doorgeeft aan de cache functie. In het geval van objecten is dit meestal het updated_at attribuut. Je kunt ook een statische sleutel opgeven van object parameters.
Een andere methode van caching is het gebruik van Javascript om een veld bij te werken dat één keer per dag wordt gewijzigd. Op deze manier kun je de hele tijd een geldige datum laten weergeven, zonder de website te hoeven verversen.
Om niet te veel te verklappen: de paneldiscussie over de rol van de engineering manager in het wervingsproces is zeer waardevol voor iedereen die zich afvraagt wanneer het het juiste moment is voor de technische leider om in de sollicitatiecyclus te stappen. Op Codestwe in de praktijk brengen wat de panelleden prediken en onze CTO is het 1e aanspreekpunt voor ingenieurs die bij ons solliciteren, terwijl in de volgende fase de sollicitatiegesprekken worden gevoerd door team managers met wie de potentiële nieuwe medewerkers nauw zullen samenwerken. Een paar bruikbare adviezen die je meteen kunt toepassen om je wervingsspel als engineering manager te verbeteren:
-
Herzie uw proces en zorg ervoor dat u zo vroeg mogelijk deelneemt aan de stroom, idealiter het eerste contactpunt voor kandidaten, want de eerste indruk speelt een belangrijke rol in hoe uw bedrijf wordt gezien door toptalenten.
-
Neem contact op met zeer effectieve aanwervingsmanagers in je organisatie (misschien degene die jou vroeger heeft aangenomen) en vraag of je een paar van hun geplande sollicitatiegesprekken mag meelopen, hun technieken mag controleren, naar tips mag vragen. Kijk en leer. Ga elk gesprek in met een oprechte nieuwsgierigheid naar de kandidaten.
-
Zoek naar potentieel en neem mensen aan die snel kunnen groeien.
-
Bespreek je vacatures met al je engineers en vraag of ze zouden solliciteren. Zo niet, vraag dan wat er niet goed is en pas hun feedback toe op de 2.0 build-vacatureadvertentie die je op vacaturebanken gaat plaatsen.
-
Zie het 1e gesprek als een kans om een goede relatie op te bouwen met je potentiële toekomstige collega's.
Ik moedig je aan om het hele videopanel te bekijken, maar als je van podcasts houdt en graag luistert tijdens het rijden, sporten of afwassen, dan heb je hier ook een Spotify link.
Bedankt voor het lezen en als je zover bent gekomen, waardeer ik je tijd en alle feedback (of die nu cool is of me afkraakt) is meer dan welkom op LinkedIn of naar mijn e-mail.
Binnenkort de volgende aflevering!
Jippie IWill See You Soon Dansende GIF van Jippieiwillseeyousoon GIF's
Lees meer:
TheCodestReview #3 - wekelijkse sap over software-engineering
TheCodestReview #2 - wekelijks software engineering sap
TheCodestReview #1 - wekelijks software engineering sap