(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': data().getTime(),įvykis:'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'); TheCodestReview #5 - dvisavaitinės programinės įrangos inžinerijos sultys - The Codest
The Codest
  • Apie mus
  • Paslaugos
    • Programinės įrangos kūrimas
      • Priekinės dalies kūrimas
      • Galinės dalies kūrimas
    • Staff Augmentation
      • Priekinės dalies kūrėjai
      • Atgalinės versijos kūrėjai
      • Duomenų inžinieriai
      • Debesų inžinieriai
      • QA inžinieriai
      • Kita
    • Patariamoji tarnyba
      • Auditas ir konsultacijos
  • Pramonės šakos
    • Fintech ir bankininkystė
    • E-commerce
    • Adtech
    • Sveikatos technologijos
    • Gamyba
    • Logistika
    • Automobiliai
    • IOT
  • Vertė už
    • CEO
    • CTO
    • Pristatymo vadybininkas
  • Mūsų komanda
  • Case Studies
  • Sužinokite, kaip
    • Tinklaraštis
    • Susitikimai
    • Interneto seminarai
    • Ištekliai
Karjera Susisiekite su mumis
  • Apie mus
  • Paslaugos
    • Programinės įrangos kūrimas
      • Priekinės dalies kūrimas
      • Galinės dalies kūrimas
    • Staff Augmentation
      • Priekinės dalies kūrėjai
      • Atgalinės versijos kūrėjai
      • Duomenų inžinieriai
      • Debesų inžinieriai
      • QA inžinieriai
      • Kita
    • Patariamoji tarnyba
      • Auditas ir konsultacijos
  • Vertė už
    • CEO
    • CTO
    • Pristatymo vadybininkas
  • Mūsų komanda
  • Case Studies
  • Sužinokite, kaip
    • Tinklaraštis
    • Susitikimai
    • Interneto seminarai
    • Ištekliai
Karjera Susisiekite su mumis
Atgal rodyklė GRĮŽTI ATGAL
2019-04-24
Programinės įrangos kūrimas

TheCodestReview #5 - dvisavaitinės programinės įrangos inžinerijos sultys

The Codest

Kamil Ferens

Augimo vadovas

Šį epizodą planuota paskelbti gruodžio mėnesį prieš Kalėdų pertrauką, todėl atrodo, kad aš esu kliūtis, kuri yra kalta dėl vėlavimo. Vis atidėdavau publikavimą kas savaitę, nes trukdė kelios prioritetinės užduotys, bet šiandien atėjo TA diena.

Esu užsiėmęs, darydamas dalykus Kompiuteris Pagrindinis GIF iš GIF'ai, kuriuose vaizduojama, kaip elgiamasi GIF'uose

Paskutiniame epizode aš užsiminiau, kad pakomentuosiu straipsnį apie humoro svarbą darbe, bet tuo tarpu supratau, kad jis nusipelno daug daugiau dėmesio, todėl netrukus apie tai parašysiu visą tinklaraščio įrašą.    

Pažadėkite, kad manimi tikėsite GIF iš Ipromiseyou GIF'ai

Dalykai, kuriais buvau užsiėmęs per pastarąsias porą savaičių: 

a) Prieš Kalėdas aš pradėjau su premjera epizodas “Neperšaunamas CTO” internetinių seminarų serija (sekite vasario mėn. 2-ąjį epizodą, kuriame bus SaaS CTOs, išsami informacija netrukus bus pateikta mano "LinkedIn" paskyroje).

b) mūsų 2021 m. augimo plano derinimas, siekiant viršyti mūsų Ruby ir JS pagrindinį verslą ir auginti Magento ir Produktas Dizaino kompetencija vidinis.

Pakanka savireklamos, leiskite pakviesti jus į 5-ąjį mūsų #TheCodestReview serijos epizodą. 

Temos mano komanda pasiruošė šiam laikui: 

  1. keičiamo mastelio ir prižiūrima priekinės dalies architektūra.
  2. Įprastiniai įsipareigojimai.
  3. "Ruby 3.0.0" išleidimo atnaujinimai.

