window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = vindue if (w.LeadBooster) { console.warn('LeadBooster findes allerede') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() TheCodestReview #5 - software engineering juice hver anden uge - The Codest
Codest
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Industrier
    • Fintech og bankvirksomhed
    • E-commerce
    • Adtech
    • Sundhedsteknologi
    • Produktion
    • Logistik
    • Biler
    • IOT
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
Pil tilbage GÅ TILBAGE
2021-02-02
Udvikling af software

TheCodestReview #5 - software engineering juice hver anden uge

Codest

Kamil Ferens

Chef for vækst

Denne episode var planlagt til udgivelse i december før juleferien, så det ser ud til, at jeg er flaskehalsen, der er skyld i forsinkelsen. Jeg er blevet ved med at udskyde udgivelsen uge for uge, da et par højt prioriterede opgaver kom i vejen, men i dag er dagen.

Jeg har travlt med at gøre ting Pc Principal GIF fra Uoverskuelige ting GIF'er

I sidste episode drillede jeg med at kommentere artiklen om vigtigheden af humor på arbejdspladsen, men i mellemtiden har jeg fundet ud af, at den fortjener meget mere anerkendelse, så jeg vil snart skrive et helt blogindlæg om den (ish).    

IPromise You Believe Me GIF fra Ipromiseyou GIF'er

Ting, der har holdt mig beskæftiget de sidste par uger: 

a) Før jul startede jeg med premiereafsnittet af "Skudsikker CTO"-webinarserie (hold øje med 2. episode i februar med SaaS) CTO'er(detaljer følger snart på min LinkedIn).

b) Justering af vores vækstplan for 2021 med et mål om at gå ud over vores Ruby og JS-kerneforretning og udvikle en Magento- og Produkt Designkompetence internt.

Nok om selvpromovering, lad mig invitere dig til 5. episode af vores #TheCodestReview-serie. 

Mine emner hold har forberedt sig på denne tid: 

  1. Skalerbar og vedligeholdelsesvenlig frontend-arkitektur.
  2. Konventionelle forpligtelser.
  3. Ruby 3.0.0 udgivelsesopdateringer.

Kommentarerne til frontend-applikationen og konventionelle commits leveres i denne uge af vores React-ingeniører, mens Ruby 3.0.0 leveres af vores Ruby-dreamteam.

I dag bruger mange udviklere allerede fremstillede UI-biblioteker og genanvendelige komponenter for at spare tid. Det er en god praksis, og det hjælper os med at spare en masse tid, men når vores projekt bliver større - du vil forstå, at det ikke er nok at håndtere med Kode.

Der er to gode mønstre fra backend-udvikling - Domain Driven Development (DDD) og Separation of Concerns (SoC). Vi kan også bruge dem i front-end-arkitekturen.

I DDD forsøger vi at gruppere lignende funktioner og afkoble dem så meget som muligt fra andre grupper (moduler).

Mens vi med SoC f.eks. adskiller logik, visninger og datamodeller (f.eks. ved hjælp af MVC- eller MVVM-designmønsteret).

Der er mange gode fremgangsmåder og mønstre at bruge, men denne måde er at foretrække for mig.

Når vi bruger dette mønster, får vi dette billede:

I begyndelsen bliver brugeren omdirigeret til det korrekte modul af app-routingen. Hvert modul er fuldstændig lukket. Men da en bruger forventer at bruge én applikation og ikke et par små, vil der være en vis kobling. Denne kobling findes på specifikke funktioner eller forretningslogik.

Og vi har denne struktur:

app-mappe - applikationslag

assets - mappe til billeder, skrifttyper, ikoner osv.

komponenter - her skal være komponenter til genbrug, som ikke har kompliceret logik

config - her gemmer vi den globale tilstand

lib - mappe til komplicerede funktioner og logiske beregninger

moduler - her er vores moduler

pubsub - sted til opbevaring af skemaer til beskrivelse af datastrukturer.

styles - til vores css/scss-kode

Denne struktur vil hjælpe os med at håndtere vores voksende applikation og få færre fejl. Det vil også gøre det nemmere at arbejde med separate moduler, at teste dem og at gøre refaktorering og fejlfinding lettere (på grund af de separate moduler).

Hvis vi ser nærmere på modularkitekturen og deres forbindelser med API'er, får vi noget i den retning:

I mappen 'app' opretter vi en anden mappe 'api' med kode til API-opkald og data, som vi gemmer i 'config/store'. Her opbevarer vi statiske og uforanderlige data, som vi bruger i hele applikationen.

I mappen 'pubsub/schema' vil vi også beskrive specifikke datatyper for JavaScript objekter.

Alle moduler indeholder data, som vi skal bruge (brugere, ruter, tabeller, handlinger osv.). Hvert modul er forbundet med applikationslaget og tager alle nødvendige data.

