window.pipedriveLeadboosterConfig = { base: pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster on jo olemassa') } 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 - kahden viikon välein ilmestyvä ohjelmistotekniikan mehu - The Codest
Codest
  • Tietoa meistä
  • Palvelut
    • Ohjelmistokehitys
      • Frontend-kehitys
      • Backend-kehitys
    • Staff Augmentation
      • Frontend-kehittäjät
      • Backend-kehittäjät
      • Tietoinsinöörit
      • Pilvi-insinöörit
      • QA insinöörit
      • Muut
    • Se neuvoa-antava
      • Tilintarkastus & konsultointi
  • Toimialat
    • Fintech & pankkitoiminta
    • E-commerce
    • Adtech
    • Terveysteknologia
    • Valmistus
    • Logistiikka
    • Autoteollisuus
    • IOT
  • Arvo
    • TOIMITUSJOHTAJA
    • CTO
    • Toimituspäällikkö
  • Tiimimme
  • Tapaustutkimukset
  • Tiedä miten
    • Blogi
    • Tapaamiset
    • Webinaarit
    • Resurssit
Työurat Ota yhteyttä
  • Tietoa meistä
  • Palvelut
    • Ohjelmistokehitys
      • Frontend-kehitys
      • Backend-kehitys
    • Staff Augmentation
      • Frontend-kehittäjät
      • Backend-kehittäjät
      • Tietoinsinöörit
      • Pilvi-insinöörit
      • QA insinöörit
      • Muut
    • Se neuvoa-antava
      • Tilintarkastus & konsultointi
  • Arvo
    • TOIMITUSJOHTAJA
    • CTO
    • Toimituspäällikkö
  • Tiimimme
  • Tapaustutkimukset
  • Tiedä miten
    • Blogi
    • Tapaamiset
    • Webinaarit
    • Resurssit
Työurat Ota yhteyttä
Takaisin nuoli PALAA TAAKSE
2021-02-02
Ohjelmistokehitys

TheCodestReview #5 - kahden viikon välein ilmestyvä ohjelmistotekniikan mehu

Codest

Kamil Ferens

Kasvupäällikkö

Tämä jakso oli tarkoitus julkaista joulukuussa ennen joulutaukoa, joten näyttää siltä, että minä olen se pullonkaula, joka on syypää viivästymiseen. Olen lykännyt julkaisua viikko viikolta, kun muutamat tärkeät tehtävät ovat tulleet tielle, mutta tänään on se päivä.

Im Busy Doing Stuff Pc Principal GIF osoitteesta Imbusydoingstuff GIFit

Viime jaksossa olen kiusoitellut kommentoimaan artikkelia, joka käsittelee huumorin merkitystä työpaikoilla, mutta sillä välin tajusin, että se ansaitsee paljon enemmän tunnustusta, joten aion kirjoittaa siitä pian kokonaisen blogikirjoituksen.    

IPromise You Believe Me GIF osoitteesta Ipromiseyou GIFit

Asiat, jotka pitivät minut kiireisenä parin viime viikon aikana: 

a) Ennen joulua aloitin ensi-iltajaksolla sarjan "Luodinkestävä CTO" -webinaarisarja (pysy kuulolla helmikuun 2. jaksoa varten, jossa on SaaS:ää CTO:t, lisätietoja pian LinkedInissäni).

b) Kasvusuunnitelmamme virittäminen vuodelle 2021, jonka tavoitteena on mennä Ruby- ja JS-ydinliiketoimintamme ulkopuolelle ja kasvattaa Magento- ja Tuote Suunnitteluosaaminen sisäinen.

Tarpeeksi itsemainontaa, haluan kutsua sinut #TheCodestReview-sarjamme viidenteen jaksoon. 

Aiheet minun joukkue on valmistautunut tähän aikaan: 

  1. Skaalautuva ja ylläpidettävä front-end-arkkitehtuuri.
  2. Perinteiset sitoumukset.
  3. Ruby 3.0.0 -julkaisun päivitykset.

Kommentit frontend-sovelluksesta ja tavanomaisista kommitoinneista toimitetaan tällä viikolla React-insinööreiltämme, kun taas Ruby 3.0.0:n toimittaa Ruby dream team -tiimimme.

Nykyään monet kehittäjät käyttävät ajan säästämiseksi jo valmiita käyttöliittymäkirjastoja ja uudelleenkäytettäviä komponentteja. Se on hyvä käytäntö, ja se auttaa meitä säästämään paljon aikaa, mutta kun meidän projekti tulee suurempi - ymmärrät, että se ei riitä käsittelemään kanssa koodi.

Back-end-kehityksestä on olemassa kaksi hyvää mallia - Domain Driven Development (DDD) ja Separation of Concerns (SoC). Voimme käyttää niitä myös front-end-arkkitehtuurissa.