Šią savaitę pristatytos pastabos dėl frontend programos ir įprastinių pakeitimų. React inžinieriai o Ruby 3.0.0 mūsų Ruby svajonė team.

Šiandien daug kūrėjų, taupydami laiką, naudoja jau sukurtas vartotojo sąsajos bibliotekas ir daugkartinio naudojimo komponentus. Tai gera praktika ir padeda mus sutaupyti daug laiko, bet kai mūsų projektas tampa didesnis - suprasite, kad nepakanka tvarkyti su kodas.

Yra du geri pavyzdžiai iš galinės dalies kūrimo - domeno valdomas kūrimas (angl. Domain Driven Development, DDD) ir interesų atskyrimas (angl. Separation of Concerns, SoC). Juos taip pat galime naudoti priekinės dalies architektūroje.

DDD sistemoje stengiamės sugrupuoti panašias funkcijas ir kuo labiau atskirti jas nuo kitų grupių (modulių).

Pavyzdžiui, naudojant SoC atskiriame logiką, vaizdus ir duomenų modelius (pvz., naudojant MVC arba MVVM projektavimo modelį).

Yra daug geros praktikos ir modelių, kuriuos galima naudoti, tačiau man priimtinesnis šis būdas.

Kai naudosime šį modelį, gausime tokį vaizdą:

Pradžioje naudotojas nukreipiamas į reikiamą modulį pagal programėlės maršruto parinkimą. Kiekvienas modulis yra visiškai uždaras. Tačiau kadangi naudotojas tikisi naudotis viena programa, o ne keliomis mažomis, tam tikras susiejimas egzistuoja. Šis susiejimas yra susijęs su konkrečiomis funkcijomis arba verslo logika.

Turime šią struktūrą:

programų aplankas - taikomųjų programų sluoksnis

assets - aplankas paveikslėliams, šriftams, piktogramoms ir t. t.

komponentai - čia turėtų būti pakartotinai naudojami komponentai, neturintys sudėtingos logikos.

config - čia saugosime visuotinę būseną

lib - sudėtingų funkcijų ir loginių skaičiavimų aplankas

moduliai - čia yra mūsų moduliai

pubsub - aprašymo schemų saugojimo vieta duomenys struktūra.

stiliai - mūsų css/scss kodui

Tokia struktūra padės mums tvarkyti augančią programą ir turėsime mažiau klaidų. Be to, ji padės patogiau kurti darbo dalis su atskirais moduliais, juos testuoti ir lengviau refaktorizuoti bei derinti (dėl atskirų modulių).

Jei giliau pažvelgsime į modulių architektūrą ir jų sąsajas su API - gausime kažką panašaus:

Jei aplankas ‘app’, sukursime kitą aplanką ‘api’, kuriame bus API skambučių kodas, o duomenis išsaugosime aplanke ‘config/store’. Čia laikysime statiškus ir nekintamus duomenis, kuriuos naudosime visoje programoje.

Taip pat aplanke ‘pubsub/schema’ aprašysime konkrečius duomenų tipus, skirtus JavaScript objektai.

Visuose moduliuose yra duomenų, kuriuos reikia naudoti (vartotojai, maršrutai, lentelės, veiksmai ir t. t.). Kiekvienas modulis yra sujungtas su taikomuoju sluoksniu ir priima visus reikiamus duomenis.

Priekinė dalis yra pirmasis mūsų naudotojų prieigos taškas. Kadangi mūsų "Front-end" projektuose daugėja funkcijų, atsiras ir daugiau klaidų. Tačiau mūsų naudotojai tikisi, kad klaidų nebus, o naujų funkcijų atsiras greitai. Tai neįmanoma. Tačiau naudodami gerą architektūrą galime tik stengtis tai kiek įmanoma pasiekti.

Įprastiniai įsipareigojimai pagal Sathyabodh Mudhol at DZone

The Codest programinės įrangos kūrimas

Priežastis, dėl kurios reikia geriau atlikti darbą

