Distributed tracking: takazviita zvese zvisizvo

Cherechedza. transl.: Munyori wechinyorwa ichi ndiCindy Sridharan, injinjini kuimgix anonyanya kusimudzira API uye, kunyanya, kuongororwa kwemicroservice. Muchinyorwa ichi, anogovera chiono chake chakadzama chezvinetso zvazvino mumunda wekutsvagisa kwakagoverwa, uko, mumaonero ake, pane kushomeka kwezvishandiso zvinonyatsoshanda zvekugadzirisa matambudziko.

Distributed tracking: takazviita zvese zvisizvo
[Mufananidzo wakatorwa kubva zvimwe zvinhu nezve kutsvaga kwakagoverwa.]

Zvinotendwa kuti distributed tracing zvakaoma kuita, uye kudzoka pairi dubious at best. Pane zvikonzero zvakawanda nei kutsvaga kuchinetsa, kazhinji kutaura basa rinobatanidzwa mukugadzirisa chikamu chega chega chesystem kuti chitumire misoro yakakodzera nechikumbiro chega chega. Kunyange zvazvo dambudziko iri riripo, harisi risingakundiki. Nenzira, haitsanangure kuti sei vagadziri vasingafarire kutsvaga (kunyangwe iyo yave kutoshanda).

Dambudziko guru rekutsvagisa kwakagoverwa hakusi kuunganidza data, kuenzanisa mafomati ekugovera nekupa mhedzisiro, kana kuona kuti riini, kupi, uye sei sampuli. handisi kuedza kufungidzira zvisina basa aya "matambudziko ekunzwisisa" ari, chokwadi, akakosha hunyanzvi uye (kana isu tiri kufunga zvechokwadi Open Source) zviyero uye maprotocol) matambudziko ezvematongerwo enyika anoda kukundwa kuti matambudziko aya agadziriswe.

Zvisinei, kana tikafungidzira kuti matambudziko ose aya anogadziriswa, pane mukana mukuru wekuti hapana chichachinja zvakanyanya maererano ne yekupedzisira mushandisi ruzivo. Kutsvaga kungangove kusiri kwekushandisa kunoshanda mune akajairika debugging mamiriro-kunyangwe mushure mekunge yaiswa.

Kutevera kwakasiyana kwakadaro

Kuongororwa kunosanganisira zvikamu zvakasiyana zvakasiyana:

  • kugadzirira zvikumbiro uye zvepakati nemidziyo yekudzora;
  • kuparadzirwa kwemamiriro ezvinhu;
  • muunganidzwa wezvironda;
  • trace storage;
  • kudhirowa kwavo uye kuona.

Hurukuro zhinji pamusoro pekutsvagirwa kwakaparadzirwa dzinowanzoibata senge rudzi rwekuvhiya unary ine chinangwa chekubatsira zvizere kuongorora sisitimu. Izvi zvinonyanya kukonzerwa nekuti mazano ekutsvaga kugoverwa akaumbwa sei munhoroondo. IN blog zvinyorwa, yakagadzirwa pakavhurwa masosi eZipkin, zvakataurwa izvozvo iyo [Zipkin] inoita kuti Twitter ikurumidze. Zvipo zvekutanga zvekutengesa zvekutsvaga zvakasimudzirwawo se APM zvishandiso.

Cherechedza. transl.: Kuti zvimwe zvinyorwa zvive nyore kunzwisiswa, ngatitsanangurirei mazwi maviri akakosha zvichienderana ne OpenTracing purojekiti zvinyorwa:

  • sapanosvika - chinhu chakakosha chekutsvagisa kwakagoverwa. Iyo tsananguro yeimwe mafambiro ebasa (semuenzaniso, dhatabhesi mubvunzo) ine zita, yekutanga uye yekupedzisira nguva, ma tag, matanda uye mamiriro.
  • Spans kazhinji ine zvinongedzo kune dzimwe spans, zvichibvumira akawanda spans kuti abatanidzwe mukati Trace -kuona kwehupenyu hwechikumbiro sezvainofamba kuburikidza nehurongwa hwakagoverwa.