DDD:ssä yritämme ryhmitellä samankaltaisia ominaisuuksia ja irrottaa ne mahdollisimman paljon muista ryhmistä (moduuleista).

SoC:n avulla esimerkiksi logiikka, näkymät ja tietomallit erotetaan toisistaan (esimerkiksi MVC- tai MVVM-suunnittelumallin avulla).

On olemassa paljon hyviä käytäntöjä ja malleja, mutta tämä tapa on minulle mieluisin.

Kun käytämme tätä mallia, saamme tämän kuvan:

Sovelluksen reititys ohjaa käyttäjän alussa oikeaan moduuliin. Jokainen moduuli on täysin suljettu. Mutta koska käyttäjä odottaa käyttävänsä yhtä sovellusta eikä useita pieniä sovelluksia, on olemassa jonkin verran kytkentää. Tämä kytkentä liittyy tiettyihin ominaisuuksiin tai liiketoimintalogiikkaan.

Ja meillä on tämä rakenne:

app-kansio - sovelluskerros

assets - kansio kuvia, fontteja, kuvakkeita jne. varten.

komponentit - tässä pitäisi olla uudelleenkäytettäviä komponentteja, joissa ei ole monimutkaista logiikkaa.

config - tänne tallennetaan globaali tila

lib - kansio monimutkaisille funktioille ja logiikkalaskennalle

moduulit - tässä ovat moduulit

pubsub - paikka, johon tallennetaan tietorakennetta kuvaavia skeemoja.

styles - css/scss-koodillemme

Tämä rakenne auttaa meitä käsittelemään kasvavaa sovellustamme ja vähentämään virheitä. Se auttaa myös tekemään helpommin erillisiä moduuleja, testaamaan niitä ja tekemään refaktoroinnista ja virheenkorjauksesta helpompaa (erillisten moduulien ansiosta).

Jos tarkastelemme tarkemmin moduulien arkkitehtuuria ja niiden yhteyksiä API:n kanssa, saamme jotakin tämän kaltaista:

Jos 'app'-kansio luodaan toinen kansio 'api', jossa on API-kutsujen koodi ja tiedot tallennetaan 'config/store'-kansioon. Tässä säilytämme staattisia ja muuttumattomia tietoja, joita käytämme koko sovelluksessa.

Myös 'pubsub/schema'-kansiossa kuvataan erityiset tietotyypit seuraaville tiedostoille JavaScript esineitä.

Kaikki moduulit sisältävät tietoja, joita meidän on käytettävä (käyttäjät, reitit, taulukot, toiminnot jne.). Jokainen moduuli on yhteydessä sovelluskerrokseen ja ottaa kaikki tarvittavat tiedot.

Front-end on ensimmäinen kohta, josta käyttäjät pääsevät sisään. Kun front-end-projektimme ominaisuudet lisääntyvät, myös virheitä tulee lisää. Käyttäjämme odottavat kuitenkin, ettei virheitä esiinny ja että uudet ominaisuudet tulevat nopeasti. Tämä on mahdotonta. Käyttämällä hyvää arkkitehtuuria voimme kuitenkin vain yrittää saavuttaa tämän mahdollisimman hyvin.

Perinteiset sitoumukset kirjoittanut Sathyabodh Mudhol DZone-sivustolla.

The Codest ohjelmistokehitys

Syy siihen, että työtä on tehtävä paremmin, on seuraava

Kuvittele, että olet lähtötilanteessa yrityksessä, johon olet juuri saanut työpaikan. Kaikki ihmiset ovat mukavia sinulle, ja kaikki näyttää hyvältä siihen asti, kunnes pääset tutustumaan koodipohjaan, joka on peräisin ajalta ennen kuin JavaScript oli kieli ja Netscape latasi sivua ikävältä tuntuvan ajan.

Koodin periytyminen näyttää olevan valtava ongelma, kun uusia kehittäjiä otetaan mukaan projektiin. Koodin lukeminen on yksi asia, mutta sen ymmärtäminen, miten sovellus on kehitetty, ei ole aivan sama asia. Usein kommitit osoittautuvat hyödyllisiksi ja antavat kontekstin sille, miksi linter ei saanut kiinni näitä console.logeja tai miksi tuo ikävä // TODO on siellä sen kehittäjän lapsille, joka alun perin teki merkinnän.

Aloitetaan siitä, miksi tavanomaiset komennot ovat parempia kuin standardoimattomat komentosäännöt.

Jos palkkaamme uusia kehittäjiä projektiin, jossa suurin osa kommitoinneista koostuu viesteistä tyyliin tuon pitäisi toimia tai Sleepy fix for footer ASAP, mitä tulee mieleesi?