Įsivaizduokite, kad esate pradiniame etape įmonėje, kurioje ką tik įsidarbinote. Visi žmonės su jumis maloniai bendrauja ir viskas atrodo gerai iki to momento, kai jums pristatoma kodų bazė, sukurta dar prieš tai, kai JavaScript buvo kalba, o "Netscape" įkeldavo puslapį, kuris atrodė kaip amžius.

Atrodo, kad kodo paveldėjimas yra didžiulė problema, kai su projektu supažindinami nauji kūrėjai. Vienas dalykas yra skaityti kodą, tačiau suprasti, kaip programa buvo sukurta, yra ne visai tas pats. Dažnai pasirodo, kad įsipareigojimai yra naudingi ir suteikia kontekstą, kodėl šie console.logs nebuvo sugauti linter arba kodėl tas nemalonus // TODO yra ten kūrėjo, kuris iš pradžių sukūrė anotaciją, vaikams.

Pradėkime nuo to, kodėl įprastiniai įsipareigojimai yra geresni už nestandartizuotas įsipareigojimo taisykles.

Jei samdome naujus kūrėjus į projektą, kuriame dauguma pakeitimų susideda iš pranešimų apie tai, kad turėtų veikti arba Sleepy fix for footer ASAP, kas pasirodo jūsų galvoje?

Sakyčiau, kad raudonos vėliavos, nes:

  • Nežinome, kas tiksliai turėtų veikti
  • Kodėl kažkas kažką stumtelėjo būdamas mieguistas ir galimai suklydęs?
  • Ar pataisymas buvo skubotas, jei matome ASAP anotaciją?

Kadangi jūsų team gali būti taikomos pasirinktinės taisyklės, kai vienas įsipareigoja pakeitimus, yra mažiau vietos klaidoms, nes jūsų įsipareigojimas turi būti patikimas. Tai nebėra būdas tiesiog išsiregistruoti. Tai parašas, kuriuo kitiems žmonėms pasakoma, kad žinojote įsipareigojimo turinį. Nereikia nė minėti, kad jei atliktas darbas nėra tinkamai pasirašytas, greičiausiai bus padaryta klaida ir jums bus pateiktas pranešimas

Gali būti, kad jūsų team norės nustatyti taisyklę, draudžiančią naudoti tam tikrus raktinius žodžius, todėl ASAP arba bet kokie keiksmažodžiai gali būti įtraukti į juodąjį sąrašą.

Įrankiai

Projekto pradžioje labai naudinga visus supažindinti su tuo, kaip jūsų kūrėjų komanda norėtų, kad nauji kūrėjai įsipareigotų atlikti pakeitimus. Tada sukurkite įrankį, kuris padėtų jiems laikytis to, dėl ko visi susitarėte.

Vienas iš įrankių, su kuriuo teko dirbti, buvo commitlint dėl to įprastiniai įsipareigojimai tapo mano praktika, kai pradedu dirbti su naujais projektais, kuriuose nėra taisyklių, o team yra atviras idėjai jas įvesti.

Susidurdami su nustatymais ir skleisdami juos team galite tiesiog sukurti npm paketą ir tiesiog mpn i -D kiekviename projekte. Tai neabejotinai padės visiems projekto dalyviams visada būti tame pačiame lape ir prireikus vaikščioti iš vieno projekto į kitą, suprantant, dėl ko buvo padaryti paskutiniai pakeitimai (ir kodėl jie buvo padaryti).

Draugai su keliais privalumais

Taigi dabar, viską sukūrus ir supratus, kodėl gali būti gera idėja pradėti naudoti CC, geriausia būtų programuoti pagal ką tik pritaikytas taisykles! Mes naudojame standartizuotą būdą, kaip mes perduodame duomenis, daugiau dėmesio skiriame tam, dėl ko iš tikrųjų buvo perduotas pranešimas, tad kodėl gi nenustačius kabliukų, kurie leistų jums greitai išbandyti staging, kai yra vėliava? Nenorime perkrauti paslaugų ir prireikus sumažinti išlaidas, be to, yra keletas priežasčių testuoti į gamybą panašiame serveryje, o ne localhost.