Mateki ane data rakakosha kwazvo rinogona kubatsira nemabasa akadai sekuyedzwa kwekugadzira, kuyedza kudzoreredza njodzi, kuongororwa jekiseni rekukanganisa, nezvimwe. Muchokwadi, mamwe makambani anotoshandisa kutsvaga kune zvakafanana zvinangwa. Ngatitangei nazvo kuchinjisa mamiriro epasi rose ine zvimwe zvekushandisa kunze kwekungofambisa spans kune yekuchengetedza system:

  • Somuenzaniso, Uber anoshandisa kutsvaga mhinduro kusiyanisa pakati pebvunzo traffic uye traffic yekugadzira.
  • Facebook anoshandisa tsvaga data yekuongorora nzira yakakosha uye yekuchinja kwetraffic panguva yenguva dzose yekudzosa njodzi miedzo.
  • Uyewo social network inoshanda Mabhuku eJupyter anobvumira vanogadzira kumhanyisa mibvunzo pane yekutevera mhinduro.
  • Vateveri LFI (Lineage Driven Failure Jekiseni) shandisa akagovera maronda ekuedzwa nekukanganisa jekiseni.

Hapana kana imwe yesarudzo yakanyorwa pamusoro inoshanda zvachose kune iyo mamiriro debug, panguva iyo injiniya anoedza kugadzirisa dambudziko nekutarisa kutsvakira.

Kana zvasvika zvakadaro inosvika kune debugging script, iyo yekutanga interface inoramba iri dhayagiramu traceview (kunyangwe vamwe vachidana zvakare "Gantt chati" kana "waterfall diagram") Under traceview я Ndoreva ese spans uye inoperekedza metadata iyo pamwe chete inogadzira iyo trace. Yese yakavhurika sosi yekutsvaga system, pamwe neyese yekutengesa yekutsvaga mhinduro, inopa a traceview mushandisi interface yekuona, kudonongodza uye kusefa zviteshi.

Dambudziko nemasevhisi ese ekutsvaga andakaona kusvika parizvino nderekuti mhedzisiro kuona (traceview) anenge anonyatso ratidza maitiro eiyo trace generation process. Kunyangwe kana mamwe maonesheni akatsanangurwa: heatmaps, sevhisi topology, latency histograms, ivo vanozopedzisira vauya traceview.

Munguva yakapfuura I vakanyunyuta izvo "zvinyowani" zvakawanda muUI / UX yekutsvaga zvinoita kunge zvinogumira kubatidza yakawedzera metadata mukuteedzera, kuisa mari mavari ruzivo nehupamhi hwepamusoro (high-cardinality) kana kupa kugona kudhiraivha pasi mune chaiyo spans kana kumhanya mibvunzo inter- uye intra-trace... Mariri traceview inoramba iri yekutanga yekuona chishandiso. Chero bedzi mamiriro ezvinhu aya achienderera mberi, kugovera kutsvagisa kuchaita (pazvakanakisa) kutora nzvimbo yechina sechishandiso chekugadzirisa, mushure memetrics, matanda uye stack traces, uye zvakanyanya kuzoita kutambisa mari nenguva.

Dambudziko netraceview

Chinangwa traceview - ipa mufananidzo wakazara wekufamba kwechikumbiro chimwe chete pane ese mazvikamu eiyo yakagoverwa system iyo ine hukama. Mamwe masystem ekutsvagira emberi anotendera iwe kudhirikira pasi mukati memunhu spans uye kuona kuparara nekufamba kwenguva mukati imwe nzira (apo spans ine miganhu inoshanda).