Sanoisin, että punainen lippu, koska:

  • Emme tiedä, mitä tarkalleen ottaen pitäisi tehdä
  • Miksi joku tyrkytti jotakin unisena ja mahdollisesti virheellisesti?
  • Oliko korjaus kiireinen, jos voimme nähdä ASAP-merkinnän?

Koska tiimisi voi soveltaa mukautettuja sääntöjä siihen, milloin joku tekee muutoksia, on vähemmän tilaa virheille, koska toimituksen on oltava vankka. Se ei ole enää keino, jolla voi vain kirjautua ulos. Se on allekirjoitus, joka kertoo muille ihmisille, että tiesit toimituksen sisällön. Ei tarvitse mainita, että jos tekemääsi työtä ei ole allekirjoitettu oikein, se johtaa todennäköisesti virheeseen ja antaa sinulle viestin

On mahdollista, että tiimisi haluaisi asettaa säännön, joka kieltää tietyt avainsanat, joten ASAP tai kirosanat voivat olla mustalla listalla.

Työkalut

Projektin alussa on todella hyödyllistä esitellä kaikille, miten teidän kehitystiimi haluaisi uusien kehittäjien sitoutuvan muutoksiinsa. Perustakaa sitten työkalu, joka auttaa heitä pitämään kiinni siitä, mitä te kaikki olette sopineet.

Yksi työkalu, jonka kanssa minulla on ollut mahdollisuus työskennellä, oli commitlint ja se teki tavanomaisista kommitoinneista käytäntöni, kun tulen uusiin projekteihin, joissa ei ole sääntöjä ja joissa tiimi on avoin ajatukselle niiden käyttöönotosta.

Kun käsittelet asetuksia ja levität niitä tiimisi kesken, voit yksinkertaisesti luoda npm-paketin ja vain mpn i -D sen jokaiseen projektiin. Tämä auttaa varmasti kaikkia projektin jäseniä olemaan aina samalla sivulla ja tarvittaessa kävelemään projektista toiseen ymmärtäen, mistä viimeisimmät muutokset johtuivat (ja miksi ne tehtiin).

Ystävät, joilla on useita etuja

Nyt kun olet asettanut kaiken valmiiksi ja ymmärtänyt, miksi CC:n käyttäminen voisi olla hyvä idea, paras osa on ohjelmointi juuri soveltamiesi sääntöjen ympärille! Käytämme standardoitua tapaa, jolla teemme committeja, kiinnitämme enemmän huomiota siihen, mistä commitissa todella oli kyse, joten miksi emme asettaisi koukkuja, jotka mahdollistavat nopean testauksen stagingissä, kun lippu on läsnä? Emme halua ylikuormittaa palveluita ja leikata kustannuksia tarvittaessa, ja on joitakin syitä testata tuotantoa muistuttavalla palvelimella localhostin sijaan.

Oletetaan, että työskentelet PWA:n parissa ja että SSL on tarpeen, jotta voit testata sen koko potentiaalia, ja sinulla on SSL testausalustassasi. Tarvitset nyt vain hyvän sitoumuksen. Jotain tyyliin feat(PWA): manifest icons workbox setup upload käynnistäisi koko testauksen koneiston ja hammasrattaiden liikuttelun. Emme tarvitse sitä, kun vain lataamme jotain staattista dataa, kuten manifest.jsonin, joten lisäämme flagin [TEST_SKIP] postfixina commitiin. Sen ansiosta CI:mme voi vain ladata uusia assetteja testausympäristöön ja ohittaa testauksen. Voit lukea lisää siitä täällä

Jonkin ajan kuluttua voit nähdä muita hyötyjä, kuten CHANGELOGin luomisen helppous ja parempi versiointi, kun käytät semanttinen versiointi. Jos tämä ei riitä vakuuttamaan sinua muuttamaan tapojasi kirjoittaa commit-viestejä, ehkäpä varpaiden kastaminen raikkaaseen kylmään veteen ja niiden käyttäminen yksityisessä arkistossasi jonkin aikaa muuttaisi mielesi.

Hyvää perinteistä sitoutumista!

Ruby 3.0.0 julkaisupäivitykset Ruby Community

Kauan odotettu Ruby 3.0.0 -julkaisu on nähnyt päivänvalon jouluna, jotta kaikki Ruby-kehittäjät löytäisivät sen joulukuusen alta, kun he heräävät aamulla. Me The Codest:ssä vaalimme tiedon jakamisen kulttuuria järjestämällä viikoittaisia dev-kokouksia, joissa insinöörimme keskustelevat teknologiatrendeistä ja uusista huomionarvoisista löydöistään. Alta löydät linkin demopäivän dioihin, joissa vanhempi Ruby-insinöörimme käsitteli subjektiivisesta näkökulmastaan pari tärkeää Ruby 3.0.0:n muutosta:

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

