Isan'andro, isaky ny fotoanan'ny asa injeniera, dia miatrika olana maro samihafa amin'ny fahasarotana sy toe-javatra isan-karazany izay ilaintsika handray fanapahan-kevitra na hanemotra izany noho ny tsy fahampian'ny angona. Isaky ny manangana tolotra vaovao isika, manangana fotodrafitrasa, na mandrafitra dingana fampandrosoana mihitsy aza, dia manohina tontolo goavana misy fanamby isan-karazany.
Sarotra, ary mety tsy ho vita mihitsy aza ny mitanisa ny olana rehetra. Tsy ho tojo ny sasany amin'ireo olana ireo ianao raha tsy miasa amin'ny niche manokana. Amin'ny lafiny iray, misy maro izay tsy maintsy takatsika rehetra ny fomba hamahana azy, satria zava-dehibe amin'ny fananganana rafitra IT. Miaraka amin'ny mety hitranga dia hihaona amin'izy ireo amin'ny tetikasa rehetra ianao.
Ato amin'ity lahatsoratra ity dia hizara ny traikefako amin'ny olana sasany hitako teo am-pamoronana programa rindrambaiko aho.
Raha mijery ny Wikipedia isika dia hahita ity famaritana manaraka ity
Amin'ny fampivoarana rindrambaiko miompana amin'ny lafiny lafiny, ny fiahiahiana miampita dia lafiny iray amin'ny programa iray izay misy fiantraikany amin'ny maody maromaro, tsy misy ny mety ho tafiditra ao anatin'ny iray amin'izy ireo. Matetika ireo olana ireo dia tsy azo simbaina amin'ny rafitra sisa amin'ny famolavolana sy ny fampiharana, ary mety hiteraka fiparitahana (fandikana kaody), fikorontanana (fiankinan-doha lehibe eo amin'ny rafitra), na izy roa.
Manoritsoritra tsara hoe inona izany, fa tiako hanitatra sy hanatsorana kely:
Ny fiahiahiana mifanandrify dia foto-kevitra na singa ao amin'ny rafitra/fikambanana izay misy fiantraikany (na 'manapaka') faritra maro hafa.
Ny ohatra tsara indrindra amin'ny olana toy izany dia rafitra rafitra, logging, fiarovana, fitantanana raharaham-barotra, telemetry, famolavolana angon-drakitra ary maro hafa. Hiresaka momba ny maro amin'izy ireo isika ato amin'ity lahatsoratra ity.
Eo amin'ny sehatry ny kaody, matetika ny fiahiahiana amin'ny fifampiraharahana dia ampiharina amin'ny fampiasana teknika toy ny Aspect-Oriented Programming (AOP) , izay amboarina ho singa misaraka ireo olana ireo izay azo ampiharina mandritra ny fampiharana. Izany dia mitazona ny lojikan'ny fandraharahana mitokana amin'ireo olana ireo, mahatonga ny kaody ho mora vakiana sy ho azo tazomina kokoa.
Misy fomba maro azo atao hanasokajiana ny lafiny amin'ny fanasokajiana azy ireo amin'ny fananana samihafa toy ny habaka, ny habeny, ny fiasa, ny maha-zava-dehibe, ny tanjona ary ny hafa, saingy amin'ity lahatsoratra ity dia hampiasa fanasokajiana tsotra aho. Ny tiako holazaina amin'izany dia hoe aiza no iantefan'io lafiny manokana io na ny fikambanana iray manontolo, na rafitra iray manokana, na singa manokana amin'io rafitra io.
Noho izany, hanasaraka ny lafiny ho Macro sy Micro aho.
Amin'ny lafiny Macro ny tiako holazaina indrindra dia ny fiheverana arahintsika amin'ny rafitra manontolo toy ny rafitra rafitra voafidy sy ny famolavolana azy (monolithic, microservices, maritrano miompana amin'ny serivisy), stack teknolojia, firafitry ny fandaminana, sns. Ny lafiny macro dia mifandray indrindra amin'ny stratejika sy avo lenta. fanapahan-kevitra.
Mandritra izany fotoana izany, ny lafiny Micro dia manakaiky kokoa ny haavon'ny kaody sy ny fampandrosoana. Ohatra, izay rafitra ampiasaina hifaneraserana amin'ny angon-drakitra, ny firafitry ny tetikasa amin'ny lahatahiry sy kilasy, na koa ny endrika famolavolana zavatra manokana.
Na dia tsy mety aza io fanasokajiana io, dia manampy amin'ny fananganana fahatakarana ny olana mety hitranga sy ny maha-zava-dehibe sy ny fiantraikan'ny vahaolana ampiharintsika amin'izy ireo.
Amin'ity lahatsoratra ity dia hifantoka amin'ny lafiny macro aho.
Vao nanomboka nianatra momba ny maritrano rindrambaiko aho dia namaky lahatsoratra mahaliana maro momba ny lalàn'i Conway sy ny fiantraikany amin'ny rafi-pandaminana. Indrindra fa ity . Araka izany, io lalàna io no milaza izany
Izay fikambanana rehetra mamolavola rafitra (famaritana amin'ny ankapobeny) dia hamokatra endrika izay ny rafitra dia dika mitovy amin'ny rafi-pifandraisana ao amin'ny fikambanana.
Nino foana aho fa tena manerana izao rehetra izao io foto-kevitra io ary maneho ny Fitsipika Volamena.
Avy eo aho dia nanomboka nianatra ny fomba fiasa Domain-Driven Design (DDD) an'i Eric Evans ho an'ny rafitra modely. Eric Evans dia manantitrantitra ny maha-zava-dehibe ny famantarana ny Context Bounded. Ity foto-kevitra ity dia ahitana ny fizarana modely sehatra saro-takarina ho fizarana kely kokoa sy azo fehezina, izay samy manana ny fahalalana voafetra. Ity fomba fiasa ity dia manampy amin'ny fifandraisana mahomby amin'ny ekipa, satria mampihena ny filana fahalalana betsaka momba ny sehatra iray manontolo ary manamaivana ny fiovan'ny toe-javatra, ka mahatonga ny resaka hahomby kokoa. Ny fanovana toe-javatra no zavatra ratsy indrindra sy mandany loharanon-karena indrindra hatramin'izay. Na ny solosaina aza dia sahirana amin'izany. Na dia tsy azo inoana aza ny hahatongavana tanteraka amin'ny tsy fisian'ny fiovan'ny contexte, dia mihevitra aho fa izany no tokony hiezahantsika.
Raha iverenana ny Lalàn'i Conway dia nahita olana maro momba izany aho.
Ny olana voalohany hitako tamin'ny Lalàn'i Conway, izay milaza fa ny famolavolana rafitra dia mitaratra ny rafi-pandaminana, dia ny mety hisian'ny fananganana toe-javatra sarotra sy feno. Mipoitra io fahasarotana io rehefa tsy mifanaraka amin'ny sisin-tanin'ny sehatra ny rafi-pandaminana, mitondra any amin'ny Contexts Bounded izay mifampiankina be sy feno vaovao. Izany dia mitarika amin'ny fiovan'ny toe-javatra matetika ho an'ny ekipa fampandrosoana.
Ny olana iray hafa dia ny hoe miditra amin'ny haavon'ny kaody ny voambolana fandaminana. Rehefa miova ny rafi-pandaminana, dia mila fanovana codebase, mandany loharanon-karena sarobidy.
Noho izany, ny fanarahana ny Inverse Conway Maneuver dia manampy amin'ny fananganana rafitra sy fandaminana izay mamporisika ny maritrano rindrambaiko irina. Na izany aza, marihina ny milaza fa io fomba fiasa io dia tsy hiasa tsara amin'ny maritrano sy rafitra efa vita satria maharitra ny fiovana amin'ity dingana ity, fa tena mahomby amin'ny fanombohana satria haingana izy ireo mampiditra fanovana rehetra.
Ity lamina ity na "anti-pattern" dia mitondra ny fananganana rafitra tsy misy maritrano. Tsy misy fitsipika, tsy misy fetra, ary tsy misy paikady momba ny fomba hifehezana ny fahasarotana tsy azo ihodivirana. Ny fahasarotana no fahavalo mahery vaika indrindra amin'ny dian'ny fananganana rafitra rindrambaiko.
Mba hisorohana ny fananganana karazana rafitra toy izany dia mila manaraka fitsipika sy teritery manokana isika.
Misy famaritana marobe momba ny Architecture Software. Tiako ny maro amin'izy ireo satria mirakitra lafiny samihafa amin'izany izy ireo. Na izany aza, mba hahafahana manjohy hevitra momba ny maritrano, dia ilaintsika ho azy ny mamorona ny sasany amin'izy ireo ao an-tsaintsika. Ary marihina fa mety hivoatra io famaritana io. Noho izany, farafaharatsiny amin'izao fotoana izao dia manana ity famaritana manaraka ity ho an'ny tenako aho.
Software Architecture dia momba ny fanapahan-kevitra sy ny safidy ataonao isan'andro izay misy fiantraikany amin'ny rafitra namboarina.
Mba handraisana fanapahan-kevitra mila anananao ao amin'ny "kitapo" ny fitsipika sy ny lamina amin'ny famahana olana mipoitra, dia ilaina ihany koa ny milaza fa ny fahatakarana ny fepetra no fanalahidy amin'ny fananganana izay ilain'ny orinasa. Na izany aza, indraindray ny fepetra dia tsy mangarahara na tsy voafaritra mihitsy aza, amin'ity tranga ity, tsara kokoa ny miandry mba hahazoana fanazavana bebe kokoa na miantehitra amin'ny traikefanao ary matoky ny intuition anao. Na izany aza, tsy afaka mandray fanapahan-kevitra araka ny tokony ho izy ianao raha tsy manana fitsipika sy lamina azo ianteherana. Eto aho dia tonga amin'ny famaritana ny Software Architecture Style.
Software Architecture Style dia andiana fitsipika sy lamina izay manondro ny fomba fananganana rindrambaiko.
Be dia be ny endrika maritrano samihafa mifantoka amin'ny lafiny samihafa amin'ny maritrano nomanina, ary ny fampiharana maro amin'izy ireo indray mandeha dia toe-javatra mahazatra.
Ohatra, toy ny:
Architecture monolithic
Famolavolana entin'ny sehatra
Miorina amin'ny singa
Microservices
Sodina sy sivana
Entin'ny hetsika
Microkernel
service-mirona
sy ny sisa…
Mazava ho azy fa manana ny tombony sy ny fatiantoka izy ireo, fa ny zava-dehibe indrindra nianarako dia ny hoe mivoatra tsikelikely ny architecture raha miankina amin'ny olana tena izy. Ny fanombohana amin'ny maritrano monolitika dia safidy tsara amin'ny fampihenana ny fahasarotana amin'ny fampandehanana, azo inoana fa ity maritrano ity dia hifanaraka amin'ny filanao na dia aorian'ny fahatongavana amin'ny sehatry ny Product-market Fit (PMI) amin'ny fananganana ny vokatra. Amin'ny ambaratonga lehibe, azonao atao ny mieritreritra ny hifindra mankany amin'ny fomba fiasa sy ny microservices amin'ny fanatontosana ny fametrahana tsy miankina, ny tontolon'ny teknolojia tsy mitovy, ary ny maritrano tsy mitambatra (ary tsy dia mangarahara mandritra izany noho ny toetran'ny hetsika entin'ny hetsika sy ny pub-sub raha toa ka ireo no raisina). Ny fahatsorana sy ny fahombiazany dia akaiky ary misy fiantraikany lehibe amin'ny tsirairay. Matetika, ny maritrano sarotra dia misy fiantraikany amin'ny hafainganan'ny fivoaran'ny endri-javatra vaovao, ny fanohanana sy fikojakojana ny efa misy, ary ny fanamby amin'ny fivoaran'ny rafitra voajanahary.
Na izany aza, ny rafitra sarotra matetika dia mitaky rafitra sarotra sy feno, izay tsy azo ihodivirana.
Raha ny tokony ho izy, lohahevitra midadasika be ity, ary misy hevitra tsara maro momba ny fananganana sy fananganana rafitra ho an'ny evolisiona voajanahary. Araka ny traikefako, dia nanao izao fomba fiasa manaraka izao aho:
Zava-dehibe ihany koa ny mahatakatra ny isa sy ny metrika toy ny DAU (Mpiasa mavitrika isan'andro), MAU (Mpiasa mavitrika isam-bolana), RPC (Fangatahana isaky ny segondra), ary TPC (Transaction isan-tsegondra) satria afaka manampy anao hanao safidy izany satria ny architecture for Mpampiasa mavitrika 100 sy mpampiasa mavitrika 100 tapitrisa no samy hafa.
Ho fanamarihana farany dia lazaiko fa misy fiantraikany lehibe amin'ny fahombiazan'ny vokatra ny architecture. Ny maritrano tsy voalamina tsara ho an'ny vokatra dia takiana amin'ny fanamafisam-peo, izay mety hitarika ho amin'ny tsy fahombiazana satria ny mpanjifa dia tsy hiandry eo am-pandanjanao ny rafitra, hifidy mpifaninana izy ireo, noho izany dia mila mialoha ny mety hisian'ny scaling isika. Na dia miaiky aza aho fa indraindray dia tsy mety ho fomba fiasa malefaka izany, ny hevitra dia ny hanana rafitra azo ekena fa tsy efa mirefy. Amin'ny lafiny iray, ny fananana rafitra tena sarotra sy efa mirefy tsy misy mpanjifa na mikasa ny hahazo ny maro amin'izy ireo dia handany vola amin'ny orinasanao tsy misy dikany.
Fanapahan-kevitra amin'ny ambaratonga macro ihany koa ny fisafidianana antontam-teknolojia satria misy fiantraikany amin'ny fandraisana mpiasa, ny fomba fijerin'ny fivoaran'ny rafitra voajanahary, ny scalability ary ny fahombiazan'ny rafitra.
Ity ny lisitry ny fiheverana fototra amin'ny fisafidianana stack teknolojia:
Ahoana no mety hisy fiantraikany amin'ny fitomboan'ny fandraharahana ny fananana antontam-teknolojia marobe?
Amin'ny fomba fijery iray, ny fampidirana stack iray hafa dia mety hampitombo ny fandraisanao mpiasa, fa amin'ny lafiny iray kosa, mitondra fandaniana fanampiny amin'ny fikojakojana izany satria mila manohana ireo stacks roa ianao. Noho izany, araka ny nolazaiko teo aloha, raha ny fahitako azy, ny filàna fanampiny ihany no tokony ho tohan-kevitra hampidirana tsangambato teknolojia bebe kokoa.
Ahoana anefa ny amin'ny fitsipiky ny fisafidianana ny fitaovana tsara indrindra ho an'ny olana manokana?
Indraindray ianao dia tsy manana safidy hafa afa-tsy ny mitondra fitaovana vaovao hamahana olana manokana mifototra amin'ny fiheverana mitovy amin'ny voalaza etsy ambony, amin'ny toe-javatra toy izany, dia misy dikany ny mifidy ny vahaolana tsara indrindra.
Mety ho fanamby ny famoronana rafitra tsy misy fifandraisana ambony amin'ny teknolojia manokana. Na izany aza, ilaina ny miezaka mafy amin'ny toe-javatra izay tsy mifamatotra mafy amin'ny teknolojia ny rafitra, ary tsy ho faty izany rahampitso, ny rafitra na fitaovana iray manokana dia lasa marefo na tsy ampiasaina mihitsy aza.
Ny fiheverana manan-danja iray hafa dia mifandraika amin'ny fiankinan-doha amin'ny rindrambaiko open-source sy proprietary. Ny logiciel proprietary dia manome anao fahaleovan-tena kely kokoa sy ny fahafahana amboarina. Na izany aza, ny antony mampidi-doza indrindra dia ny fanakatonana mpivarotra, izay lasa miankina amin'ny vokatra, ny vidiny, ny fepetra ary ny tondrozotra. Mety hampidi-doza izany raha miova lalana ny mpivarotra, na mampitombo ny vidiny, na manajanona ny vokatra. Ny logiciel open source dia mampihena io risika io, satria tsy voafehin'ny orinasa tokana izany. Ny fanafoanana teboka tokana amin'ny tsy fahombiazana amin'ny ambaratonga rehetra dia fanalahidin'ny fananganana rafitra azo antoka ho an'ny fitomboana.
Ny teboka tokana tsy fahombiazana (SPOF) dia manondro ny ampahany amin'ny rafitra iray izay, raha tsy mahomby izany, dia hampiato ny rafitra manontolo. Ny fanafoanana ny SPOFs amin'ny ambaratonga rehetra dia zava-dehibe ho an'ny rafitra rehetra mitaky fahafahana be. Ny zava-drehetra, anisan'izany ny fahalalana, ny mpiasa, ny singa rafitra, ny mpanome rahona, ary ny tariby Internet, dia mety tsy hahomby.
Misy teknika fototra maromaro azo ampiharina mba hanafoanana ny teboka tokana tsy fahombiazana:
Ato amin'ity lahatsoratra ity, nodinihinay ny lafiny Macro lehibe maro sy ny fomba hiatrehana ny fahasarotana.
Misaotra anao namaky! Amin'ny manaraka indray!