Unsaon Pagbasa ug Pagtul-id sa 100,000 ka Linya sa Code sa Usa ka Semana

Unsaon Pagbasa ug Pagtul-id sa 100,000 ka Linya sa Code sa Usa ka Semana
Sa sinugdanan kanunay lisud sabton ang dako ug karaan nga proyekto. Ang arkitektura usa sa mga kalihokan sa usa ka pagsusi sa arkitekto. Kasagaran kinahanglan nimo nga magtrabaho uban ang dagko, daan nga mga proyekto, ug ang mga resulta kinahanglan ihatud sa usa ka semana.

Sa unsa nga paagi sa pagtimbang-timbang sa usa ka proyekto sa 100k o labaw pa nga mga linya sa code sa usa ka semana samtang naghatag pa og mga resulta nga tinuod nga mapuslanon sa kliyente.

Kadaghanan sa mga arkitekto ug teknikal nga nanguna nakasugat og susama nga mga pagtasa sa proyekto. Mahimong kini tan-awon sama sa usa ka semi-pormal nga proseso o ingon usa ka lahi nga serbisyo sama sa gihimo sa among kompanya, usa ka paagi o lain nga kadaghanan sa inyo nag-atubang niini.

Ang orihinal sa English para sa imong mga higala nga dili nagsultig Ruso ania dinhi: Architecture Assessment sa usa ka semana.

Ang pamaagi sa among kompanya

Isulti ko kanimo kung giunsa kini molihok sa among kompanya ug kung giunsa nako paglihok sa parehas nga mga sitwasyon, apan dali nimo mabag-o kini nga pamaagi sumala sa mga panginahanglanon sa imong proyekto ug kompanya.

Adunay duha ka matang sa pagtimbang-timbang sa arkitektura.

Sulud sa sulud – kasagaran namong buhaton para sa mga proyekto sulod sa kompanya. Ang bisan unsang proyekto mahimong mangayo usa ka pagsusi sa arkitektura tungod sa daghang mga hinungdan:

  1. Naghunahuna ang team nga perpekto ang ilang proyekto ug kini kadudahan. Kami adunay ingon nga mga kaso, ug kasagaran sa ingon nga mga proyekto ang tanan dili kaayo maayo.
  2. Gusto sa team nga sulayan ang ilang proyekto ug ang ilang mga solusyon.
  3. Nahibal-an sa team nga daotan ang mga butang. Mahimo pa gani nila nga ilista ang mga nag-unang problema ug hinungdan, apan gusto ang usa ka kompleto nga lista sa mga problema ug rekomendasyon alang sa pagpaayo sa proyekto.

External mas pormal nga proseso kay sa internal assessment. Ang kliyente kanunay nga moabut lamang sa usa ka kaso, kung ang tanan daotan - daotan kaayo. Kasagaran ang kliyente nakasabut nga adunay mga global nga problema, apan dili husto nga mahibal-an ang mga hinungdan ug mabungkag kini sa mga sangkap.

Ang pagtimbang-timbang sa usa ka arkitektura alang sa usa ka eksternal nga kliyente usa ka mas komplikado nga kaso. Ang proseso kinahanglan nga mas pormal. Ang mga proyekto kanunay nga dagko ug karaan. Daghan silag mga problema, mga bug ug hiwi nga code. Ang usa ka report sa trabaho nga nahimo kinahanglan nga andam sa sulod sa pipila ka semana maximum, nga kinahanglan maglakip sa mga nag-unang mga problema ug mga rekomendasyon alang sa kalamboan. Busa, kung atong atubangon ang eksternal nga pagtasa sa proyekto, nan ang internal nga pagtasa mahimong usa ka piraso sa cake. Atong tagdon ang pinakalisud nga kaso.

Pagsusi sa arkitektura sa proyekto sa negosyo

Ang kasagaran nga proyekto nga susihon mao ang usa ka dako, karaan, proyekto sa negosyo nga adunay daghang mga problema. Usa ka kliyente ang mianhi kanamo ug gihangyo kami nga ayohon ang iyang proyekto. Sama kini sa usa ka iceberg, ang kliyente nakakita lamang sa tumoy sa iyang mga problema ug walay ideya kung unsa ang naa sa ilawom sa tubig (sa giladmon sa code).