Iyo yakakosha misimboti yemicroservices architecture ipfungwa yekuti chimiro chesangano chinokura pamwe nezvinodiwa nekambani. Vatsigiri ve microservices vanopokana kuti kugovera mabasa akasiyana siyana ebhizinesi mumasevhisi ega kunobvumira zvikwata zvidiki, zvakazvimiririra zvekusimudzira kudzora hupenyu hwese hwemasevhisi akadai, zvichivapa kugona kuvaka vakazvimirira, kuyedza, uye kuendesa masevhisi iwayo. Nekudaro, iyo yakashata yekugovera uku kurasikirwa kweruzivo rwekuti sevhisi yega yega inodyidzana sei nevamwe. Mumamiriro ezvinhu akadaro, kugoverwa kwekutsvagisa zvichemo sechishandiso chakakosha che debug kusangana kwakaoma pakati pemasevhisi.

Kana iwe chaizvo zvinoshamisa zvakaoma kuparadzirwa system, saka hapana kana munhu mumwe chete anokwanisa kuzvichengeta mumusoro make zadzisa mufananidzo. Muchokwadi, kugadzira chishandiso chakavakirwa pafungidziro yekuti zvinotogoneka chinhu cheanopokana nemuenzaniso (nzira isingabatsiri uye isingabereki). Zvakanaka, kugadzirisa kunoda chishandiso chinobatsira dzikisa nzvimbo yako yekutsvaga, kuitira kuti mainjiniya atarise pane subset yezviyero (masevhisi / vashandisi / mauto, nezvimwewo) zvinoenderana nedambudziko riri kutariswa. Pakusarudza chikonzero chekutadza, mainjiniya haafanirwe kunzwisisa zvakaitika panguva masevhisi ose panguva imwe chete, sezvo chinodikanwa chakadaro chingapokana nepfungwa chaiyo yemicroservice architecture.

Nekudaro, traceview ndiyo ndiyo Izvi. Ehe, mamwe masisitimu ekutsvaga anopa akamanikidzwa traceview kana iyo spans mukutsvaga yakakura zvekuti haigone kuratidzwa mune imwe chete yekuona. Nekudaro, nekuda kwehuwandu hukuru hweruzivo rwurimo kunyangwe mukuona kwakabviswa-pasi, mainjiniya vachiri kumanikidzwa "sefa" iyo, nemaoko kuderedza sarudzo kune seti yemasevhisi ari manyuko ematambudziko. Nehurombo, mundima iyi, michina inokurumidza kupfuura vanhu, isingaite zvikanganiso, uye mhedzisiro yavo inodzokororwa.

Chimwe chikonzero chandinofunga kuti traceview haina kunaka imhaka yekuti haina kunaka kune hypothesis-inotungamirwa debugging. Pakati payo, debugging ndiyo iterative chirongwa chinotanga nefungidziro, inoteverwa nekuongororwa kwezvakasiyana-siyana zvakacherechedzwa uye chokwadi chakawanikwa kubva muhurongwa pamwe nevector dzakasiyana, mhedziso / generalizations uye kumwe kuongorora kwechokwadi chekufungidzira.

Mukana nekukurumidza uye zvakachipa kuyedza kufungidzira uye kuvandudza muenzaniso wepfungwa zvinoenderana ibwe repakona debugging Chero debugging mudziyo unofanira kuva interactive uye kupfupisa nzvimbo yekutsvaga kana, kana iri yenhema inotungamira, tendera mushandisi kuti adzokere kumashure uye atarise pane imwe nzvimbo yehurongwa. Chishandiso chakakwana chichaita izvi proactively, pakarepo kukwevera kutarisa kwemushandisi kune dzingangove nzvimbo dzine dambudziko.