Tarkime, kad dirbate su PWA, o norint išbandyti visas jos galimybes, reikia SSL ir savo bandymų platformoje turite SSL. Dabar jums reikia tik gero įsipareigojimo. Kažkas panašaus į feat(PWA): manifest icons workbox setup upload įjungtų visą testavimo ir krumpliaračių judinimo mechanizmą. Mums to nereikia, kai tiesiog įkeliame tam tikrus statinius duomenis, pavyzdžiui, manifest.json, todėl prie savo įsipareigojimo pridedame vėliavėlę [TEST_SKIP] kaip postfiksą. Tai leidžia mūsų CI tiesiog įkelti naujus išteklius į testavimo aplinką ir praleisti testavimą. Apie tai galite paskaityti daugiau čia

Po kurio laiko galėsite pastebėti kitą naudą, pvz., lengvesnį CHANGELOG generavimą ir geresnį versijų kūrimą naudojant semantinis versijų kūrimas. Jei to neužtenka, kad įtikintumėte pakeisti savo įsipareigojimų pranešimų rašymo būdus, galbūt jūsų nuomonę pakeis tai, jei įmerksite pirštus į šaltą vandenį ir kurį laiką pabandysite juos naudoti savo asmeninėje saugykloje.

Laimingas tradicinis įsipareigojimas!

"Ruby 3.0.0" išleidimo atnaujinimai pagal Ruby bendruomenė

Bendruomenėje ilgai laukta "Ruby 3.0.0" versija išvydo dienos šviesą per Kalėdas, kad visi "Ruby" kūrėjai galėtų ją rasti po Kalėdų eglute, kai tik atsibus ryte. Tinklalapyje The Codest puoselėjame dalijimosi žiniomis kultūrą organizuodami kassavaitinius programuotojų susitikimus, kuriuose mūsų inžinieriai aptaria technologijų tendencijas ir naujus dėmesio vertus atradimus. Žemiau rasite nuorodą į demonstracinės dienos skaidres, kuriose mūsų vyresnysis "Ruby" inžinierius aptarė keletą svarbių "Ruby 3.0.0" pakeitimų savo subjektyviu požiūriu:

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

Be to, mūsų "Ruby" mentorius prisidėjo prie naujosios versijos, pateikdamas traukimo užklausą, kuri buvo sėkmingai sujungta. Daugiau informacijos apie privatumo kontrolės metodus rasite toliau pateiktame trumpame mūsų plėtros vadovo straipsnyje.

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

Labai ačiū, kad skaitote, ir jei nuėjote taip toli, esu dėkingas už jūsų laiką, o kiekvienas atsiliepimas yra daugiau nei laukiamas "LinkedIn" arba mano el. paštu.

Grįžtame pas jus su kitu epizodu vasario pabaigoje su podkasto apžvalga, kurioje bus apklausiamas Shopify's CTO, žmogus už inžinerijos team, dirbantis su nuostabia "Ruby" monolito programa!

Iki pasimatymo.

2 raundas GIF iš 2 raundo GIF failai

"Ruby" programuotojo pasiūlymas

Skaityti daugiau:

TheCodestReview #4 - savaitinės programinės įrangos inžinerijos sultys

TheCodestReview #3 - savaitinės programinės įrangos inžinerijos sultys

TheCodestReview #2 - savaitinės programinės įrangos inžinerijos sultys

Susiję straipsniai

Išmaniojo telefono sveikatos priežiūros programėlės su širdies piktograma ir kylančia sveikatos diagrama, pažymėtos The Codest logotipu, iliustracija, vaizduojanti skaitmeninės sveikatos ir sveikatos technologijų sprendimus.
Programinės įrangos kūrimas

Sveikatos priežiūros programinė įranga: Sveikatos priežiūros paslaugos: tipai, naudojimo atvejai