Front-end er den første indgang for vores brugere. Når vores frontend-projekter får flere funktioner, vil vi også introducere flere fejl. Men vores brugere forventer ingen fejl og nye funktioner hurtigt. Det er umuligt. Men ved at bruge en god arkitektur kan vi kun forsøge at opnå dette så meget som muligt.

Konventionelle forpligtelser af Sathyabodh Mudhol på DZone

The Codest softwareudvikling

Årsagen til behovet for at engagere sig i arbejdet på en bedre måde

Forestil dig, at du er ved at starte i en virksomhed, hvor du lige er blevet ansat. Alle folk er søde ved dig, og alt virker fint, indtil du bliver introduceret til en kodebase fra før JavaScript var et sprog, og Netscape indlæste en side i noget, der virker som en evighed.

Nedarvning af kode synes at være et stort problem, når nye udviklere skal introduceres til et projekt. At læse koden er én ting, men at forstå, hvordan applikationen blev udviklet, er ikke helt det samme. Ofte viser commits sig at være nyttige og giver kontekst til, hvorfor disse console.logs ikke blev fanget af linter, eller hvorfor den grimme // TODO er der for børn af den udvikler, der oprindeligt lavede annotationen.

Lad os starte med at fortælle, hvorfor konventionelle commits er bedre end ustandardiserede commit-regler.

Hvis vi ansætter nye udviklere til et projekt, hvor de fleste commits består af beskeder i stil med "det burde virke" eller "Sleepy fix for footer ASAP", hvad dukker så op i dit hoved?

Jeg vil sige, at der er røde flag, fordi:

  • Vi ved ikke præcis, hvad der skal virke
  • Hvorfor skubbede nogen på noget, mens de var søvnige og potentielt fejlagtige?
  • Var rettelsen forhastet, hvis vi kan se ASAP-annotationen?

Fordi dit team kan have tilpassede regler for, hvornår man overfører ændringer, er der mindre plads til fejl, da din overførsel skal være solid. Det er ikke længere bare en måde at tjekke ud på. Det er en signatur, der fortæller andre mennesker, at du kendte indholdet af committen. Det er ikke nødvendigt at nævne, at hvis det arbejde, du har udført, ikke er korrekt signeret, vil det højst sandsynligt resultere i en fejl og give dig en besked

Der er en chance for, at dit team gerne vil opsætte en regel, der forbyder bestemte nøgleord, så ASAP eller bandeord kan komme på den sorte liste.

Værktøj

Det, der virkelig hjælper i starten af projektet, er at introducere alle til, hvordan din Udviklingsteam vil gerne have nye udviklere til at committe deres ændringer. Sæt derefter et værktøj op, der hjælper dem med at holde trit med det, I alle er blevet enige om.

Et af de værktøjer, jeg har haft mulighed for at arbejde med, var commitlint og det gjorde konventionelle commits til min go-to-praksis, når jeg kommer til nye projekter, der ikke har regler, og teamet er åbent over for ideen om at indføre dem.

Når du skal håndtere indstillingerne og sprede dem på tværs af dit team, kan du simpelthen oprette en npm-pakke og bare mpn i -D den i hvert projekt. Det vil helt sikkert hjælpe alle i projektet med at være på samme side hele tiden og om nødvendigt gå fra projekt til projekt og forstå, hvad de sidste ændringer drejede sig om (og hvorfor de blev foretaget).

Venner med flere fordele

Så efter at have sat det hele op og forstået, hvorfor det kan være en god idé at begynde at bruge CC, er den bedste del at programmere omkring de regler, du lige har anvendt! Vi bruger en standardiseret måde at committe på, vi er mere opmærksomme på, hvad committen egentlig handlede om, så hvorfor ikke opsætte hooks, der giver dig mulighed for hurtig testning på staging, når der er et flag til stede? Vi ønsker ikke at overbelaste tjenesterne og skære ned på omkostningerne, når det er nødvendigt, og der er nogle grunde til at teste på en produktionslignende server i stedet for localhost.

Lad os antage, at du arbejder på PWA, og at SSL er nødvendigt for at teste det fulde potentiale, og at du har en SSL på din testplatform. Alt, hvad du behøver nu, er bare en god commit. Noget i retning af feat(PWA): manifest icons workbox setup upload ville udløse hele maskineriet med test og flytte rundt på tandhjulene. Det har vi ikke brug for, når vi bare uploader nogle statiske data som manifest.json, så vi tilføjer et flag [TEST_SKIP] som et postfix til vores commit. Det gør det muligt for vores CI bare at uploade nye aktiver til testmiljøet og springe testningen over. Du kan læse mere om det her

Efter et stykke tid vil du kunne se andre fordele, som f.eks. at det er nemmere at generere CHANGELOG og bedre versionering med semantisk versionering. Hvis det ikke er nok til at overbevise dig om at ændre din måde at skrive commit-beskeder på, kan det måske få dig på andre tanker at dyppe tæerne i frisk, koldt vand og prøve at bruge dem i dit private repository i et stykke tid.

God fornøjelse med at begå konventionelle handlinger!