Maiwe! traceview haikwanise kunzi chishandiso chine chinongedzo chinopindirana. Izvo zvakanakisa zvaungatarisira kana uchiishandisa ndezvekutsvaga imwe sosi yekuwedzera latency uye tarisa kune ese anobvira ma tag uye matanda ane hukama nawo. Izvi hazvibatsire mainjiniya kuziva mapatani mutraffic, senge izvo chaizvo zvekunonoka kugovera, kana kuona kuwirirana pakati pezviyero zvakasiyana. Generalized trace analysis inogona kubatsira kugadzirisa mamwe ematambudziko aya. Chokwadi, pane mienzaniso ongororo yakabudirira uchishandisa muchina kudzidza kuona zvisingaite uye kuona chikamu chema tag chinogona kunge chine chekuita nehunhu husina kunaka. Nekudaro, ini ndisati ndaona zvinogombedzera zviratidziro zvemuchina kudzidza kana data migodhi yakawanikwa yakashandiswa kune spans akasiyana zvakanyanya kubva kune traceview kana DAG (inotungamirwa acyclic graph).

Maspans akadzikira zvakanyanya

Dambudziko guru netraceview nderekuti spans idzo dzakaderera-level primitives kune zvese latency kuongororwa uye midzi yekuongorora chikonzero. Zvakafanana nekuparura mirairo yeprosesa yekuyedza kugadzirisa zvakasarudzika, uchiziva kuti kune akawanda epamusoro-level maturusi senge backtrace ayo ari nyore kushanda nawo.