Ang mga problema nga mahimong ireklamo sa kustomer ug mahimong nahibal-an:

  • Mga Isyu sa Pagganap
  • Mga isyu sa pagkagamit
  • Long-term nga pag-deploy
  • Kakulang sa yunit ug uban pang mga pagsulay

Ang mga problema nga lagmit wala mahibal-an sa kliyente, apan mahimo kini nga naa sa proyekto:

  • Mga problema sa kaluwasan
  • Mga problema sa disenyo
  • Sayop nga arkitektura
  • Mga sayup sa algorithm
  • Dili angay nga mga teknolohiya
  • Teknikal nga utang
  • Sayop nga proseso sa pag-uswag

Pormal nga proseso sa pagrepaso sa arkitektura

Kini usa ka pormal nga proseso nga among gisunod isip usa ka kompanya, apan mahimo nimo kini ipasibo depende sa imong kompanya ug proyekto.

Paghangyo gikan sa usa ka kliyente

Ang kliyente nangutana sa pagtimbang-timbang sa arkitektura sa kasamtangan nga proyekto. Ang responsable nga tawo sa among kiliran nagkolekta sa sukaranan nga kasayuran bahin sa proyekto ug nagpili sa kinahanglan nga mga eksperto. Depende sa proyekto, kini mahimong lahi nga mga eksperto.

Arkitekto sa Solusyon – ang nag-unang tawo nga responsable sa pagtasa ug koordinasyon (ug kasagaran ang usa lamang).
I-stack ang piho nga mga eksperto – .Net, Java, Python, ug uban pang mga teknikal nga espesyalista depende sa proyekto ug mga teknolohiya
Mga eksperto sa panganod – kini mahimong Azure, GCP o AWS cloud architects.
Infrastructure - DevOps, System administrator, ug uban pa.
Ubang mga eksperto - sama sa dagkong datos, pagkat-on sa makina, inhenyero sa pasundayag, eksperto sa seguridad, nanguna sa QA.

Pagkolekta og impormasyon mahitungod sa proyekto

Kinahanglan nga imong kolektahon ang daghang impormasyon kutob sa mahimo bahin sa proyekto. Mahimo nimong gamiton ang lainlaing mga teknik depende sa sitwasyon:

  • Mga pangutana ug uban pang pamaagi sa komunikasyon pinaagi sa koreo. Ang labing dili epektibo nga paagi.
  • Online nga mga miting.
  • Espesyal nga mga himan alang sa pagbayloay og impormasyon sama sa: Google doc, Confluence, repository, etc.
  • "Live" nga mga miting sa site. Ang labing epektibo ug labing mahal nga paagi.

Unsa ang kinahanglan nimong makuha gikan sa kliyente?

Panguna nga impormasyon. Mahitungod sa unsa ang proyekto? Ang katuyoan ug bili niini. Pangunang mga tumong ug mga plano alang sa umaabot. Mga tumong ug estratehiya sa negosyo. Pangunang mga problema ug gitinguha nga mga resulta.

Impormasyon sa proyekto. Technology stack, frameworks, programming language. On-premise o cloud deployment. Kung ang proyekto naa sa panganod, unsang mga serbisyo ang gigamit. Unsang mga pattern sa arkitektura ug disenyo ang gigamit.

Non-functional nga mga kinahanglanon. Ang tanan nga mga kinahanglanon nga may kalabutan sa pasundayag, pagkaanaa, ug kadali sa paggamit sa sistema. Mga kinahanglanon sa kaluwasan, ug uban pa.

Panguna nga mga kaso sa paggamit ug mga agos sa datos.

Pag-access sa source code. Ang labing importante nga bahin! Kinahanglan nga makakuha ka ug access sa mga repositoryo ug dokumentasyon kung giunsa paghimo ang proyekto.

Pag-access sa imprastraktura. Maayo nga adunay access sa entablado o imprastraktura sa produksiyon aron magtrabaho kauban ang live system. Kini usa ka dako nga kalampusan kung ang kliyente adunay mga himan alang sa pag-monitor sa imprastraktura ug pasundayag. Atong hisgotan kini nga mga himan sa sunod nga seksyon.

Документация. Kung ang kliyente adunay dokumentasyon kini usa ka maayong pagsugod. Mahimong karaan na kini, apan maayo gihapon kini nga pagsugod. Ayaw pagsalig sa dokumentasyon - sulayi kini sa kliyente, sa tinuod nga imprastraktura ug sa source code.