Lisäksi Ruby-mentorimme on osallistunut uuteen versioon vetopyynnöllään, joka yhdistettiin onnistuneesti. Lisää yksityisyydenhallintamenetelmistä löydät kehitysjohtajamme lyhyestä artikkelista.

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

Kiitos paljon lukemisesta, ja jos olet tullut näin pitkälle, arvostan aikaasi, ja jokainen palaute on enemmän kuin tervetullutta LinkedInissä tai sähköpostiini.

Palataan seuraavaan jaksoon helmikuun lopussa podcastin arvostelulla, jossa haastatellaan Shopifyn CTO:tä, miestä, joka on upean Ruby-monoliitti-sovelluksen parissa työskentelevän insinööritiimin takana!

Nähdään taas.

Kierros 2 GIF osoitteesta Round2 GIFit

Ruby-kehittäjä Tarjous

Lue lisää:

TheCodestReview #4 - viikoittainen ohjelmistotekniikan mehu

TheCodestReview #3 - viikoittainen ohjelmistotekniikan mehu

TheCodestReview #2 - viikoittainen ohjelmistotekniikan mehu

Aiheeseen liittyvät artikkelit

Ohjelmistokehitys

Tulevaisuuden web-sovellusten rakentaminen: The Codest:n asiantuntijatiimin näkemyksiä

Tutustu siihen, miten The Codest loistaa skaalautuvien, interaktiivisten verkkosovellusten luomisessa huipputeknologian avulla ja tarjoaa saumattomia käyttäjäkokemuksia kaikilla alustoilla. Lue, miten asiantuntemuksemme edistää digitaalista muutosta ja liiketoimintaa...

THECODEST
Ohjelmistokehitys

Top 10 Latviassa toimivaa ohjelmistokehitysyritystä

Tutustu Latvian parhaisiin ohjelmistokehitysyrityksiin ja niiden innovatiivisiin ratkaisuihin uusimmassa artikkelissamme. Tutustu siihen, miten nämä teknologiajohtajat voivat auttaa nostamaan liiketoimintaasi.

thecodest
Yritys- ja skaalausratkaisut

Java-ohjelmistokehityksen perusteet: A Guide to Outsourcing Successfully

Tutustu tähän keskeiseen oppaaseen Java-ohjelmistokehityksen onnistuneesta ulkoistamisesta tehokkuuden parantamiseksi, asiantuntemuksen saamiseksi ja projektin onnistumiseksi The Codestin avulla.

thecodest
Ohjelmistokehitys

Perimmäinen opas ulkoistamiseen Puolassa

Ulkoistamisen lisääntyminen Puolassa johtuu taloudellisesta, koulutuksellisesta ja teknologisesta kehityksestä, joka edistää tietotekniikan kasvua ja yritysystävällistä ilmapiiriä.

TheCodest
Yritys- ja skaalausratkaisut

Täydellinen opas IT-tarkastustyökaluihin ja -tekniikoihin

Tietotekniikan tarkastuksilla varmistetaan turvalliset, tehokkaat ja vaatimustenmukaiset järjestelmät. Lue lisää niiden merkityksestä lukemalla koko artikkeli.

Codest
Jakub Jakubowicz teknologiajohtaja ja toinen perustaja

Tilaa tietopankkimme ja pysy ajan tasalla IT-alan asiantuntemuksesta.

    Tietoa meistä

    The Codest - Kansainvälinen ohjelmistokehitysyritys, jolla on teknologiakeskuksia Puolassa.

    Yhdistynyt kuningaskunta - pääkonttori

    • Toimisto 303B, 182-184 High Street North E6 2JA
      Lontoo, Englanti

    Puola - Paikalliset teknologiakeskukset

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Krakova
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsova, Puola

      Codest

    • Etusivu
    • Tietoa meistä
    • Palvelut
    • Tapaustutkimukset
    • Tiedä miten
    • Työurat
    • Sanakirja

      Palvelut

    • Se neuvoa-antava
    • Ohjelmistokehitys
    • Backend-kehitys
    • Frontend-kehitys
    • Staff Augmentation
    • Backend-kehittäjät
    • Pilvi-insinöörit
    • Tietoinsinöörit
    • Muut
    • QA insinöörit

      Resurssit

    • Faktoja ja myyttejä yhteistyöstä ulkoisen ohjelmistokehityskumppanin kanssa
    • Yhdysvalloista Eurooppaan: Miksi amerikkalaiset startup-yritykset päättävät muuttaa Eurooppaan?
    • Tech Offshore -kehityskeskusten vertailu: Tech Offshore Eurooppa (Puola), ASEAN (Filippiinit), Euraasia (Turkki).
    • Mitkä ovat teknologiajohtajien ja tietohallintojohtajien tärkeimmät haasteet?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Verkkosivuston käyttöehdot

    Tekijänoikeus © 2025 by The Codest. Kaikki oikeudet pidätetään.

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