Uyezve, ini ndichatora rusununguko rwekutaura zvinotevera: zvakanaka, isu hatidi mufananidzo wakazara zvakaitika panguva yekukumbira lifecycle, iyo inomiririrwa nemidziyo yemazuva ano yekutevera. Pane kudaro, imwe nzira yekubvisa-yepamusoro-soro inodiwa iyo ine ruzivo nezve chii zvakakanganisika (yakafanana neshure), pamwe nemamwe mamiriro. Panzvimbo pekuona yese trace, ndinofarira kuiona chikamu che, panoitika chimwe chinhu chinonakidza kana chisingawanzoitiki. Parizvino, kutsvaga kunoitwa nemaoko: injiniya inogamuchira tsvakiridzo uye inoongorora yakazvimiririra spans mukutsvaga chimwe chinhu chinonakidza. Maitiro evanhu vanotarisa zvipamhi mumateki ega ega vachitarisira kuona chiitiko chekufungidzira hachikwiri zvachose (kunyanya kana vachifanira kunzwisisa metadata yese yakavharidzirwa munzvimbo dzakasiyana, senge span ID, RPC nzira yezita, kureba kwenguva. 'a, matanda, tags, nezvimwewo).

Dzimwe nzira dzekutarisa

Kutsvaga mhedzisiro inonyanya kubatsira kana ichigona kuoneswa nenzira inopa isiri-diki nzwisiso yezviri kuitika muzvikamu zvakabatana zvehurongwa. Kusvikira izvi zvaitika, iyo debugging maitiro anoramba aripo inert uye zvinoenderana nekugona kwemushandisi kuona hukama chaihwo, tarisa nzvimbo dzakafanira dzehurongwa, kana kuisa zvidimbu zvepuzzle pamwe chete - kupesana ne chiridzwa, zvichibatsira mushandisi kugadzira mafungiro aya.

Ini handisi mugadziri anoona kana UX nyanzvi, asi muchikamu chinotevera ndinoda kugovera mashoma mazano pamusoro pekuti izvi zvinoonekwa zvingaite sei.

Tarisa pane mamwe mabasa

Panguva iyo iyo indasitiri iri kubatanidza zvakatenderedza mazano SLO (sevhisi nhanho zvinangwa) uye SLI (sevhisi level zviratidzo), zvinoita sezvine musoro kuti zvikwata zvega-zvizvi zvinofanirwa kukoshesa kuona kuti masevhisi azvo anoenderana nezvinangwa izvi. Zvinotevera izvozvo service oriented kuona kwakanyatsokodzera zvikwata zvakadaro.

Tsanangudzo, kunyanya pasina sampling, idura reruzivo nezve chimwe nechimwe chechikamu cheiyo yakagoverwa system. Ruzivo urwu runogona kupihwa kune ane hunyanzvi processor anozopa vashandisi service oriented Zvinogona kuzivikanwa pachine nguva - kunyangwe mushandisi asati atarisa zvakatemwa:

  1. Latency kugovera dhayagiramu chete kune zvine mukurumbira zvikumbiro (zvikumbiro zvekunze);
  2. Dhiagiramu yekunonoka kugovera kune kesi kana sevhisi SLO zvinangwa zvisina kuwanikwa;
  3. Ma tag "akajairika", "anonakidza" uye "asinganzwisisike" mumibvunzo kazhinji zvinodzokororwa;
  4. Latency kupatsanurwa kwemakesi apo dependencies masevhisi haazadzise zvinangwa zvavo zveSLO;
  5. Latency kupatsanurwa kweakasiyana-siyana pasi pemvura masevhisi.

Mimwe yemibvunzo iyi haingopindurwe neakavakirwa-mukati metrics, ichimanikidza vashandisi kuongorora spans. Nekuda kweizvozvo, isu tine zvakanyanya mushandisi-anovenga michina.

Izvi zvinomutsa mubvunzo: ko nezvekudyidzana kwakaomarara pakati pemasevhisi akasiyana anodzorwa nezvikwata zvakasiyana? Handizvo here traceview haionekwi sechishandiso chakakodzera kwazvo chekusimbisa mamiriro ezvinhu akadaro?

Vagadziri venharembozha, varidzi vebasa risingaverengeki, varidzi veakagadziriswa masevhisi (senge dhatabhesi) uye varidzi vepuratifomu vanogona kufarira chimwe chinhu. presentation distributed system; traceview yakanyanya generic mhinduro kune izvi zvidikanwi zvakasiyana. Kunyangwe mune yakaomesesa microservice architecture, varidzi vesevhisi havadi ruzivo rwakadzama rweanopfuura maviri kana matatu kumusoro uye kuzasi masevhisi. Chaizvoizvo, mune dzakawanda mamiriro, vashandisi vanongoda kupindura mibvunzo ine chekuita masevhisi mashoma.

Zvakafanana nekutarisa padiki diki resevhisi kuburikidza negirazi rinokudza nekuda kwekuiongorora. Izvi zvinobvumira mushandisi kubvunza mibvunzo inotsikirira ine chekuita nekudyidzana kwakaomarara pakati peaya masevhisi uye nekutsamira kwavo ipapo. Izvi zvakafanana nekudzokera kumashure munyika yebasa, uko mainjiniya anoziva kuti zvakaipa, uye zvakare ane kumwe kunzwisisa kwezviri kuitika mumasevhisi akatenderedza kuti anzwisise nei.

Nzira yandiri kusimudzira ndiyo yakanyatsopesana neyepamusoro-pasi, traceview-based approach, apo kuongororwa kunotanga nekutsvaga kwese uye zvishoma nezvishoma kunoshanda kusvika kune imwe nzvimbo. Kusiyana neizvi, nzira yepasi-kumusoro inotanga nekuongorora nzvimbo duku iri pedyo nechikonzero chechiitiko chacho, uye yobva yawedzera nzvimbo yekutsvaga sezvinodiwa (pamwe nekukwanisa kuunza mamwe mapoka kuti aongorore huwandu hwakawanda hwebasa). Nzira yechipiri inonyatsokodzera kukurumidza kuedza kufungidzira kwekutanga. Kana mhedzisiro yekongiri yawanikwa, zvinokwanisika kuenderera kune yakanyatso kutarisisa uye yakadzama ongororo.

Kuvaka topology

Sevhisi-chaiwo maonero anogona kubatsira zvakanyanya kana mushandisi achiziva chii sevhisi kana boka remasevhisi rine basa rekuwedzera latency kana kukonzera kukanganisa. Zvisinei, muhurongwa hwakaoma, kuziva basa rinogumbura rinogona kunge riri basa risiri diki panguva yekukundikana, kunyanya kana pasina mameseji ekukanganisa akashumwa kubva kumasevhisi.

Kuvaka topology yebasa kunogona kubatsira zvakanyanya mukuona kuti nderipi sevhisi iri kusangana nepike mumitengo yekukanganisa kana kuwedzera kwekunonoka kuri kuita kuti sevhisi iderere zvinooneka. Kana ndichitaura nezve kuvaka topology, handisi kureva services mepu, kuratidza yese sevhisi inowanikwa muhurongwa uye inozivikanwa neyayo mepu dzezvivakwa muchimiro chenyeredzi yerufu. Aya maonero haasi nani pane traceview yakavakirwa pane inotungamirwa acyclic graph. Pane kudaro ndinoda kuona dynamically yakagadzirwa sevhisi topology, zvichibva pane humwe hunhu hwakadai seyeyero yekukanganisa, nguva yekupindura, kana chero mushandisi-inotsanangurwa parameter inobatsira kujekesa mamiriro nemasevhisi anofungidzirwa.

Ngatitorei muenzaniso. Ngatimbo fungidzira imwe fungidziro yenhau saiti. Home peji service (peji Rekutanga) inochinjana data neRedis, nerumbidzo sevhisi, ine sevhisi yekushambadzira uye sevhisi sevhisi. Iyo vhidhiyo sevhisi inotora mavhidhiyo kubva kuS3 uye metadata kubva kuDynamoDB. Iyo yekurudziro sevhisi inogamuchira metadata kubva kuDynamoDB, inotakura data kubva kuRedis neMySQL, uye inonyora mameseji kuKafka. Sevhisi yekushambadzira inogamuchira data kubva kuMySQL uye inonyora mameseji kuKafka.

Pazasi pane schematic inomiririra yeiyi topology (zvizhinji zvekutengesa routing zvirongwa zvinovaka iyo topology). Inogona kubatsira kana iwe uchida kunzwisisa zvinoenderana nesevhisi. Zvisinei, panguva debug, apo imwe sevhisi (ichiti, sevhisi sevhisi) inoratidza yakawedzera nguva yekupindura, iyo topology haibatsiri zvakanyanya.

Distributed tracking: takazviita zvese zvisizvo
Dhizaini yebasa yesaiti yenhau yekufungidzira

Dhiagiramu iri pazasi ingakodzera zvirinani. Pane dambudziko nesevhisi (video) inoratidzwa pakati chaipo. Mushandisi anozviona pakarepo. Kubva pakuona uku, zvinova pachena kuti sevhisi yevhidhiyo iri kushanda zvisina kujairika nekuda kwekuwedzera kweS3 yekupindura nguva, iyo inokanganisa kurodha kumhanya kwechikamu chepeji huru.

Distributed tracking: takazviita zvese zvisizvo
Dynamic topology inoratidzira chete "inofadza" masevhisi

Dynamically yakagadzirwa topology inogona kushanda zvakanyanya kupfuura static sevhisi mepu, kunyanya mu elastic, auto-scaling zvivakwa. Iko kugona kuenzanisa uye kusiyanisa masevhisi epamusoro anobvumira mushandisi kubvunza mibvunzo yakakosha. Mimwe mibvunzo yakanyatsojeka nezve system inowanzo tungamira mukunzwisisa kuri nani kwemashandiro anoita system.

Kuenzanisa kuratidza

Chimwe chitarisiko chinobatsira chingave chiratidziro chekuenzanisa. Parizvino mitsetse haina kunyatsokodzera kudivi-ne-parutivi kuenzanisa, saka kuenzanisa kunowanzo spans. Uye pfungwa huru yechinyorwa ichi ndeyechokwadi kuti spans yakadzikira-chikamu kuti ibvise ruzivo rwakakosha kubva mumhedzisiro.

Kuenzanisa mitsetse miviri haidi zvitarisiko zvitsva. Muchokwadi, chimwe chinhu chakafanana nehistogram inomiririra ruzivo rwakafanana seyekuteedzera inokwana. Zvinoshamisa kuti kunyange iyi nzira iri nyore inogona kuunza zvibereko zvakawanda pane kungodzidza maitiro maviri akasiyana. Kutonyanya kusimba kungava mukana kuona kuenzanisa kwemavara Pakazara. Zvingave zvakanyanya kubatsira kuona kuti ichangoburwa dhizaini dhizaini shanduko yekugonesa GC (kuunganidzwa kwemarara) inokanganisa nguva yekupindura yebasa rezasi pachiyero chemaawa akati wandei. Kana zvandiri kutsanangura pano zvinoita senge A/B ongororo yekukanganisa kwekuchinja kwezvivakwa mumasevhisi akawanda uchishandisa mhedzisiro, saka hausi kure zvakanyanya kubva kuchokwadi.

mhedziso

Ini handibvunzi kubatsira kwekuronda chaiko. Ini ndinotenda nemoyo wese kuti hapana imwe nzira yekuunganidza data seyakapfuma, causal uye mamiriro sezviri mumutsara. Nekudaro, ini zvakare ndinotenda kuti ese ekutsvaga mhinduro anoshandisa iyi data zvakanyanya zvisina kunaka. Chero bedzi maturusi ekutsvaga achiramba akanamatira pane traceview inomiririra, ivo vanozoganhurirwa mukukwanisa kwavo kushandisa zvakanyanya ruzivo rwakakosha runogona kutorwa kubva mudhata ririmo mune zviteshi. Pamusoro pezvo, pane njodzi yekuenderera mberi nekugadzira isina hushamwari uye isingaite yekuona interface iyo inodzikamisa zvakanyanya kugona kwemushandisi kugadzirisa zvikanganiso mukushandisa.

Debugging yakaoma masisitimu, kunyangwe iine zvishandiso zvazvino, zvakaoma zvikuru. Zvishandiso zvinofanirwa kubatsira mugadziri kugadzira uye kuyedza hypothesis, kupa nesimba ruzivo rwakakodzera, kuzivisa kunze uye kucherechedza maficha mukugovera kwekunonoka. Kuti utsvage kuti uve chishandiso chesarudzo kune vanogadzira kana kugadzirisa kutadza kwekugadzira kana kugadzirisa matambudziko anotora masevhisi akawanda, mashandisirwo ekutanga evashandisi uye maonesheni anodiwa anowirirana nemuenzaniso wepfungwa wevagadziri vanogadzira nekushandisa masevhisi iwayo.

Zvinotora kukosha kwekuedza kwepfungwa kugadzira sisitimu inomiririra masaini akasiyana-siyana anowanikwa mune yekutevera mhedzisiro nenzira yakagadziridzwa kuti ive nyore kuongorora uye kufungidzira. Iwe unofanirwa kufunga nezve nzira yekubvisa iyo system topology panguva yedebugging nenzira inobatsira mushandisi kukunda mapofu pasina kutarisa ega ega kana spans.

Isu tinoda yakanaka yekubvisa uye yekuisa hunyanzvi (kunyanya muUI). Idzo dzinogona kunyatsokwana mune hypothesis-inotyairwa debugging maitiro uko iwe unogona kudzokorodza kubvunza mibvunzo uye kuyedza hypotheses. Ivo havazogadzirise otomatiki matambudziko ese ekuonekwa, asi ivo vanozobatsira vashandisi kurodza intuition yavo uye kugadzira mibvunzo ine hungwaru. Ini ndinodaidzira imwe nzira inofungisisa uye itsva yekuona. Pane tarisiro chaiyo pano yekuwedzera horizons.

PS kubva kumushanduri

Verenga zvakare pablog yedu:

Source: www.habr.com

Voeg