Proseso sa Pagtimbang-timbang sa Arkitektura

Sa unsang paagi maproseso sa usa ang ingon ka daghan nga kasayuran sa mubo nga panahon? Una sa tanan, parallelize ang trabaho.

Kinahanglang tan-awon sa DevOps ang imprastraktura. Tech nanguna sa code. Performance engineer aron tan-awon ang performance metrics. Ang usa ka espesyalista sa database kinahanglan nga magkalot sa lawom nga mga istruktura sa datos.

Apan kini usa ka sulundon nga kaso kung ikaw adunay daghang mga kapanguhaan. Kasagaran, usa ngadto sa tulo ka tawo ang nagtimbang-timbang sa usa ka proyekto. Mahimo pa gani nimo nga ipahigayon ang pagbanabana sa imong kaugalingon, nga kasagaran mahitabo kung ikaw adunay tukma nga kahibalo ug kasinatian sa tanang bahin sa proyekto. Sa kini nga kaso, kinahanglan nimo nga i-automate ang tanan nga mga proseso kutob sa mahimo.

Ikasubo, kinahanglan nimo nga basahon ang dokumentasyon nga mano-mano. Uban sa husto nga gidaghanon sa kasinatian, dali nimong masabtan ang kalidad sa dokumentasyon. Unsa ang tinuod ug unsa ang klaro nga dili motakdo sa kamatuoran. Usahay mahimo nimong makita ang arkitektura sa dokumentasyon nga dili gyud molihok sa tinuud nga kinabuhi. Kini usa ka trigger alang kanimo sa paghunahuna kung giunsa kini nahimo sa tinuud sa proyekto.

Mapuslanon nga mga himan aron ma-automate ang pagtimbang-timbang sa proyekto

Ang pagtimbang-timbang sa code usa ka yano nga ehersisyo. Mahimo nimong gamiton ang static code analyzers nga magpakita kanimo sa disenyo, pasundayag, ug mga isyu sa seguridad. Ania ang pipila niini:

Istruktura 101 usa ka maayo nga himan alang sa usa ka arkitekto. Ipakita niini kanimo ang dako nga hulagway, mga dependency tali sa mga module ug potensyal nga mga lugar alang sa refactoring. Sama sa tanan nga maayo nga mga himan, nagkantidad kini og daghang salapi, apan mahimo nimong pahimuslan ang usa ka 30 ka adlaw nga bersyon sa pagsulay.

soundQube - usa ka maayo nga daan nga himan. Usa ka himan alang sa static code analysis. Nagtugot kanimo sa pag-ila sa dili maayo nga code, mga bug, ug mga problema sa seguridad alang sa labaw sa 20 ka mga programming language.

Ang tanan nga cloud providers adunay mga himan sa pagmonitor sa imprastraktura. Kini magtugot kanimo sa husto nga pagtimbang-timbang sa pagka-epektibo sa imong imprastraktura sa mga termino sa gasto ug pasundayag. Alang sa AWS kini kasaligan nga magtatambag. Sayon kini alang sa Azure Azure Advisor.

Ang dugang nga pag-monitor sa pasundayag ug pag-log makatabang sa pagpangita sa mga isyu sa pasundayag sa tanan nga lebel. Sugod gikan sa usa ka database nga adunay dili epektibo nga mga pangutana, ang backend ug nagtapos sa frontend. Bisan kung ang kliyente wala pa naka-install niini nga mga himan kaniadto, mahimo nimo nga i-integrate kini sa naglungtad nga sistema nga dali aron mahibal-an ang mga isyu sa pasundayag.

Sama sa kanunay, maayo nga mga himan ang takus niini. Makarekomendar ko og duha ka bayad nga himan. Siyempre mahimo nimong gamiton ang open-source apan magdugay ka. Ug kini kinahanglan nga buhaton sa unahan, dili sa panahon sa proseso sa pagsusi sa arkitektura.

Bag-ong Relik – usa ka himan alang sa pagtimbang-timbang sa performance sa aplikasyon
datadog - serbisyo sa pag-monitor sa sistema sa panganod

Adunay daghang mga himan nga magamit alang sa pagsulay sa seguridad. Niining higayona irekomenda ko kanimo ang usa ka libre nga himan sa pag-scan sa sistema.

OWASP ZAP - usa ka himan alang sa pag-scan sa mga aplikasyon sa web alang sa pagsunod sa mga sumbanan sa seguridad.