Opdateringer til Ruby 3.0.0-udgivelsen af Ruby Community

En længe ventet Ruby 3.0.0-udgivelse har set dagens lys i julen, så alle Ruby-udviklere derude kunne finde den under juletræet, når de vågnede om morgenen. Hos The Codest dyrker vi vidensdelingskulturen ved at organisere ugentlige udviklingsmøder, hvor vores ingeniører diskuterer teknologitendenser og deres nye opdagelser, der er værd at lægge mærke til. Nedenfor kan du finde et link til slides fra demodagen, hvor vores senior Ruby-ingeniør diskuterede et par vigtige ændringer i Ruby 3.0.0 fra sit subjektive synspunkt:

https://drive.google.com/file/d/1rboAusV1UTWXYMVGuLHx6O90lXrgkmnO/view?usp=sharing

Desuden har vores Ruby-mentor bidraget til den nye version med sin pull-anmodning, som blev flettet med succes. Du kan læse mere om metoder til kontrol af privatlivets fred i den korte artikel af vores udviklingschef nedenfor.

https://thecodest.co/blog/ruby-3-0-ruby-and-lesser-known-privacy-control-methods

Mange tak, fordi du læste med, og hvis du er kommet så langt, sætter jeg pris på din tid, og enhver form for feedback er mere end velkommen på LinkedIn eller på min e-mail.

Vi vender tilbage med den næste episode i slutningen af februar med en gennemgang af en podcast, der interviewer Shopifys CTO, manden bag et ingeniørteam, der arbejder på den storslåede Ruby-monolit-app!

Vi ses.

Runde 2 GIF fra Round2 GIF'er

Ruby-udvikler-tilbud

Læs mere om det:

TheCodestReview #4 - ugentlig software engineering juice

TheCodestReview #3 - ugentlig software engineering juice

TheCodestReview #2 - ugentlig software engineering juice

Relaterede artikler

Udvikling af software

Byg fremtidssikrede webapps: Indsigt fra The Codest's ekspertteam

Oplev, hvordan The Codest udmærker sig ved at skabe skalerbare, interaktive webapplikationer med banebrydende teknologier, der leverer sømløse brugeroplevelser på tværs af alle platforme. Lær, hvordan vores ekspertise driver digital transformation og...

DENKODEST
Udvikling af software

Top 10 Letlands-baserede softwareudviklingsvirksomheder

Læs om Letlands bedste softwareudviklingsvirksomheder og deres innovative løsninger i vores seneste artikel. Find ud af, hvordan disse teknologiledere kan hjælpe med at løfte din virksomhed.

thecodest
Løsninger til virksomheder og scaleups

Grundlæggende om Java-softwareudvikling: En guide til succesfuld outsourcing

Udforsk denne vigtige guide til vellykket outsourcing af Java-softwareudvikling for at forbedre effektiviteten, få adgang til ekspertise og skabe projektsucces med The Codest.

thecodest
Udvikling af software

Den ultimative guide til outsourcing i Polen

Den voldsomme stigning i outsourcing i Polen er drevet af økonomiske, uddannelsesmæssige og teknologiske fremskridt, der fremmer it-vækst og et erhvervsvenligt klima.

TheCodest
Løsninger til virksomheder og scaleups

Den komplette guide til IT-revisionsværktøjer og -teknikker

IT-revisioner sikrer sikre, effektive og kompatible systemer. Lær mere om deres betydning ved at læse hele artiklen.

Codest
Jakub Jakubowicz CTO og medstifter

Tilmeld dig vores vidensbase, og hold dig opdateret om ekspertisen fra it-sektoren.

    Om os

    The Codest - International softwareudviklingsvirksomhed med tech-hubs i Polen.

    Storbritannien - Hovedkvarter

    • Kontor 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokale teknologiske knudepunkter

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Hjerneambassaden, Konstruktorska
      11, 02-673 Warszawa, Polen

      Codest

    • Hjem
    • Om os
    • Serviceydelser
    • Casestudier
    • Ved hvordan
    • Karriere
    • Ordbog

      Serviceydelser

    • Det rådgivende
    • Udvikling af software
    • Backend-udvikling
    • Frontend-udvikling
    • Staff Augmentation
    • Backend-udviklere
    • Cloud-ingeniører
    • Dataingeniører
    • Andet
    • QA-ingeniører

      Ressourcer

    • Fakta og myter om at samarbejde med en ekstern softwareudviklingspartner
    • Fra USA til Europa: Hvorfor beslutter amerikanske startups sig for at flytte til Europa?
    • Sammenligning af Tech Offshore-udviklingsknudepunkter: Tech Offshore Europa (Polen), ASEAN (Filippinerne), Eurasien (Tyrkiet)
    • Hvad er de største udfordringer for CTO'er og CIO'er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Vilkår for brug af hjemmesiden

    Copyright © 2025 af The Codest. Alle rettigheder forbeholdes.

    da_DKDanish
    en_USEnglish de_DEGerman sv_SESwedish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek da_DKDanish