(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5LHNRP9'); Sérsniðin hugbúnaðarþróun. Stutt saga um vörumerkjabylgjur - The Codest
The Codest
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Iðnaðargreinar
    • Fjártæknifyrirtæki og bankastarfsemi
    • E-commerce
    • Adtech
    • Heilbrigðistækni
    • Framleiðsla
    • Flutningar
    • Bifreiða
    • Internet hlutanna
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
Aftur ör Farðu aftur
2019-02-04
Hugbúnaðarþróun

Sérsniðin hugbúnaðarþróun. Stutt saga um vörumerkjabylgjur

The Codest

Bartosz Slysz

Software Engineer

Eitt af þeim hlutum sem rugluðu okkur þegar við vorum að byggja nýju vefsíðuna okkar voru breyttar bylgjur sem sjást á mismunandi stöðum á síðum. Við höfðum margar hugmyndir um hvernig við gætum innleitt þær á réttan hátt án mikillar fyrirhafnar. Hins vegar voru flestar lausnirnar hægar og við þurftum að byggja frá grunni eitthvað sem væri hraðara en þau bókasöfn sem fyrir voru.

Hér er tómt.

Lausnartillögur

Við byrjuðum með einfaldri SVG-einingu sem var hreyfimynduð með mismunandi bókasöfnum. Þar sem við vildum hafa þrjár SVG-einingar á einni síðu var niðurstaðan ekki mjög ánægjuleg. Allar hreyfimyndirnar voru einfaldlega hægar – allar brautir einnar SVG-einingar þurftu að vera uppfærðar á mjög stuttum tíma, sem gerði alla síðuna jafn hæga og snigill. Við urðum að hafna lausninni sem fólst í því að setja hreint SVG inn í skjal. Það skildi eftir okkur með tveimur öðrum lausnum til að velja úr.

Þeir myndband þátturinn var önnur kosturinn. Við byrjuðum með tvö vandamál:

– gagnsæið bakgrunn, sem ekki er hægt að nota með vinsælustu myndbandsformötunum, svo sem .mp4 eða .webm,

– viðbragðshraði, sem var raunverulegt vandamál vegna þess að myndbönd eru ekki stigstærð sem slík.
​
Við ákváðum að setja þessa lausn á bið – “ef við finnum ekkert annað, munum við velja þessa”.

Síðasta valkosturinn var að nota striga með VefGL rendering. Þetta var svo óvenjulegur kostur því við þurftum að hanna alla rendering-vélfræði sjálf. Það var vegna þess að morphic-bylgjurnar sem við höfum voru sérsniðnar – sem neyddi okkur til að hanna sérsniðna lausn. Og það var kosturinn sem við vildum fara eftir og einbeita okkur að.

Arkitektúr lausnarinnar

​Byrjum frá grunni. Hvert var efnið sem við þurftum að nota til að búa til þessar bylgjur? Hugmyndin var sú að allar bylgjur væru SVG-skrár af stærðinni 1×1 með tilteknum brautum staðsettum í kringum svæðið. Hreyfimyndin af þessu SVG var búin til með mismunandi stöðum í skránni. Þannig voru allar hreyfimyndir táknaðar sem safn skráa sem innihéldu stigin í hreyfingu forms.

Skoðum nánar hvað rýmin eru – allir vegirnir eru í raun bara fylki með tilteknum gildum raðað í ákveðinni röð. Með því að breyta gildum í ákveðnum stöðum í þessu fylki breytist lögunin í tilteknum hlutum. Við getum einfaldað þetta með eftirfarandi dæmi:


ástand 1: [1, 50, 25, 40, 100]
ástand 2: [0, 75, -20, 5, 120]
ástand 3: [5, 0, -100, 80, 90]

Svo getum við gert ráð fyrir að formið sem við viljum birta samanstendur af fylki með fimm þáttum sem breytast með línulegu mýkingu á ákveðnum tímabilum. Þegar hreyfimyndin lýkur síðasta stigi byrjar hún aftur frá fyrsta stigi til að gefa okkur tilfinningu um endalausa hreyfimynd.

En… bíddu – hvað er raunverulega fylkið sem sýnt er hér að ofan? Eins og ég nefndi, er það braut sem sér um að birta ákveðna lögun. Allur galdurinn er innifalinn í d Eiginleiki SVG-slóðar. Þessi eiginleiki inniheldur safn af “skipunum” til að teikna form og hver skipun hefur ákveðin rök. Raðinn sem nefndur var hér að ofan samanstendur af öllum gildunum (röksemdum) sem tengjast þessum skipunum.

Eini munurinn á þessum “ríksskrám” var gildi ákveðinna skipana, þar sem röð skipana var sú sama. Þannig snerist allt galdurinn um að fá öll gildin og hreyfa þau.

Galdramaðurinn sem kallast Eðlisfræði

Í fyrri málsgreininni nefndi ég að eina galdurinn við að hreyfa hlut væri að búa til yfirfærslur milli allra stiga formsins. Spurningin er – hvernig á að gera það með canvas?
​
Fallið sem allir sem unnu með striga ætti að vita er beiðni um rammamyndun. Ef þú sérð þetta í fyrsta sinn, trúi ég af einlægni að þú ættir að byrja á því að lesa þetta. Svo, það sem við höfum áhuga á við þessa falli er argumentið – Háskerpu tímaskammtur DOM. Það lítur virkilega ógnvekjandi út en í raun er það ekki svo erfitt að skilja. Við getum sagt að þetta sé tímasetning sem merkir liðinn tíma frá fyrstu birtingu.

Ok, en hvað getum við gert með þetta? Eins og beiðni um rammamyndun Fallið ætti að kalla sjálft sig endurkvæmt, við getum nálgast tímamuninn á milli kalla þess. Og hér förum við með vísindin! ⚛️ (ok, kannski ekki eldflaugavísindi… ennþá)
​
Eðlisfræði kennir okkur að breyting á fjarlægð sé jöfn breytingu á tíma margfölduð með hraða. Í okkar tilfelli er hraðinn óbreytanlegur því við viljum ná endapunktinum á tilteknum tíma. Svo skulum við skoða hvernig við getum sýnt þetta með ofangreindum stöðum:

Segjum að við viljum skipta á milli þessara ástanda á einni þúsundustu úr sekúndu, þá verða hraðagildin eftirfarandi:


delta: [ -1, 25, -45, -35, 20]
hraði: [-1/1000, 25/1000, -45/1000, -35/1000, 20/1000]

Hraðinn hér að ofan segir okkur: fyrir hverja millisekúndu skulum við auka gildið um -1/1000. Og hér er punkturinn þar sem við getum farið aftur til okkar beiðni um rammamyndun og tímaafbrigði. Gildi ákveðinnar stöðu sem við viljum auka er tímaafbrigði margfaldað með hraða þeirrar stöðu. Eitt fleira sem þarf að gera án vandræða er að takmarka gildið svo það fari ekki yfir ástandið sem það stefnir að.
​
Þegar umbreytingin lýkur köllum við aðra og svo framvegis. Og það virðist ekki vera svo erfitt að innleiða en eitt af helstu reglum í hugbúnaðarþróun er ekki að eyða tíma í hluti sem þegar hafa verið innleiddir. Svo – við völdum a lítil bókasafn sem gerir okkur kleift að búa til þessar umbreytingar á auðveldan hátt.
​
Svona bjuggum við til eina hreyfða öld sem lítur út eins og lifandi vera.

Fá orð um klónun forma

Eins og þú sérð, The Codest Vörumerki-bylgjur eru ekki ein hreyfð mynd. Þær samanstanda af mörgum myndum með sama form en mismunandi stærð og staðsetningu. Í þessu skrefi munum við kíkja stuttlega á hvernig á að afrita á þennan hátt.
​
Svo gerir striga-samhengi okkur kleift að Stærðarhlutfall teiknisvæðis (undir vélarhúsinu – má segja að það margfaldar allar víddir sem sendar eru í drawable-aðferðir með “k”, þar sem “k” er stærðarstuðull sem sjálfgefið er stilltur á “1”), Þýða striga, það er eins og að breyta festipunkti teiknisvæðis. Og við getum líka hoppað á milli þessara ástanda með þessum aðferðum: vista og Endurheimta.
​
Þessar aðferðir gera okkur kleift að vista ástandið “engar breytingar” og síðan búa til ákveðinn fjölda bylgna í lykkjunni með rétt stærðar- og staðsetningarbreyttum striga. Strax í kjölfarið getum við farið aftur í það vistaða ástand. Þetta er allt sem snýr að klónun myndanna. Mikið auðveldara en að klóna kindur, er það ekki?

Kirsuber á toppinn

Ég nefndi að við höfðum hafnað einni hugsanlegri lausn vegna frammistöðu. Valkosturinn með canvas er nokkuð hraður, en enginn sagði að ekki væri hægt að fínstilla hann enn frekar. Við skulum byrja á því að okkur er í raun alveg sama um að breyta formum þegar þau eru utan sýnissvæðis vafra.
​
Það er annar vafri forritaskil sem forritarar elskuðu – Gatnamótavaktari. Það gerir okkur kleift að fylgjast með tilteknum þáttum síðu og meðhöndla atburði sem kallaðir eru þegar þessir þættir birtast eða hverfa úr sýnissvæðinu. Núna er staðan frekar einföld – skulum búa til sýnileikastöðu, breyta henni með atburðarhöndlum IntersectionObserver og einfaldlega kveikja eða slökkva á birtingarkerfinu fyrir tilteknar myndir. Og … bam! Frammistaðan hefur batnað verulega! Við erum að birta eingöngu þær hluti sem sjást í sýnissvæðinu.

Yfirlit

Það er oft erfitt að velja hvernig skuli framkvæma hlutina, sérstaklega þegar tiltæku valkostirnir virðast hafa svipuð kost og galla. Lykillinn að því að taka rétta ákvörðun er að greina hvern þeirra og útiloka þá sem okkur þykja síður gagnlegir. Ekki er allt jafn skýrt – ein lausn krefst meiri tíma en hinar, en hún gæti verið auðveldari í fínstillingu eða sveigjanlegri.

Þó að nýtt JS Bókasöfn birtast nánast á hverri mínútu, en það eru hlutir sem þau geta ekki leyst. Og þess vegna ætti hver front-end verkfræðingur (og ekki aðeins þeir) að þekkja vafraviðmótforritaskil (API), fylgjast með tæknifréttum og stundum bara hugsa: “Hvernig myndi útfærsla mín á þessu bókasafni líta út ef ég þyrfti að gera þetta?”. Með meiri þekkingu á vöfrum getum við smíðað virkilega glæsilega hluti, tekið góðar ákvarðanir um þau verkfæri sem við notum og orðið sjálfsöruggari um okkar kóði.

Lesa meira:

– Ruby 3.0. Ruby og minna þekktar aðferðir til stjórnunar persónuverndar

– Þegðu og taktu peningana þína #1: Falinn kostnaður og raunveruleg sveigjanleiki í vöruþróunarferli

– CTO áskoranir – stækkun og vöxtur hugbúnaðarafurða

Tengdar greinar

Myndskreyting af heilbrigðisforriti fyrir snjallsíma með hjartatákni og hækkandi heilsufarsgrafík, merkt með The Codest-merkinu, sem táknar stafræna heilsu og HealthTech-lausnir.
Hugbúnaðarþróun

Heilbrigðis-hugbúnaður: gerðir og notkunartilvik

Tólin sem heilbrigðisstofnanir treysta á í dag líta ekkert út eins og pappírsskjöl frá fyrri áratugum. Heilbrigðisforrit styðja nú heilbrigðiskerfi, sjúklingameðferð og nútímalega heilbrigðisþjónustu á klínískum og...

THECODEST
Yfirlitsmynd sem sýnir hnignandi súlurit með uppstrekktri ör og gullmynt sem táknar kostnaðarhagkvæmni eða sparnað. The Codest-merkið birtist í efra vinstra horni með slagorðinu "In Code We Trust" á ljósgráum bakgrunni.
Hugbúnaðarþróun

Hvernig á að stækka þróunarteymið án þess að fórna gæðum vörunnar

Ertu að stækka þróunarteymið þitt? Lærðu hvernig á að vaxa án þess að fórna gæðum vörunnar. Þessi leiðarvísir fjallar um merki um að kominn sé tími til að stækka, uppbyggingu teymisins, ráðningar, forystu og verkfæri—og hvernig teymið getur...

THECODEST
Hugbúnaðarþróun

Búðu til vefumsóknir sem þola framtíðina: innsýn frá sérfræðiteymi The Codest

Uppgötvaðu hvernig The Codest skarar fram úr við að búa til stigstækar, gagnvirkar vefumsóknir með nýjustu tækni, sem bjóða upp á hnökralausa notendaupplifun á öllum kerfum. Lærðu hvernig sérfræðiþekking okkar knýr fram stafræna umbreytingu og viðskipti...

THECODEST
Hugbúnaðarþróun

Topp 10 hugbúnaðarþróunarfyrirtæki í Lettlandi

Kynntu þér fremstu hugbúnaðarþróunarfyrirtæki Lettlands og nýstárlegar lausnir þeirra í nýjustu grein okkar. Uppgötvaðu hvernig þessir tækniforingjar geta hjálpað til við að efla fyrirtækið þitt.

thecodest
Lausnir fyrir fyrirtæki og vaxtarfyrirtæki

Grunnatriði í Java hugbúnaðarþróun: Leiðarvísir að árangursríkri útvistun

Kannaðu þessa ómissandi leiðbeiningu um árangursríka outsourcing Java hugbúnaðarþróun til að auka skilvirkni, afla aðgangs að sérfræðiþekkingu og tryggja árangur verkefna með The Codest.

thecodest

Gerðu þig áskrifanda að þekkingargrunni okkar og vertu upplýstur um sérfræðiþekkingu upplýsingatæknigeirans.

    Um okkur

    The Codest – Alþjóðlegt hugbúnaðarþróunarfyrirtæki með tæknimiðstöðvar í Póllandi.

    Bretland - Höfuðstöðvar

    • Skrifstofa 303B, 182-184 High Street North E6 2JA
      Lundúnir, England

    Pólland - staðbundin tæknimiðstöðvar

    • Fabryczna skrifstofugarður, Aleja
      Herbergi 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsjá, Pólland

    The Codest

    • Heim
    • Um okkur
    • Þjónusta
    • Case Studies
    • Vitið hvernig
    • Starfsferilmöguleikar
    • Orðabók

    Þjónusta

    • Það er ráðgjafi
    • Hugbúnaðarþróun
    • Bakendaþróun
    • Framhliðþróun
    • Staff Augmentation
    • Bakhliðaráþróunaraðilar
    • Skýjaverkfræðingar
    • Gagnaverkfræðingar
    • Annað
    • Gæðatryggingartæknimenn

    Auðlindir

    • Staðreyndir og goðsagnir um samstarf við utanaðkomandi hugbúnaðarþróunaraðila
    • Frá Bandaríkjunum til Evrópu: Af hverju ákveða bandarísk sprotafyrirtæki að flytja til Evrópu?
    • Samanburður á tæknifjarkerfisþróunarmiðstöðvum: Tech Offshore Europe (Pólland), ASEAN (Filippseyjar), Eurasia (Tyrkland)
    • Hvert eru helstu áskoranir CTO-a og CIO-a?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Höfundarréttur © 2026 af The Codest. Öll réttindi áskilin.

    is_ISIcelandic
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech lvLatvian lt_LTLithuanian is_ISIcelandic