Įrankiai, kuriais šiandien naudojasi sveikatos priežiūros organizacijos, nė iš tolo neprimena prieš kelis dešimtmečius naudotų popierinių kortelių. sveikatos priežiūros programinė įranga dabar padeda sveikatos sistemoms, pacientų priežiūrai ir šiuolaikiniam sveikatos priežiūros paslaugų teikimui klinikinėse ir...

GERIAUSIAS
Abstrakti mažėjančios stulpelinės diagramos su kylančia rodykle ir auksine moneta, simbolizuojančia ekonomiškumą arba taupymą, iliustracija. Viršutiniame kairiajame viršutiniame kampe pavaizduotas The Codest logotipas ir šūkis "In Code We Trust" šviesiai pilkame fone.
Programinės įrangos kūrimas

Kaip padidinti savo Dev komandą neprarandant produkto kokybės

Didinate savo kūrėjų komandą? Sužinokite, kaip augti neprarandant produkto kokybės. Šiame vadove aptariami ženklai, kad atėjo laikas didinti komandą, komandos struktūra, įdarbinimas, vadovavimas ir įrankiai - ir kaip The Codest gali...

GERIAUSIAS
Programinės įrangos kūrimas

Sukurkite ateičiai atsparias žiniatinklio programas: The Codest ekspertų komandos įžvalgos

Sužinokite, kaip The Codest puikiai kuria keičiamo dydžio interaktyvias žiniatinklio programas, naudodama pažangiausias technologijas ir užtikrindama vientisą naudotojų patirtį visose platformose. Sužinokite, kaip mūsų patirtis skatina skaitmeninę transformaciją ir verslo...

GERIAUSIAS
Programinės įrangos kūrimas

10 geriausių Latvijoje įsikūrusių programinės įrangos kūrimo įmonių

Naujausiame mūsų straipsnyje sužinokite apie geriausias Latvijos programinės įrangos kūrimo įmones ir jų inovatyvius sprendimus. Sužinokite, kaip šie technologijų lyderiai gali padėti pakelti jūsų verslo lygį.

thecodest
Įmonių ir didinimo sprendimai

"Java" programinės įrangos kūrimo pagrindai: A Guide to outsourcing Outsourcing Successfully

Išnagrinėkite šį esminį vadovą, kaip sėkmingai outsourcing "Java" programinę įrangą kurti, kad padidintumėte efektyvumą, įgytumėte patirties ir sėkmingai įgyvendintumėte projektus su The Codest.

thecodest

Prenumeruokite mūsų žinių bazę ir būkite nuolat informuoti apie IT sektoriaus patirtį.

    Apie mus

    The Codest - tarptautinė programinės įrangos kūrimo bendrovė, turinti technologijų centrus Lenkijoje.

    Jungtinė Karalystė - būstinė

    • 303B biuras, 182-184 High Street North E6 2JA
      Londonas, Anglija

    Lenkija - vietiniai technologijų centrai

    • Fabryczna biurų parkas, Aleja
      Pokoju 18, 31-564 Krokuva
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšuva, Lenkija

    The Codest

    • Pagrindinis
    • Apie mus
    • Paslaugos
    • Case Studies
    • Sužinokite, kaip
    • Karjera
    • Žodynas

    Paslaugos

    • Patariamoji tarnyba
    • Programinės įrangos kūrimas
    • Galinės dalies kūrimas
    • Priekinės dalies kūrimas
    • Staff Augmentation
    • Atgalinės versijos kūrėjai
    • Debesų inžinieriai
    • Duomenų inžinieriai
    • Kita
    • QA inžinieriai

    Ištekliai

    • Faktai ir mitai apie bendradarbiavimą su išoriniu programinės įrangos kūrimo partneriu
    • Iš JAV į Europą: Kodėl Amerikos startuoliai nusprendžia persikelti į Europą?
    • Technikos plėtros centrų užsienyje palyginimas: Tech Offshore Europa (Lenkija), ASEAN (Filipinai), Eurazija (Turkija)
    • Kokie yra svarbiausi CTO ir CIO iššūkiai?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Autorinės teisės © 2026 The Codest. Visos teisės saugomos.

    lt_LTLithuanian
    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 is_ISIcelandic lt_LTLithuanian