![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Siku na siku, nkarhi wun’wana na wun’wana hi nkarhi wa ntirho wa hina wa vunjhiniyara, hi hlangana na swiphiqo swo tala swo hambana swa ku rharhangana ko hambana na swiyimo laha hi lavaka ku teka xiboho kumbe ku xi tlherisela endzhaku hikwalaho ka ku pfumaleka ka datha. Nkarhi wun’wana na wun’wana loko hi aka vukorhokeri lebyintshwa, hi aka switirhisiwa, kumbe hambi ku ri ku vumba maendlelo ya nhluvukiso, hi khumba misava leyikulu ya mintlhontlho yo hambana.
Swa tika, naswona kumbexana a swi koteki, ku xaxameta swiphiqo hinkwaswo. U ta hlangana na tin’wana ta timhaka leti ntsena loko u tirha eka niche yo karhi. Hi hala tlhelo, ku na swo tala leswi hinkwerhu hi faneleke ku swi twisisa ndlela yo swi tlhantlha, tanihileswi swi nga swa nkoka swinene eku akeni ka tisisiteme ta IT. Hi ku koteka lokukulu, u ta hlangana na vona eka tiphurojeke hinkwato.
Eka xihloko lexi, ndzi ta avelana mintokoto ya mina hi swin’wana swa swiphiqo leswi ndzi hlanganeke na swona loko ndzi ri karhi ndzi endla minongonoko ya software.
Loko hi languta eka Wikipedia, hi ta kuma nhlamuselo leyi landzelaka
Eka nhluvukiso wa sofwere leyi kongomisiweke eka swiphemu, ku vilela loku tsemakanyaka i swiphemu swa nongonoko leswi khumbaka mimojula yo hlayanyana, handle ka ku koteka ka ku pfaleriwa eka yin’wana na yin’wana ya tona. Swivilelo leswi switala kuva swinga bola hiku basa kusuka eka sisiteme hinkwayo eka dizayini naku tirhisiwa, naswona swinga endla leswaku kuva na ku hangalaka (ku phindha-phindha khodi), ku hlangana (ku titshega lokukulu exikarhi ka tisisiteme), kumbe havumbirhi bya swona.
Yi hlamusela swinene leswi yi nga swona, kambe ndzi lava ku yi andlala no yi olovisa nyana:
Ku vilela loku tsemakanyaka i mhaka kumbe xiphemu xa sisiteme/nhlengeletano leyi khumbaka (kumbe ‘ku tsema’) swiphemu swin’wana swo tala.
Swikombiso leswinene swa swivilelo swo tano i vumaki bya sisiteme, ku loga, vuhlayiseki, vufambisi bya ntirhisano, telemetry, dizayini ya database na swin’wana swo tala. Hi ta andlala swo tala swa swona endzhaku eka xihloko lexi.
Eka xiyimo xa khodi, swivilelo swo tsemakanya swi tala ku tirhisiwa hi ku tirhisa tithekiniki to fana na Aspect-Oriented Programming (AOP) , laha swivilelo leswi swi modularized eka swiphemu swo hambana leswi nga tirhisiwaka eka xitirhisiwa hinkwaxo. Leswi swi hlayisa logic ya bindzu yi ri yoxe eka swivilelo leswi, leswi endlaka leswaku khodi yi hlayeka no hlayisiwa.
Ku na tindlela to tala leti kotekaka ta ndlela yo hlawula swiphemu hi ku swi avanyisa hi swihlawulekisi swo hambana ku fana na xikalo, vukulu, ntirho, nkoka, xikongomelo, na swin’wana, kambe eka xitsalwana lexi, ndzi ta tirhisa ku hlawula ka xikalo ko olova. Hi leswi, ndzi vula laha xiphemu lexi xo karhi xi kongomisiweke kona hambi ku ri nhlangano hinkwawo, sisiteme yo karhi, kumbe xiphemu xo karhi xa sisiteme yoleyo.
Kutani, ndzi ta avanyisa swiphemu hi Macro na Micro .
Hi xiphemu xa Macro ndzi vula ngopfungopfu ku tekeriwa enhlokweni loku hi ku landzelaka eka sisiteme hinkwayo ku fana na vumaki bya sisiteme leyi hlawuriweke na dizayini ya yona (monolithic, microservices, service-oriented architecture), xithaki xa thekinoloji, xivumbeko xa nhlangano, na swin’wana na swin’wana Swiyenge swa Macro swi fambelana ngopfu na maqhinga na xiyimo xa le henhla swiboho.
Hi nkarhi wolowo, xiphemu xa Micro xi le kusuhi swinene na xiyimo xa khodi na nhluvukiso. Xikombiso, hi rihi rimba leri tirhisiwaka ku tirhisana na database, xivumbeko xa phurojeke ya tifolda na titlilasi, kumbe hambi ku ri swivumbeko swo karhi swa dizayini ya swilo.
Hambi leswi ku hlawuriwa loku ku nga riki lokunene, ku pfuneta ku hlela ku twisisa ka swiphiqo leswi nga vaka kona na nkoka na nkucetelo wa swintshuxo leswi hi swi tirhisaka eka swona.
Eka xihloko lexi, nhlokomhaka ya mina leyikulu yi ta va eka swiyenge swa macro.
Loko ndza ha sungula ku dyondza hi software architecture, ndzi hlaye swihloko swo tala leswi tsakisaka mayelana na nawu wa Conway na nkucetelo wa wona eka xivumbeko xa nhlangano. Ngopfu-ngopfu leyi . Kutani, nawu lowu wu vula sweswo
Nhlangano wun’wana na wun’wana lowu dizayinaka sisiteme (leyi hlamuseriweke hi ku anama) wu ta humesa dizayini leyi xivumbeko xa yona ku nga khopi ya xivumbeko xa vuhlanganisi bya nhlangano.
Minkarhi hinkwayo ndzi pfumela leswaku hakunene mhaka leyi i ya misava hinkwayo swinene naswona yi yimela Nawu wa Nsuku.
Kutani ndzi sungule ku dyondza endlelo ra Eric Evans ra Domain-Driven Design (DDD) ra tisisiteme to modela. Eric Evans u kandziyisa nkoka wa ku tiveka ka Bounded Context. Mhaka leyi yi katsa ku avanyisa modele wa domain lowu rharhanganeke hi swiyenge leswintsongo, leswi lawulaka swinene, xin’wana na xin’wana xi ri na sete ya xona leyi nga nyawuriki ya vutivi. Endlelo leri ri pfuneta eka vuhlanganisi bya xipano lebyi humelelaka, tanihileswi ri hungutaka xilaveko xa vutivi byo anama bya domain hinkwayo na ku hunguta ku cinca ka mongo, xisweswo ri endla leswaku mabulo ya tirha kahle. Ku cinca-cinca mongo i nchumu wo biha swinene ni lowu dyaka switirhisiwa ku tlula hinkwaswo leswi tshameke swi va kona. Hambi ku ri tikhompyuta ta lwisana na swona. Hambi leswi swi nga ta endleka ku fikelela ku pfumaleka loku heleleke ka ku cinca ka mongo, ndzi ehleketa leswaku sweswo hi swona leswi hi faneleke ku swi lwela.
Loko ndzi tlhelela eka Nawu wa Conway, ndzi kume timhaka to hlayanyana na wona.
Mhaka yo sungula leyi ndzi hlanganeke na yona na Nawu wa Conway, lowu ringanyetaka leswaku dizayini ya sisiteme yi kombisa xivumbeko xa nhlangano, i vuswikoti byo vumba Swiyimo leswi pimiweke leswi rharhanganeke na leswi heleleke. Ku rharhangana loku ku humelela loko xivumbeko xa nhlangano xi nga fambisani na mindzilakano ya domain, leswi yisaka eka Swiyimo leswi nga na Swipimelo leswi titshegeke ngopfu hi swin’wana naswona swi tele hi mahungu. Swi yisa eka ku cinca-cinca ka mongo nkarhi na nkarhi eka ntlawa wa nhluvukiso.
Mhaka yin’wana hileswaku theminoloji ya nhlangano yi vupfa ku ya eka xiyimo xa khodi. Loko swivumbeko swa nhlangano swi cinca, swi lava ku cinciwa ka codebase, leswi dyaka switirhisiwa swa nkoka.
Xisweswo, ku landzelela Inverse Conway Maneuver swi pfuneta ku aka sisiteme na nhlengeletano leyi khutazaka vumaki bya software lebyi lavekaka. Hambiswiritano, swa xiyeka ku vula leswaku endlelo leri a ri nge tirhi kahle ngopfu eka vumaki na swivumbeko leswi se swi vumbiweke tanihileswi ku cinca eka xiyimo lexi ku lehekaka, kambe ri tirha hi ndlela yo hlawuleka eka masungulo tanihileswi va hatlisaka ku nghenisa ku cinca kwihi na kwihi.
Xivumbeko lexi kumbe “anti-pattern“ xi fambisa ku aka sisiteme leyi nga riki na architecture. A ku na milawu, a ku na mindzilakano naswona a ku na maqhinga ya ndlela yo lawula ku rharhangana loku kulaka loku nga papalatekiki. Ku rharhangana i nala wo chavisa swinene eka riendzo ro aka tisisiteme ta software.
Leswaku hi papalata ku aka muxaka wo tano wa fambiselo, hi fanele hi landzela milawu ni swipimelo swo karhi.
Kuna tinhlamuselo to tala ta Software Architecture. Ndzi tsakela vo tala va vona tanihi leswi va hlanganisaka swiyenge swo hambana-hambana swa swona. Hambiswiritano, leswaku hi kota ku anakanyisisa hi vumaki, hi ntumbuluko hi fanele hi vumba swin’wana swa swona emianakanyweni ya hina. Naswona swa xiyeka ku vula leswaku nhlamuselo leyi yi nga ha hundzuka. Kutani, at least for now, ndzi na nhlamuselo leyi landzelaka ya mina.
Software Architecture yi vulavula hi swiboho na ku hlawula loku u ku endlaka siku na siku leswi khumbhaka sisiteme leyi akiweke.
Ku endla swiboho leswi u faneleke ku va na swona eka “nkwama” wa wena milawu na swivumbeko swo tlhantlha swiphiqo leswi humelelaka, i swa nkoka ku tlhela u vula leswaku ku twisisa swilaveko i xilotlelo xo aka leswi bindzu ri swi lavaka. Kambe, minkarhi yin’wana swilaveko a swi le rivaleni kumbe hambi ku ri ku nga hlamuseriwanga, eka mhaka leyi, swa antswa ku rindza ku kuma ku hlamuseriwa loku engetelekeke kutani u titshega hi ntokoto wa wena ni ku tshemba ku twisisa ka wena. Kambe hambi swi ri tano, a wu nge swi koti ku endla swiboho kahle loko u nga ri na misinya ya milawu ni swivumbeko leswi u nga titshegaka ha swona. Hi kona laha ndzi taka eka nhlamuselo ya Software Architecture Style.
Xitayili xa Vumaki bya Software i sete ya milawu na swivumbeko leswi hlawulaka ndlela yo aka software.
Kuna switayele swotala swohambana hambana swa vumaki leswi kongomisiweke eka matlhelo yohambana hambana ya vumaki lebyi kunguhatiweke, naswona ku tirhisa swotala swa swona hi nkarhi wun’we i xiyimo lexi tolovelekeke.
Hi xikombiso, swo tanihi:
Vumaki bya monolithic
Dizayini leyi fambiwaka hi domain
Swi sekeriwe eka swiphemu
Switirhisiwa leswitsongo
Phayipi na swisefo
Swi fambisiwa hi swiendlakalo
Microkernel ya xirhendzevutani
Ku kongomisiwe eka vutirheli
na swin'wana na swin'wana...
I ntiyiso leswaku ti ni swilo leswinene ni leswo biha swa tona, kambe nchumu wa nkoka swinene lowu ndzi wu dyondzeke hileswaku vumaki byi cinca hakatsongo-tsongo kasi byi titshege hi swiphiqo swa xiviri. Ku sungula hi architecture ya monolithic i nhlawulo lowukulu wo hunguta ku rharhangana ka matirhelo, swinga endleka swinene architecture leyi yita fambelana na swilaveko swa wena hambi endzhaku ko fikelela xiteji xa Product-market Fit (PMI) xo aka xiendliwa. Eka xikalo, u nga ha ehleketa ku ya eka endlelo leri fambiwaka hi swiendlakalo na ti microservices ku fikelela ku tirhisiwa loku tiyimeleke, ndhawu ya heterogeneous tech stack, na vumaki lebyi nga hlanganisiwangiki ngopfu (naswona ku nga ri erivaleni ngopfu hi nkarhi wolowo hikwalaho ka muxaka wa maendlelo lama fambiwaka hi swiendlakalo na ya pub-sub loko leswi swi amukeriwile). Ku olova na ku tirha kahle swi le kusuhi naswona swi na nkucetelo lowukulu eka xin’wana na xin’wana. Hi ntolovelo, ti architectures leti rharhanganeke ti khumba rivilo ra nhluvukiso wa swihlawulekisi leswintshwa, ku seketela na ku hlayisa leswi nga kona, na ku tlhontlha ku hundzuka ka ntumbuluko ka sisiteme.
Hambiswiritano, maendlelo lama rharhanganeke hakanyingi ma lava vumaki lebyi rharhanganeke ni lebyi heleleke, leswi nga papalatekiki.
Hiku lulama, leyi i nhlokomhaka yo anama swinene swinene, naswona kuna miehleketo yotala swinene mayelana na ndlela yo hlela naku aka maendlelo ya ku hundzuka ka ntumbuluko. Hi ku ya hi ntokoto wa mina, ndzi tirhe endlelo leri landzelaka:
Swi tlhela swi va swa nkoka ku twisisa tinomboro na timetriki to fana na DAU (Daily Active Users), MAU (Monthly Active Users), RPC (Request Per Second), na TPC (Transaction Per Second) tanihileswi swi nga ku pfunaka ku endla swihlawulekisi hikuva architecture for 100 wa vatirhisi lava tirhaka na 100 wa timiliyoni ta vatirhisi lava tirhaka va hambanile.
Tanihi xitsundzuxo xo hetelela, ndzi nga vula leswaku vumaki byi na nkucetelo lowukulu eka ku humelela ka xiendliwa. Architecture leyi nga endliwangiki kahle ya swikumiwa ya laveka eka ku ringanisa, leswi swi nga endlekaka swinene leswaku swi yisa eka ku tsandzeka tanihileswi vaxavi va nga ta rindza loko u ri karhi u pima sisiteme, va ta hlawula muphikizani, hikwalaho hi fanele ku va emahlweni ka ku ringanisa loku nga vaka kona. Hambileswi ndzi pfumelaka leswaku minkarhi yin’wana a swi nga ta va endlelo ro olova, mianakanyo ya kona i ku va ni fambiselo leri ringaniseriwaka kambe leri se ri nga ringanisiwangiki. Hi hala tlhelo, ku va na sisiteme leyi rharhanganeke swinene naswona se yi ringanisiweke leyi nga riki na vaxavi kumbe makungu yo kuma yo tala ya vona swi ta ku koxa mali eka bindzu ra wena mahala.
Ku hlawula xithaki xa thekinoloji na swona i xiboho xa xiyimo xa macro tanihileswi swi khumbhaka ku thoriwa, mavonelo ya nhluvukiso wa ntumbuluko wa sisiteme, ku ringaniseriwa, na matirhelo ya sisiteme.
Leyi i nxaxamelo wa swilo swa xisekelo leswi faneleke ku tekeriwa enhlokweni loko u hlawula xithaki xa thekinoloji:
Xana ku va na switachi swo tala swa thekinoloji swi nga khumba njhani ku kula ka bindzu?
Hi ku ya hi langutelo rin’wana, ku nghenisa xithaki xin’we xin’wana swi nga hunguta ku thoriwa ka wena, kambe hi tlhelo rin’wana, swi tisa mali yo engetela yo hlayisa tanihileswi u lavaka ku seketela switachi leswimbirhi. Kutani, tanihilaha ndzi vuleke hakona eku sunguleni, hi ku vona ka mina, i xilaveko xo engetela ntsena lexi faneleke ku va njhekanjhekisano wo nghenisa switachi swo tala swa thekinoloji.
Kambe i yini hi nsinya wa nawu wa ku hlawula xitirho lexinene xa xiphiqo xo karhi?
Minkarhi yin’wana a wu na ndlela yin’wana handle ko tisa switirhisiwa leswintshwa swo tlhantlha xiphiqo xo karhi hi ku ya hi ku anakanyisisa loku fanaka loku boxiweke laha henhla, eka swiyimo swo tano, swa twala ku hlawula ntlhantlho lowunene.
Ku tumbuluxiwa ka tisisiteme leti nga riki na ku hlanganisiwa ka le henhla eka thekinoloji yo karhi swi nga va ntlhontlho. Hambi swi ri tano, swa pfuna ku lwela xiyimo lexi fambiselo leri ri nga hlanganisiwangiki swinene ni thekinoloji, naswona a ri nge fi loko mundzuku, rimba ro karhi kumbe xitirho xo karhi xi va ekhombyeni kumbe hambi ku ri ku nga ha tirhisiwi.
Xin’wana xa nkoka lexi tekeriwaka enhlokweni xi fambelana na ku titshega ka software ya xihlovo lexi pfulekeke na ya vulawuri. Software leyi nga ni vulawuri yi ku nyika ku cinca-cinca lokutsongo ni ku koteka ka ku va yi endleriwe hi ku landza swilaveko swa wena. Hambi swi ri tano, nchumu lowu nga ni khombo swinene i ku pfaleriwa ka vaxavisi, laha u sungulaka ku titshega hi swilo swa muxavisi, minxavo, swipimelo ni mepe wa ndlela. Leswi swi nga va ni khombo loko muxavisi a cinca ndlela, a tlakusa minxavo kumbe a tshika ku tirhisa xitirhisiwa. Software ya xihlovo lexi pfulekeke yi hunguta khombo leri, tanihi leswi nhlangano wun’we wu nga ri lawuliki. Ku herisa yinhla yin’we ya ku tsandzeka eka swiyimo hinkwaswo i xilotlelo xo aka tisisiteme leti tshembekaka ta ku kula.
Nhlayo yin’we ya ku tsandzeka (SPOF) yi kombetela eka xiphemu xin’wana na xin’wana xa sisiteme leyi, loko yi tsandzeka, yi nga ta endla leswaku sisiteme hinkwayo yi yima ku tirha. Ku herisa ti-SPOF eka swiyimo hinkwaswo i swa nkoka eka sisiteme yihi kumbe yihi leyi lavaka vukona bya le henhla. Hinkwaswo, ku katsa na vutivi, vatirhi, swiphemu swa sisiteme, vaphakeri va mapapa, na tikhebulu ta inthanete, swi nga tsandzeka.
Ku na tindlela to hlayanyana ta xisekelo leti hi nga ti tirhisaka ku herisa tinhla tin’we ta ku tsandzeka:
Eka xihloko lexi, hi hlanganisile swiyenge swo hlayanyana swa nkoka swa Macro na ndlela leyi hi nga langutanaka na ku rharhangana ka swona.
Ndza khensa ku hlaya! Hi ta vonana nkarhi lowu taka!