Atong ibutang ang tanan ngadto sa usa ka buok.

Pag-andam ug report

Sugdi ang imong report gamit ang datos nga imong nakolekta gikan sa kliyente. Ihulagway ang mga katuyoan sa proyekto, mga limitasyon, mga kinahanglanon nga dili magamit. Pagkahuman niini, ang tanan nga datos sa pag-input kinahanglan hisgutan: source code, dokumentasyon, imprastraktura.

Sunod nga lakang. Ilista ang bisan unsang mga isyu nga imong nakit-an nga mano-mano o gamit ang awtomatiko nga mga himan. Ibutang ang dagkong auto-generated nga mga taho sa katapusan sa seksyon sa mga aplikasyon. Kinahanglan adunay mubo ug mubo nga ebidensya sa mga problema nga nakit-an.
Unaha ang mga problema nga nakit-an sa sayup, pasidaan, sukod sa impormasyon. Mahimo nimong pilion ang imong kaugalingon nga sukdanan, apan kini ang kasagaran nga gidawat.

Isip usa ka tinuod nga arkitekto, responsibilidad nimo ang paghatag mga rekomendasyon aron matul-id ang mga problema nga nakit-an. Ihulagway ang mga kalamboan ug bili sa negosyo nga madawat sa kustomer. Giunsa pagpakita ang bili sa negosyo gikan sa refactoring sa arkitektura atong gihisgutan sa sayo pa.

Pag-andam og roadmap nga adunay gagmay nga mga pag-uli. Ang matag pag-uli kinahanglan adunay oras sa pagkompleto, paghulagway, kantidad sa mga kahinguhaan nga gikinahanglan alang sa pagpaayo, teknikal nga kantidad ug kantidad sa negosyo.

Gikompleto namo ang pagtasa sa arkitektura ug gihatagan ang kliyente og report

Ayaw na lang magpadala ug report. Mahimong dili kini basahon sa tanan, o mahimong dili basahon ug sabton nga walay hustong katin-awan. Sa laktud, ang live nga komunikasyon makatabang sa pagwagtang sa dili pagsinabtanay tali sa mga tawo. Kinahanglan nga mag-iskedyul ka og miting sa kliyente ug hisgutan ang mga problema nga nakit-an, nga nagpunting sa labing hinungdanon nga mga problema. Angayan nga ipunting ang atensyon sa kliyente sa mga problema nga tingali wala niya nahibal-an. Sama sa mga isyu sa seguridad ug ipasabut kung giunsa kini makaapekto sa negosyo. Ipakita ang imong roadmap nga adunay mga pag-uswag ug hisguti ang lainlaing mga kapilian nga mas angay alang sa kliyente. Kini mahimong panahon, mga kapanguhaan, gidaghanon sa trabaho.

Isip usa ka summary sa imong miting, ipadala ang imong report ngadto sa kliyente.

Sa konklusyon

Ang pagsusi sa arkitektura usa ka komplikado nga proseso. Aron mapahigayon ang assessment sa hustong paagi kinahanglan ka nga adunay igong kasinatian ug kahibalo.

Posible nga mahatagan ang kliyente og mga resulta nga mapuslanon alang kaniya ug sa iyang negosyo sa usa lang ka semana. Bisag mag-inusara ka.

Pinasukad sa akong kasinatian, daghang mga pag-uswag ang na-download sa tunga, ug usahay wala magsugod. Kadtong nagpili sa bulawan nga kahulogan alang sa ilang kaugalingon ug naghimo lamang nga bahin sa mga pag-uswag nga labing mapuslanon alang sa negosyo nga adunay gamay nga gasto sa pagtrabaho labi nga nagpauswag sa kalidad sa ilang produkto. Kadtong wala’y nahimo mahimo’g tapuson ang proyekto pagkahuman sa pila ka tuig.

Ang imong katuyoan mao ang pagpakita sa kliyente nga labing kadaghan nga pag-uswag alang sa labing gamay nga presyo.

Ang ubang mga artikulo gikan sa seksyon arkitektura makabasa ka sa imong kalingawan.

Nanghinaut ko nga limpyo ka nga code ug maayong mga desisyon sa arkitektura.

Ang among facebook group - Arkitektura ug Pag-uswag sa Software.

Source: www.habr.com

Idugang sa usa ka comment