![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
In engineeringenerçilik karýeramyzdaky her gün, her pursat dürli çylşyrymlylyk we maglumatlaryň ýoklugy sebäpli karar bermek ýa-da yza süýşürmek zerur bolan köp dürli kynçylyklara duş gelýäris. Haçan-da biz täze hyzmatlary guranymyzda, infrastruktura guranymyzda ýa-da ösüş proseslerini emele getirenimizde, dürli kynçylyklaryň ägirt dünýäsine degýäris.
Thehli problemalary sanamak kyn, hatda mümkin däl. Bu meseleleriň käbiri diňe belli bir ýerde işleseňiz duşarsyňyz. Başga bir tarapdan, nädip çözmelidigimize düşünmeli köp zat bar, sebäbi olar IT ulgamlaryny gurmak üçin örän möhümdir. Probhtimal, ähli taslamalarda olara duşarsyňyz.
Bu makalada, programma üpjünçiligini döredenimde başdan geçiren käbir meselelerim bilen başdan geçirenlerimi paýlaşaryn.
Wikipediýa göz aýlasak, aşakdaky kesgitlemäni taparys
Aspektlere gönükdirilen programma üpjünçiligini işläp düzmekde, kesişmek aladalary programmanyň haýsydyr birine birikdirilmezden birnäçe modula täsir edýän taraplardyr. Bu aladalar köplenç dizaýnda we durmuşa geçirilişde ulgamyň galan böleklerinden arassa bölünip bilinmez we dargamaga (kod köpeltmek), dartylmaga (ulgamlaryň arasynda möhüm baglylyk) ýa-da ikisine-de sebäp bolup biler.
Munuň nämedigini gaty suratlandyrýar, ýöne biraz uzaltmak we ýönekeýleşdirmek isleýärin:
Kesgitli alada, beýleki köp böleklere täsir edýän (ýa-da “kesilýär”) ulgamyň / guramanyň düşünjesi ýa-da düzüm bölegi.
Şeýle aladalaryň iň gowy mysallary ulgam arhitekturasy, hasaba alyş, howpsuzlyk, amallary dolandyrmak, telemetriýa, maglumat bazasynyň dizaýny we başgalar bar. Bu makalada olaryň köpüsi barada jikme-jik durup geçmekçi.
Kod derejesinde, kesiş aladalary köplenç Aspect-Orient Programming (AOP) ýaly usullary ulanyp amala aşyrylýar, bu aladalar programmanyň dowamynda ulanylyp bilinjek aýratyn böleklere modulirlenýär. Bu, iş logikasyny bu aladalardan üzňe saklaýar, kody has okalýar we dowam etdirýär.
Aspektleri, göwrümi, ululygy, işleýşi, ähmiýeti, nyşany we beýlekiler ýaly dürli häsiýetlere bölmek arkaly aspektleri nädip klassifikasiýa etmegiň köp usuly bar, ýöne bu makalada men ýönekeý bir klassifikasiýany ulanjak. Munuň bilen, bu anyk tarapyň tutuş guramanyň, belli bir ulgamyň ýa-da şol ulgamyň belli bir elementiniň nirä gönükdirilendigini göz öňünde tutýaryn.
Şeýlelik bilen, taraplary Makro we Micro- a bölmekçi.
Makro nukdaýnazaryndan, esasan, saýlanan ulgam arhitekturasy we dizaýny (monolit, mikroservis, hyzmatlara gönükdirilen arhitektura), tehnologiýa toplumy, gurama gurluşy we ş.m. ýaly tutuş ulgam üçin göz öňünde tutýan pikirlerimizi göz öňünde tutýaryn. Makro taraplary esasan strategiki we ýokary derejeli baglanyşyklydyr. kararlar.
Şol bir wagtyň özünde, Micro tarapy kod derejesine we ösüşine has ýakyn. Mysal üçin, maglumatlar binýady, bukjalaryň we synplaryň taslama gurluşy, hatda belli bir obýekt dizaýn nagyşlary bilen täsirleşmek üçin haýsy çarçuwalar ulanylýar.
Bu klassifikasiýa ideal bolmasa-da, bolup biläýjek meselelere we biziň ulanýan çözgütlerimiziň ähmiýetine we täsirine düşünmäge kömek edýär.
Bu makalada esasy ünsüm makro taraplara gönükdiriler.
Programma üpjünçiligi arhitekturasy barada ýaňy öwrenip başlanymda, Konwaýyň kanuny we guramaçylyk gurluşyna täsiri barada köp gyzykly makalalary okadym. Esasanam şu . Şeýlelikde, bu kanun şeýle diýýär
Ulgamy dizaýn edýän islendik gurama (giňişleýin kesgitlenýär), gurluşy guramanyň aragatnaşyk gurluşynyň göçürmesi bolan dizaýny öndürer.
Bu düşünjäniň hakykatdanam ähliumumydygyna we Altyn düzgüne degişlidigine hemişe ynanýardym.
Soňra Erik Ewansyň domen bilen dolandyrylýan dizaýny (DDD) modellemek ulgamlaryny öwrenip başladym. Erik Ewans “Çäklendirilen konteksti kesgitlemegiň” ähmiýetini nygtaýar. Bu düşünje, çylşyrymly domen modelini kiçi, has dolandyrylýan bölümlere bölmek, hersiniň çäkli bilim toplumy bar. Bu çemeleşme, ähli domen barada giňişleýin bilimlere bolan zerurlygy azaldýar we kontekstiň geçişini azaldýar, şeýlelik bilen gepleşikleri has netijeli edýär. Kontekstiň kommutasiýasy şu wagta çenli iň erbet we iň köp serişde sarp edýän zat. Hatda kompýuterler hem munuň bilen göreşýärler. Kontekstiň üýtgemeginiň doly ýoklugyna ýetmek ähtimallygy ýok bolsa-da, meniň pikirimçe, şonuň üçinem ymtylmalydyrys.
Konwaýyň kanunyna gaýdyp gelip, onuň bilen birnäçe meseläni tapdym.
Konwaýyň kanuny bilen duş gelen ilkinji mesele , ulgam dizaýnynyň guramaçylyk gurluşyny aýna edýändigini görkezýän çylşyrymly we hemmetaraplaýyn çäkli kontekstleri döretmek üçin potensialdyr. Bu çylşyrymlylyk, guramaçylyk gurluşy domen araçäkleri bilen gabat gelmedik ýagdaýynda ýüze çykýar, bu bolsa birek-birege bagly we maglumat ýüklenen Çäklendirilen kontekstlere alyp barýar. Ösüş topary üçin ýygy-ýygydan kontekste geçmegine getirýär.
Anotherene bir mesele , guramaçylyk terminologiýasynyň kod derejesine syzmagy. Guramaçylyk gurluşlary üýtgese, gymmatly çeşmeleri sarp edip, kod bazasynyň üýtgedilmegini talap edýär.
Şeýlelik bilen, “Inverse Conway Maneuver” -i yzarlamak, islenýän programma arhitekturasyny höweslendirýän ulgam we gurama gurmaga kömek edýär. Şeýle-de bolsa, bu çemeleşmäniň eýýäm döredilen arhitekturada we gurluşlarda gaty gowy işlemejekdigini bellemek bellärliklidir, sebäbi bu etapdaky üýtgeşmeler uzaga çekýär, ýöne başlangyçlarda üýtgeşiklik girizýär, sebäbi islendik üýtgeşmäni girizmäge çalt.
Bu nagyş ýa-da “anti-nagyş” hiç hili arhitekturasyz ulgam gurmaga itergi berýär. Gutulgysyz ösýän çylşyrymlylygy nädip dolandyrmalydygy barada düzgünler, serhetler we strategiýa ýok. Çylşyrymlylyk, programma üpjünçilik ulgamlaryny gurmak syýahatynda iň gorkunç duşmandyr.
Şeýle ulgamyň gurulmazlygy üçin aýratyn düzgünleri we çäklendirmeleri berjaý etmeli.
Programma arhitekturasy üçin köp sanly kesgitlemeler bar. Olaryň köpüsini halaýaryn, sebäbi olar dürli taraplaryny öz içine alýar. Şeýle-de bolsa, binagärlik hakda pikirlenip bilmek üçin, käbiri aňymyzda emele getirmeli. Bu kesgitlemäniň ösüp biljekdigini aýtmak bellärliklidir. Şeýlelikde, iň bolmanda häzirlikçe özüm üçin aşakdaky düşündiriş bar.
Programma arhitekturasy, gurlan ulgama täsir edýän her gün kabul edýän kararlaryňyz we kararlaryňyz hakda.
“Sumka” ýörelgeleriňizde we ýüze çykýan meseleleri çözmek üçin nagyşlaryňyzda karar bermek üçin, talaplara düşünmegiň bir işiň zerurlygyny gurmagyň açarydygyny hem aýtmak möhümdir. Şeýle-de bolsa, käwagt talaplar aç-açan ýa-da kesgitlenmeýär, bu ýagdaýda has aýdyňlaşdyrmak ýa-da tejribäňize bil baglamak we duýgurlygyňyza ynanmak has gowudyr. Wayöne, her niçigem bolsa, bil baglamaly ýörelgeleriňiz we nagyşlaryňyz ýok bolsa, dogry karar berip bilmersiňiz. Programma arhitektura stiliniň kesgitlemesine şu ýerden gelýärin.
Programma arhitektura stili programma üpjünçiligini nädip gurmalydygyny kesgitleýän ýörelgeleriň we nagyşlaryň toplumydyr.
Meýilleşdirilen arhitekturanyň dürli taraplaryna gönükdirilen köp dürli binagärlik stilleri bar we olaryň köpüsini birbada ulanmak adaty ýagdaý.
Mysal üçin:
Monolit arhitekturasy
Domen bilen dolandyrylýan dizaýn
Komponent esasly
Mikroservisler
Turbalar we süzgüçler
Waka bilen baglanyşykly
Mikrokernel
Hyzmatlara gönükdirilen
we ş.m.
Elbetde, olaryň artykmaçlyklary we kemçilikleri bar, ýöne öwrenen iň möhüm zadym, arhitektura hakyky meselelere baglylykda kem-kemden ösýär. Monolit arhitekturasyndan başlap, amaly çylşyrymlylygy azaltmak üçin ajaýyp saýlawdyr, bu arhitektura önümi gurmagyň Önüm-bazary Fit (PMI) tapgyryna ýeteniňizden soň hem zerurlyklaryňyza laýyk geler. Giň gerimde, garaşsyz ýaýbaňlandyrmagy, birmeňzeş tehnologiýa gurşawyny we az birikdirilen arhitekturany gazanmak üçin hadysalara esaslanýan çemeleşmä we mikroservislere geçmegi göz öňünde tutup bilersiňiz (we şol bir wagtyň özünde hadysalara esaslanýan we pub-sub çemeleşmeleriniň tebigaty sebäpli az aýdyň däl) kabul edildi). Plönekeýlik we netijelilik ýakyn we biri-birine uly täsir edýär. Adatça, çylşyrymly arhitektura täze aýratynlyklaryň ösüş tizligine täsir edýär, bar bolanlary goldaýar we saklaýar we ulgamyň tebigy ewolýusiýasyna garşy çykýar.
Şeýle-de bolsa, çylşyrymly ulgamlar köplenç gutulgysyz çylşyrymly we giňişleýin arhitekturany talap edýär.
Dogrusy, bu gaty giň tema we tebigy ewolýusiýa ulgamlaryny nädip gurmaly we gurmalydygy barada köp pikirler bar. Tejribämden ugur alyp, aşakdaky çemeleşmäni işledim:
Şeýle hem DAU (Gündelik işjeň ulanyjylar), MAU (aýlyk işjeň ulanyjylar), RPC (sekuntda haýyş) we TPC (sekuntda geleşik) ýaly sanlara we ölçeglere düşünmek möhümdir, sebäbi arhitektura üçin saýlamaga kömek edip biler 100 işjeň ulanyjy we 100 million işjeň ulanyjy başga.
Iň soňky bellik hökmünde arhitekturanyň önümiň üstünliklerine ep-esli täsir edýändigini aýdýaryn. Önümler üçin ýaramaz dizaýn arhitekturasy masştablaşdyrylanda talap edilýär, bu şowsuzlyga sebäp bolup biler, sebäbi ulgamy ulaldanyňyzda müşderiler garaşmazlar, bäsdeş saýlarlar, şonuň üçin potensial masştabdan öňe geçmelidiris. Käwagt arkaýyn çemeleşip bolmaýandygyny boýun alsam-da, pikiriň ulaldylyp bilinýän, ýöne eýýäm ulalmadyk ulgamy bolmagydyr. Başga bir tarapdan, müşderisi bolmadyk ýa-da köpüsini almagy meýilleşdirýän gaty çylşyrymly we eýýäm ulaldylan ulgamyň bolmagy, işiňiz üçin hiç zat üçin pul sarp eder.
Tehnologiýa toplumyny saýlamak hem makro derejeli karar, sebäbi ol işe alynmagyna, ulgamyň tebigy ewolýusiýa perspektiwalaryna, göwrümliligine we ulgamyň işleýşine täsir edýär.
Tehnologiýa toplumyny saýlamak üçin esasy pikirleriň sanawy:
Birnäçe tehnologiýa toplumynyň bolmagy işewürligiň ösüşine nähili täsir edip biler?
Bir nukdaýnazardan seredeniňde, ýene bir stakany girizmek, işe almagyňy hasam artdyryp biler, beýleki tarapdan bolsa, iki stakany hem goldamalydygyň üçin goşmaça tehniki çykdajylar getirýär. Şeýlelik bilen, öňem aýdyşym ýaly, meniň pikirimçe, has köp tehnologiýa toplumlaryny goşmak üçin diňe goşmaça zerurlyk argument bolmaly.
Aöne belli bir mesele üçin iň oňat guraly saýlamak prinsipi näme?
Käwagt ýokarda agzalan şol pikirlere esaslanyp belli bir meseläni çözmek üçin täze gurallary getirmekden başga alaçyňyz ýok, beýle ýagdaýlarda iň oňat çözgüt saýlamagyň manysy bar.
Belli bir tehnologiýa ýokary birikdirilmän ulgamlary döretmek kyn bolup biler. Şeýle-de bolsa, ulgam tehnologiýa bilen berk birikdirilmedik we ertir belli bir çarçuwanyň ýa-da guralyň gowşak ýa-da könelişen ýagdaýynda ölmezligi üçin synanyşmak peýdalydyr.
Anotherene bir möhüm pikir, açyk çeşme we eýeçilik programma üpjünçiligine baglylyk bilen baglanyşykly. Hususy programma üpjünçiligi size az çeýeligi we özleşdirmek mümkinçiligini berýär. Şeýle-de bolsa, iň howply faktor satyjynyň önümlerine, bahalaryna, şertlerine we ýol kartasyna garaşly bolup, satyjynyň gulplanmagydyr. Satyjy ugruny üýtgetse, bahalary ýokarlandyrsa ýa-da önümi bes etse, bu töwekgelçilikli bolup biler. Açyk çeşmeli programma üpjünçiligi bu töwekgelçiligi azaldýar, sebäbi ýeke-täk gurama gözegçilik etmeýär. Levelshli derejelerdäki şowsuzlygyň bir nokadyny ýok etmek ösüş üçin ygtybarly ulgamlary gurmagyň açarydyr.
Failureekeje şowsuzlyk nokady (SPOF) ulgamyň islendik bölegine degişlidir, eger şowsuz bolsa, tutuş ulgamyň işlemegine sebäp bolar. Levelshli derejelerdäki SPOF-lary ýok etmek, ýokary elýeterliligi talap edýän islendik ulgam üçin möhümdir. Bilim, işgärler, ulgam bölekleri, bulut üpjün edijileri we internet kabelleri ýaly hemme zat şowsuz bolup biler.
Şowsuzlygyň ýeke nokatlaryny ýok etmek üçin ulanyp boljak birnäçe esasy usul bar:
Bu makalada makronyň birnäçe möhüm taraplaryny we olaryň çylşyrymlylygyny nädip çözüp boljakdygyny ara alyp maslahatlaşdyk.
Okanyňyz üçin sag boluň! Indiki gezek görüşeris!