Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Atong hisgotan ngano nga ang mga gamit sa CI ug ang CI lahi kaayo nga mga butang.

Unsa nga kasakit ang gituyo sa CI nga sulbaron, diin gikan ang ideya, unsa ang pinakabag-o nga mga pagkumpirma nga kini molihok, kung giunsa nimo masabtan nga ikaw adunay praktis ug dili lang gi-install ang Jenkins.

Ang ideya sa paghimo og usa ka taho bahin sa Padayon nga Paghiusa nagpakita usa ka tuig ang milabay, sa dihang ako moadto alang sa mga interbyu ug nangita usa ka trabaho. Nakigsulti ko sa 10-15 nga mga kompanya, usa ra kanila ang nakatubag nga klaro kung unsa ang CI ug gipatin-aw kung giunsa nila nahibal-an nga wala nila kini. Ang uban nagsulti nga dili masabtan nga walay pulos bahin kang Jenkins :) Aw, kami adunay Jenkins, kini nagtukod, CI! Atol sa taho, sulayan nako nga ipasabut kung unsa gyud ang Padayon nga Paghiusa ug ngano nga ang Jenkins ug parehas nga mga himan adunay huyang nga relasyon niini.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Busa, unsa ang kasagaran nga mosantop sa imong hunahuna kung makadungog ka sa pulong nga CI? Kadaghanan sa mga tawo maghunahuna sa Jenkins, Gitlab CI, Travis, ug uban pa.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Bisan kung atong i-google kini, hatagan kita niini nga mga himan.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Kung pamilyar ka sa pagpangutana, dayon pagkahuman sa paglista sa mga himan, isulti nila kanimo nga ang CI kung magtukod ka ug magpadagan sa mga pagsulay sa usa ka Paghangyo sa Pagbitad alang sa usa ka pasalig.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Ang Padayon nga Paghiusa dili bahin sa mga himan, dili bahin sa mga asembliya nga adunay mga pagsulay sa usa ka sanga! Ang Continuous Integration mao ang praktis sa kanunay nga pag-integrate sa bag-ong code ug ang paggamit niini dili na kinahanglan nga koral ang Jenkins, GitLab, ug uban pa.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Sa dili pa nato hibal-an kung unsa ang hitsura sa usa ka hingpit nga CI, susihon una nato ang konteksto sa mga tawo nga nakahunahuna niini ug gibati ang kasakit nga ilang gipaningkamotan nga masulbad.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Ug ilang nasulbad ang kasakit sa pagtrabaho nga magkauban isip usa ka team!

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Atong tan-awon ang mga pananglitan sa mga kalisdanan nga giatubang sa mga developer kung nag-develop sa mga team. Dinhi kami adunay usa ka proyekto, usa ka master branch sa git ug duha ka developer.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Ug miadto sila sa trabaho sama sa dugay nang naandan sa tanan. Naghimo kami usa ka buluhaton sa dagkong laraw sa mga butang, naghimo usa ka bahin nga sanga, ug gisulat ang code.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Mas paspas nga nahuman sa usa ang bahin ug gisagol kini sa master.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Ang ikaduha nagkinahanglan og dugang nga panahon, kini nahiusa sa ulahi ug natapos sa usa ka panagbangi. Karon, imbes nga isulat ang mga bahin nga gikinahanglan sa negosyo, ang developer naggugol sa iyang oras ug kusog sa pagsulbad sa mga panagbangi.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Ang mas lisud nga paghiusa sa imong feature sa usa ka komon nga agalon, mas daghang oras ang among gigugol niini. Ug gipakita nako kini sa usa ka yano nga pananglitan. Kini usa ka pananglitan diin adunay mga developer lamang nga 2. Hunahunaa kung ang 10 o 15 o 100 nga mga tawo sa usa ka kompanya nagsulat sa usa ka repository. Mabuang ka aron masulbad kining tanan nga mga panagbangi.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Adunay usa ka gamay nga lahi nga kaso. Kami adunay usa ka agalon ug pipila ka mga developer nga nagbuhat sa usa ka butang.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Naghimo sila og usa ka sanga.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Ang usa namatay, maayo ang tanan, gipasa niya ang buluhaton.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Ang ikaduhang developer, sa laing bahin, mitunol sa iyang buluhaton. Ingnon ta nga gipadala niya kini alang sa pagsusi. Daghang mga kompanya ang adunay praktis nga gitawag nga pagrepaso. Sa usa ka bahin, kini nga praktis maayo ug mapuslanon, sa laing bahin, kini nagpahinay kanato sa daghang mga paagi. Dili kami moadto niana, apan ania ang usa ka maayong panig-ingnan kung unsa ang mahimong hinungdan sa usa ka dili maayo nga istorya sa pagrepaso. Nagsumite ka usa ka hangyo sa pagbitad alang sa pagsusi. Wala nay laing mahimo ang developer. Unsa may iyang sugdan pagbuhat? Nagsugod siya sa paghimo sa ubang mga buluhaton.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Atol niini nga panahon, ang ikaduha nga developer naghimo sa lain nga butang.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Nakompleto sa una ang ikatulo nga buluhaton.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Ug pagkahuman sa dugay nga panahon, gisulayan ang iyang pagrepaso, ug naningkamot siya nga magkauyon. Busa unsa ang nahitabo? Nakuha niini ang daghang mga panagbangi. Ngano man? Tungod kay samtang ang iyang hangyo sa pagbitad nagbitay sa pagsusi, daghang mga butang ang nausab sa code.

Dugang pa sa istorya nga adunay mga panagbangi, adunay usa ka istorya nga adunay mga komunikasyon. Samtang ang imong thread nagbitay sa pagrepaso, samtang naghulat kini sa usa ka butang, samtang nagtrabaho ka sa usa ka bahin sa dugay nga panahon, mihunong ka sa pagsubay kung unsa pa ang nagbag-o sa code base sa imong serbisyo. Tingali kung unsa ang imong gipaningkamutan nga sulbaron karon nasulbad na kagahapon ug mahimo nimong gamiton ang pipila ka pamaagi ug magamit kini pag-usab. Apan dili nimo kini makita tungod kay kanunay ka nagtrabaho sa usa ka karaan nga sanga. Ug kining karaan nga sanga kanunay nga moresulta nga kinahanglan nimong sulbaron ang usa ka panagbangi sa panagsama.

Mopatim-aw nga kung kita magtrabaho isip usa ka team, i.e., dili usa ka tawo ang nag-poking sa palibot sa repository, apan 5-10 ka mga tawo, nan kung mas dugay nga wala naton idugang ang among code sa agalon, labi nga nag-antos kami tungod kay sa katapusan kinahanglan namon. usa ka butang unya i-merge kini. Ug ang mas daghang mga panagbangi nga naa namo, ug ang mas daan nga bersyon nga among gitrabahoan, mas daghan ang among mga problema.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Sakit ang pagbuhat ug butang nga magkauban! Pirme mi mag babag sa usag usa.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Kini nga problema namatikdan kapin sa 20 ka tuig ang milabay. Akong nakit-an ang una nga paghisgot sa praktis sa Padayon nga Paghiusa sa Extreme Programming.

Ang Extreme Programming mao ang una nga agile framework. Ang panid nagpakita sa 96. Ug ang ideya mao ang paggamit sa usa ka matang sa mga gawi sa pagprograma, pagplano ug uban pang mga butang, aron ang pag-uswag mahimong labi ka dali kutob sa mahimo, aron dali kami makatubag sa bisan unsang mga pagbag-o o kinahanglanon gikan sa among mga kliyente. Ug nagsugod sila sa pag-atubang niini 24 ka tuig na ang milabay, nga kung buhaton nimo ang usa ka butang sa dugay nga panahon ug sa kilid, nan mogahin ka og daghang oras niini tungod kay adunay mga panagbangi.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Karon atong analisahon ang hugpong sa mga pulong nga "Padayon nga Paghiusa" sa tinagsa. Kung direkta namon nga hubaron kini, makakuha kami padayon nga panagsama. Apan kung unsa kini ka padayon dili kaayo klaro; kini dili kaayo padayon. Apan kung unsa kadaghan ang panagsama niini dili usab klaro.

Ug mao nga gihatagan ko ikaw mga kinutlo gikan sa Extreme Programming karon. Ug atong analisahon ang duha ka pulong nga gilain.

Integration - Sama sa ako nang giingon, naningkamot kami sa pagsiguro nga ang matag inhenyero nagtrabaho sa pinakabag-o nga bersyon sa code, aron siya maningkamot sa pagdugang sa iyang code sa kanunay kutob sa mahimo ngadto sa usa ka komon nga sanga, aron kini mga gagmay nga mga sanga. Kay kon dako sila, dali ra tang ma-stuck sa merge conflict sulod sa usa ka semana. Tinuod kini ilabi na kung kita adunay taas nga siklo sa pag-uswag sama sa talon, diin ang developer milakaw sulod sa usa ka bulan aron putlon ang pipila ka dako nga bahin. Ug siya maipit sa yugto sa panagsama sa dugay nga panahon.

Ang paghiusa mao kung gikuha namon ang among sanga ug gihiusa kini sa agalon, among gihiusa kini. Adunay usa ka katapusan nga kapilian kung kami usa ka transbase developer, diin kami naningkamot sa pagsiguro nga kami mosulat dayon sa agalon nga wala’y dugang nga mga sanga.

Sa kinatibuk-an, ang integration nagpasabot sa pagkuha sa imong code ug pag-drag niini ngadto sa master.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Unsa ang gipasabot dinhi sa pulong nga "padayon", unsa ang gitawag nga pagpadayon? Ang praktis nagpasabot nga ang developer naningkamot sa pag-integrate sa iyang code sa labing madali nga panahon. Mao kini ang iyang tumong sa pagbuhat sa bisan unsa nga buluhaton - sa pagkuha sa iyang code ngadto sa agalon sa labing madali. Sa usa ka sulundon nga kalibutan, buhaton kini sa mga developer matag pipila ka oras. Kana mao, gikuha nimo ang usa ka gamay nga problema ug gihiusa kini sa agalon. Maayo ang tanan. Kini ang imong gipaningkamotan. Ug kini kinahanglan nga buhaton kanunay. Sa diha nga ikaw makahimo sa usa ka butang, imo dayon kining ibutang sa agalon.

Ug ang developer nga naghimo sa usa ka butang ang responsable sa iyang gibuhat aron kini molihok ug dili makaguba sa bisan unsang butang. Dinhi kasagaran mogawas ang istorya sa pagsulay. Gusto namon nga modagan ang pipila ka mga pagsulay sa among pasalig, sa among paghiusa, aron masiguro nga kini molihok. Ug dinhi makatabang kanimo si Jenkins.

Apan sa mga istorya: himoon nato nga gamay ang mga pagbag-o, pasagdi nga gamay ang mga buluhaton, maghimo kita og problema ug sulayan dayon nga i-embed kini sa agalon - walay Jenkins nga makatabang dinhi. Tungod kay ang Jenkins motabang ra kanimo sa pagpadagan sa mga pagsulay.

Mahimo nimo nga wala sila. Kini dili gayud makadaot kanimo. Tungod kay ang tumong sa praktis mao ang pagsukod sa kanunay kutob sa mahimo, aron dili mag-usik ug dako nga panahon sa bisan unsang panagbangi sa umaabot.

Atong hunahunaon nga sa usa ka rason nga kita sa 2020 nga walay Internet. Ug kami nagtrabaho sa lokal. Wala mi si Jenkins. Maayo kini. Mahimo ka pa nga magpadayon ug maghimo usa ka lokal nga sanga. Gisulat nimo ang pipila ka code niini. Nakompleto namo ang buluhaton sulod sa 3-4 ka oras. Mibalhin mi sa master, mihimo og git pull, ug gihiusa ang among branch didto. Andam. Kung buhaton nimo kini kanunay, pahalipay, ikaw adunay Padayon nga Paghiusa!

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Unsang ebidensiya sa modernong kalibotan ang anaa nga takos ang paggasto ug kusog? Tungod kay sa kinatibuk-an kini lisud. Kung maningkamot ka nga magtrabaho sama niini, imong masabtan nga ang pipila ka mga pagplano karon maapektuhan, kinahanglan nimo nga igugol ang dugang nga oras sa madunot nga mga buluhaton. Tungod kay kung buhaton nimo ang tawo ..., nan dili ka dali nga magkasinabot ug, sumala niana, magkagubot. Wala ka nay praktis.

Ug kini mahimong mahal. Dili mahimo nga magtrabaho dayon gikan ugma gamit ang Padayon nga Paghiusa. Dugay kaayo kamong tanan aron maanad niini, dugay ka nga maanad sa pagkadunot nga mga buluhaton, dugay kaayo nga maanad sa pag-usab sa praktis sa pagrepaso, kung naa kay usa . Kay ang atong tumong mao nga kini matunaw karon. Ug kung maghimo ka usa ka pagrepaso sa sulod sa tulo ka adlaw, nan adunay ka mga problema ug ang Padayon nga Paghiusa dili molihok alang kanimo.

Apan aduna ba kita'y bisan unsa nga may kalabutan nga ebidensya karon nga nagsulti kanato nga ang pagpamuhunan niini nga praktis makatarunganon?

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Ang unang butang nga misantop sa akong hunahuna mao ang State of DevOps. Kini usa ka pagtuon nga gihimo sa mga lalaki sulod sa 7 ka tuig. Karon gibuhat nila kini isip usa ka independenteng organisasyon, apan ubos sa Google.

Ug ang ilang 2018 nga pagtuon nagpakita sa usa ka correlation tali sa mga kompanya nga misulay sa paggamit sa mubo nga kinabuhi nga mga sanga nga dali nga nag-integrate, kanunay nga nag-integrate, ug adunay mas maayo nga IT performance indicators.

Unsa kini nga mga timailhan? Kini ang 4 nga mga sukatan nga ilang gikuha gikan sa tanan nga mga kompanya sa ilang mga pangutana: frequency sa pag-deploy, oras sa paggiya alang sa mga pagbag-o, oras sa pagpahiuli sa serbisyo, pagbag-o sa rate sa kapakyasan.

Ug, una, adunay kini nga correlation, nahibal-an namon nga ang mga kompanya nga kanunay nga nagsukod adunay labi ka maayo nga sukatan. Ug sila adunay usa ka dibisyon sa mga kompanya sa daghang mga kategorya: kini ang mga hinay nga kompanya nga naghimo sa usa ka butang nga hinay, medium performer, high performer ug elite. Ang mga elite mao ang Netflix, Amazon, nga labi ka paspas, buhaton ang tanan nga dali, matahum ug episyente.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Ang ikaduhang istorya, nga nahitabo usa lang ka bulan ang milabay. Ang Technology Radar adunay usa ka maayo nga artikulo bahin sa Gitflow. Ang Gitflow lahi sa tanan tungod kay ang mga sanga niini dugay na nga nabuhi. Adunay mga sanga sa pagpagawas nga nabuhi sa dugay nga panahon, ug adunay mga sanga nga nabuhi usab sa dugay nga panahon. Kini nga praktis sa Technology Radar mibalhin sa HOLD. Ngano man? Tungod kay ang mga tawo nag-atubang sa kasakit sa panaghiusa.

Kung ang imong sanga mabuhi sa dugay nga panahon, kini ma-stuck, madunot, ug magsugod kami sa paggahin og daghang oras sa pagsulay sa paghimo og usa ka matang sa pagbag-o niini.

Ug bag-o lang ang tagsulat sa Gitflow miingon nga kung ang imong katuyoan mao ang Padayon nga Paghiusa, kung ang imong katuyoan mao nga gusto nimo nga mag-roll kanunay kutob sa mahimo, nan ang Gitflow usa ka dili maayo nga ideya. Gilain niya nga gidugang sa artikulo nga kung ikaw adunay usa ka backend diin mahimo nimo nga maningkamot alang niini, nan ang Gitflow dili kinahanglan alang kanimo, tungod kay ang Gitflow magpahinay kanimo, ang Gitflow maghimo mga problema alang kanimo nga adunay panagsama.

Wala kini magpasabot nga ang Gitflow dili maayo ug dili angay gamiton. Kini alang sa ubang mga okasyon. Pananglitan, kung kinahanglan nimo nga suportahan ang daghang mga bersyon sa usa ka serbisyo o aplikasyon, i.e. kung diin kinahanglan nimo ang suporta sa taas nga yugto sa panahon.

Apan kung makigsulti ka sa mga tawo nga nagsuporta sa ingon nga mga serbisyo, madungog nimo ang daghang kasakit bahin sa kamatuoran nga kini nga bersyon 3.2, nga 4 ka bulan ang milabay, apan kini nga pag-ayo wala gilakip niini ug karon, aron mahimo kini, kinahanglan nimo nga maghimo usa ka hugpong sa mga pagbag-o. Ug karon natanggong na usab sila, ug karon naglibot-libot sila sulod sa usa ka semana nga naningkamot sa pagpatuman sa pipila ka bag-ong bahin.

Sama sa husto nga giingon ni Alexander Kovalev sa chat, ang correlation dili parehas sa hinungdan. Tinuod kini. Sa ato pa, walay direkta nga koneksyon nga kung ikaw adunay Padayon nga Paghiusa, nan ang tanan nga mga sukatan mahimong maayo. Apan adunay usa ka positibo nga correlation nga kung ang usa usa, nan lagmit ang lain mao usab. Dili usa ka kamatuoran, apan lagmit. Kini usa lamang ka correlation.

Padayon nga Paghiusa isip usa ka praktis, dili Jenkins. Andrey Alexandrov

Murag naa na tay ginabuhat, murag nag merge na mi, pero unsaon man nato pagsabot nga naa pa tay Continuous Integration, medyo nag merge na mi?

Si Jez Humble mao ang tagsulat sa Handbook, Accelerate, ang Continuous Delivery website, ug ang libro nga Continuous Delivery. Gitanyag niya kini nga pagsulay:

  • Ang kodigo sa inhenyero moabot sa agalon kada adlaw.
  • Alang sa matag pasalig nga imong gipadagan ang mga pagsulay sa yunit.
  • Ang pagtukod sa agalon nahulog, kini giayo sa mga 10 minuto.

Gisugyot niya ang paggamit sa usa ka pagsulay nga sama niini aron masiguro nga adunay ka igo nga praktis.

Akong nakita nga ang ulahi medyo kontrobersyal. Kana mao, kung mahimo nimo kini ayohon sa 10 minuto, nan ikaw adunay Padayon nga Paghiusa, kini medyo katingad-an, sa akong opinyon, apan kini makatarunganon. Ngano man? Kay kung mag-freeze ka kanunay, nagpasabot nga gamay ra ang imong mga kausaban. Kung ang usa ka gamay nga pagbag-o nagpasabut nga ang imong master nga pagtukod nabuak, nan makit-an nimo dayon ang usa ka pananglitan tungod kay gamay ra ang pagbag-o. Dinhi ikaw adunay usa ka gamay nga panagsama, 20-30 ka linya niini nausab. Ug, sumala niana, dali nimong masabtan kung unsa ang hinungdan, tungod kay ang mga pagbag-o gamay ra, adunay ka gamay nga lugar aron pangitaon ang problema.

Ug bisan kung ang among prod nahulog pagkahuman sa pagpagawas, kung kami adunay praktis sa Continuous Integration, labi ka dali alang kanamo nga molihok, tungod kay ang mga pagbag-o gamay ra. Oo, kini makaapekto sa pagplano. Makasakit kini. Ug, tingali, ang labing lisud nga butang sa kini nga praktis mao ang pag-anad sa pagbungkag sa mga buluhaton, nga mao, kung giunsa kini buhaton aron mahimo nimo ang usa ka butang ug buhaton kini sa pipila ka oras ug sa parehas nga oras ipasa ang usa ka pagrepaso, kung naa kay usa. Ang pagrepaso kay lahi nga kasakit.

Ang mga pagsulay sa yunit usa lamang ka katabang nga makatabang kanimo nga masabtan kung malampuson ang imong panagsama ug kung wala’y nabuak. Sa akong opinyon, dili usab kini hingpit nga mandatory, tungod kay dili kini ang punto sa praktis.

Kini usa ka mubo nga pasiuna sa Padayon nga Paghiusa. Mao ra kana ang naa sa kini nga praktis. Andam na ko sa mga pangutana.

I-summarize lang nako pag-usab:

  • Ang Padayon nga Paghiusa dili Jenkins, dili Gitlab.
  • Dili kini usa ka himan, kini usa ka praktis nga gihiusa namon ang among code sa agalon sa kanunay kutob sa mahimo.
  • Gibuhat nato kini aron malikayan ang grabeng kasakit nga motumaw sa mga panagsama sa umaabot, sa ato pa, makasinati kita og gamay nga kasakit karon aron dili na makasinati og dugang sa umaabot. Mao na ang tibuok punto.
  • Sa kilid adunay komunikasyon pinaagi sa code, apan panagsa ra nako kini makita, apan kini usab ang gidisenyo alang niini.

Ang imong mga pangutana

Unsa ang buhaton sa dili madunot nga mga buluhaton?

Madugta. Unsay problema? Makahatag ka ba ug pananglitan nga adunay buluhaton ug wala kini madunot?

Adunay mga buluhaton nga dili madugta gikan sa pulong nga "bug-os", pananglitan, kadtong nanginahanglan labi ka lawom nga kahanas ug mahimo ra nga masulbad sa usa ka bulan aron makab-ot ang usa ka matunaw nga sangputanan.

Kung nasabtan ko ikaw sa husto, nan adunay usa ka dako ug komplikado nga buluhaton, ang resulta nga makita ra sa usa ka bulan?

Oo nga tama. Oo, posible nga susihon ang resulta nga dili sayo kaysa sa usa ka bulan.

Maayo. Sa kinatibuk-an dili kini problema. Ngano man? Tungod kay sa kini nga kaso, kung maghisgot kami bahin sa mga sanga, wala kami maghisgot bahin sa usa ka sanga nga adunay bahin. Ang mga bahin mahimong dako ug komplikado. Mahimo silang makaapekto sa daghang mga sangkap. Ug tingali dili nato kini mahimo sa hingpit sa usa ka sanga. Maayo kini. Kinahanglan lang natong bungkagon kini nga istorya. Kung ang usa ka bahin dili pa hingpit nga andam, wala kini magpasabut nga ang pipila ka mga piraso sa code niini dili mahimong i-merge. Gidugang nimo, ingnon ta, paglalin ug adunay pipila ka mga yugto sa sulod sa bahin. Ingnon ta nga ikaw adunay usa ka yugto - paghimo usa ka paglalin, pagdugang usa ka bag-ong pamaagi. Ug masukod na nimo kining mga butanga kada adlaw.

Maayo. Unsa man diay ang punto?

Unsa man ang katuyoan sa pagpatay sa gagmay nga mga butang matag adlaw?

Oo.

Kung nabuak nila ang usa ka butang, makita nimo kini dayon. Adunay ka gamay nga piraso nga nakaguba sa usa ka butang, mas sayon ​​​​alang kanimo ang pag-ayo niini. Ang punto mao nga ang paghiusa sa usa ka gamay nga piraso karon labi ka dali kaysa paghiusa sa usa ka butang nga dako sa pipila ka semana. Ug ang ikatulo nga punto mao nga ang ubang mga inhenyero magtrabaho kauban ang karon nga bersyon sa code. Ilang makita nga ang pipila ka mga paglalin gidugang dinhi, ug unya ang pipila ka paagi nagpakita nga mahimo usab nilang gamiton. Makita sa tanan kung unsa ang nahitabo sa imong code. Alang niining tulo ka mga butang nga ang praktis gihimo.

Salamat, natapos na ang isyu!

(Oleg Soroka) Mahimo ba nako idugang? Gisulti nimo ang tanan nga husto, gusto ko nga magdugang usa ka hugpong sa mga pulong.

Busa.

Uban sa Padayon nga Paghiusa, ang code gihiusa sa usa ka sagad nga sanga dili kung ang bahin andam na, apan kung ang pagtukod mihunong sa pagguba. Ug mahimo ka nga luwas nga mopasalig sa pag-master sa daghang beses sa usa ka adlaw nga gusto nimo. Ang ikaduha nga aspeto mao nga kung sa usa ka hinungdan dili nimo mabungkag ang binulan nga buluhaton sa mga buluhaton sa labing menos tulo ka adlaw, nagpakahilom ako mga tulo ka oras, nan ikaw adunay usa ka dako nga problema. Ug ang kamatuoran nga wala kay Padayon nga Paghiusa mao ang pinakagamay niini nga mga problema. Kini nagpasabut nga ikaw adunay mga problema sa arkitektura ug mga zero engineering practices. Tungod kay bisan kung kini panukiduki, nan sa bisan unsang kaso kinahanglan kini nga maporma sa porma sa mga pangagpas o usa ka siklo.

Naghisgot kami bahin sa 4 nga mga sukatan nga nagpalahi sa malampuson nga mga kompanya gikan sa mga lagging. Kinahanglan pa namon nga mabuhi aron makita kini nga 4 nga sukatan. Kung ang imong kasagaran nga buluhaton nagkinahanglan og usa ka bulan aron makompleto, nan ako mag-focus una niini nga metric. Ipaubos ko kini sa 3 ka adlaw una. Ug pagkahuman nagsugod ako sa paghunahuna bahin sa Padayon.

Nakasabot ba ko nimo sa husto nga imong gihunahuna nga sa kinatibuk-an walay kapuslanan ang pagpamuhunan sa mga praktis sa inhenyero kung ang bisan unsang buluhaton nagkinahanglan og usa ka bulan aron makompleto?

Ikaw adunay Padayon nga Paghiusa. Ug adunay ingon nga usa ka hilisgutan nga sa 10 minuto mahimo nimo nga ayohon ang usa ka pag-ayo o ibalik kini. Hunahunaa nga imong gilukot kini. Dugang pa, aduna ka'y ​​​​padayon nga pag-deploy, imong gilukot kini sa pag-prod ug unya namatikdan nga adunay sayup. Ug kinahanglan nimo nga ibalik kini, apan nabalhin na nimo ang imong database. Naa na nimo ang database schema sa sunod nga bersyon, dugang pa, ikaw usab adunay usa ka matang sa backup, ug ang data gisulat usab didto.

Ug unsa ang imong alternatibo? Kung imong ibalik ang code, dili na kini magamit sa kini nga gi-update nga database.

Ang base nag-uswag lang, oo.

Ang mga tawo nga adunay dili maayo nga mga gawi sa inhenyero lagmit wala makabasa sa baga nga libro bahin sa ... bisan. Unsay buhaton sa backup? Kung ibalik nimo gikan sa usa ka backup, kini nagpasabut nga nawala nimo ang datos nga imong natipon sa kana nga higayon. Pananglitan, nagtrabaho kami sulod sa tulo ka oras sa bag-ong bersyon sa database, ang mga tiggamit nagparehistro didto. Gibalibaran nimo ang daan nga backup tungod kay ang laraw dili molihok sa bag-ong bersyon, mao nga nawala nimo kini nga mga tiggamit. Ug sila wala matagbaw, sila nanumpa.

Aron ma-master ang tibuuk nga mga praktis nga nagsuporta sa Padayon nga Paghiusa ug Padayon nga Paghatud, dili igo nga makat-on lang unsaon pagsulat.... Una, mahimo nga daghan kanila, kini mahimong dili praktikal. Dugang pa adunay usa ka hugpong sa ubang mga buhat sama sa Scientific. Adunay ingon nga praktis, gipopular kini sa GitHub sa usa ka higayon. Kini kung ikaw adunay daan nga code ug bag-ong code nga nagdagan sa parehas nga oras. Kini kung maghimo ka usa ka wala mahuman nga bahin, apan mahimo’g ibalik ang pila ka kantidad: mahimo’g usa ka function o ingon usa ka Rest API. Imong gipatuman ang bag-ong code ug ang daan nga code, ug itandi ang kalainan tali kanila. Ug kung adunay kalainan, nan imong i-log kini nga panghitabo. Niining paagiha nahibal-an nimo nga ikaw adunay usa ka bag-ong bahin nga andam nga ilunsad sa ibabaw sa daan kung wala ka'y ​​kalainan tali sa duha sa usa ka piho nga oras.

Adunay gatusan sa ingon nga mga buhat. Mosugyot ko nga magsugod sa transbase development. Dili siya 100% sa Padayon nga Paghiusa, apan ang mga gawi parehas, ang usa dili mabuhi nga maayo kung wala ang lain.

Gihatagan ba nimo ang pagpauswag sa transbase isip usa ka pananglitan diin makita nimo ang mga praktis o gisugyot ba nimo ang mga tawo nga magsugod sa paggamit sa transbase debelopment?

Tan-awa, tungod kay dili nila kini magamit. Aron magamit kini, kinahanglan nimo nga magbasa og daghan. Ug kung mangutana ang usa ka tawo: "Unsa ang buhaton sa usa ka bahin nga molungtad usa ka bulan, kini nagpasabut nga wala siya makabasa bahin sa pagpalambo sa transbase." Dili pa ko morekomendar niini. Motambag ko nga mag-focus lamang sa hilisgutan kung giunsa ang husto nga pagbungkag sa mga dagkong buluhaton sa arkitektura ngadto sa gagmay nga mga buluhaton. Kini ang esensya sa pagkadunot.

Ang pagkadunot maoy usa sa mga himan sa arkitekto. Nag-una kami sa pag-analisar, pagkahuman sa pagkadunot, pagkahuman sa synthesis, pagkahuman sa paghiusa. Ug ingon niini kung giunsa ang tanan molihok alang kanamo. Ug kinahanglan pa natong motubo ngadto sa Padayon nga Paghiusa pinaagi sa pagkadunot. Ang mga pangutana mitungha sa unang yugto, ug naghisgot na kita bahin sa ikaupat nga yugto, i.e. kon mas kanunay natong himoon ang integrasyon, mas maayo. Sayo pa kaayo aron buhaton kini; maayo nga putlon una ang imong monolith.

Kinahanglan ka nga magdrowing og daghang mga pana ug mga kwadro sa pipila ka diagram. Dili nimo masulti nga karon ipakita nako ang diagram sa arkitektura sa usa ka bag-ong aplikasyon ug ipakita ang usa ka square, sa sulod adunay usa ka berde nga buton alang sa aplikasyon. Sa bisan unsang kaso, adunay daghang mga kwadro ug mga pana. Ang matag diagram nga akong nakita adunay labaw pa sa usa. Ug ang pagkadunot, bisan sa lebel sa graphical nga representasyon, nahitabo na. Busa, ang mga kwadro mahimo nga independente. Kung dili, nan ako adunay daghang mga pangutana alang sa arkitekto.

Adunay usa ka pangutana gikan sa chat: "Kung ang usa ka pagrepaso gikinahanglan ug dugay, tingali usa ka adlaw o labaw pa?"

Naa kay problema sa praktis. Ang pagrepaso kinahanglang dili molungtad ug usa ka adlaw o labaw pa. Kini mao ang sama nga istorya sa miaging pangutana, lamang sa usa ka gamay nga hinay. Kung ang usa ka pagrepaso magpadayon sa usa ka adlaw, nan lagmit nga kini nga pagrepaso nagpadayon sa usa ka dako kaayo nga pagbag-o. Kini nagpasabot nga kini kinahanglan nga himoon nga mas gamay. Sa pag-uswag sa transbase, nga girekomenda ni Oleg, adunay usa ka istorya nga gitawag nga padayon nga pagrepaso. Ang iyang ideya mao nga naghimo kami og ingon ka gamay nga hangyo sa pagbitad sa katuyoan, tungod kay kami naningkamot sa paghiusa kanunay ug gamay sa usa ka higayon. Ug mao nga ang hangyo sa pagbitad nagbag-o sa usa ka abstraction o 10 ka linya. Salamat sa kini nga pagrepaso, magkinahanglan kami og pipila ka minuto.

Kung ang pagrepaso nagkinahanglan og usa ka adlaw o labaw pa, adunay sayup. Una, tingali adunay mga problema sa arkitektura. O kini usa ka dako nga piraso sa code, 1 ka linya, pananglitan. O ang imong arkitektura komplikado kaayo nga ang usa ka tawo dili makasabut niini. Kini usa ka gamay nga sideway nga problema, apan kini kinahanglan usab nga sulbaron. Tingali wala na kinahanglana ang pagrepaso. Kinahanglan usab natong hunahunaon kini. Ang pagrepaso mao ang butang nga nagpahinay kanimo. Kini adunay mga bentaha sa kinatibuk-an, apan kinahanglan nimo nga masabtan kung nganong imong gibuhat kini. Kini ba usa ka paagi alang kanimo sa dali nga paghatud sa kasayuran, kini ba usa ka paagi aron mabutang nimo ang pipila nga mga sumbanan sa sulod o unsa? Nganong kinahanglan nimo kini? Tungod kay ang pagrepaso kinahanglan nga buhaton bisan kadali o kanselahon sa hingpit. Kini sama sa transbase nga pag-uswag - ang istorya nindot kaayo, apan alang lamang sa mga hamtong nga lalaki.

Mahitungod sa 4 nga mga sukatan, irekomenda gihapon nako nga tangtangon kini aron masabtan kung unsa ang hinungdan niini. Tan-awa ang mga numero, tan-awa ang litrato, kung unsa ka daotan ang tanan.

(Dmitry) Andam ako nga mosulod sa usa ka panaghisgot bahin niini uban kanimo. Ang mga numero ug mga sukatan tanan maayo, ang mga praktis maayo. Apan kinahanglan nimong masabtan kung gikinahanglan ba kini sa negosyo. Adunay mga negosyo nga wala magkinahanglan sa ingon nga katulin sa pagbag-o. Nahibal-an ko ang mga kompanya diin ang mga pagbag-o dili mahimo matag 15 minuto. Ug dili tungod kay sila daotan kaayo. Kini usa ka siklo sa kinabuhi. Ug aron mahimo ang mga sanga nga bahin, ang toggle nga bahin, kinahanglan nimo ang lawom nga kahibalo.

Kini komplikado. Kung gusto nimo basahon ang istorya bahin sa toggle nga bahin sa mas detalyado, girekomenda ko kini https://trunkbaseddevelopment.com/. Ug adunay nindot nga artikulo ni Martin Fowler mahitungod sa toggle features: unsa nga matang ang anaa, mga siklo sa kinabuhi, ug uban pa. Ang toggle feature komplikado.

Ug wala pa nimo matubag ang pangutana: "Kinahanglan ba si Jenkins o dili?"

Jenkins dili kinahanglan sa bisan unsa nga kaso gayud. Seryoso bisan pa, ang mga himan: Jenkins, Gitlab magdala kanimo kasayon. Imong makita nga ang asembliya gitigom o wala gitigom. Makatabang sila kanimo, apan dili ka nila hatagan og praktis. Makahatag lang sila nimo ug lingin - Ok, dili Ok. Ug unya, kung nagsulat ka usab sa mga pagsulay, tungod kay kung wala’y mga pagsulay, nan kini hapit wala’y kapuslanan. Busa, gikinahanglan kini tungod kay kini mas sayon, apan sa kinatibuk-an mahimo ka nga mabuhi nga wala kini, dili ka mawad-an og daghan.

Sa ato pa, kung naa kay mga praktis, nagpasabot ba kana nga dili nimo kini kinahanglan?

Sakto gyud. Girekomenda nako ang Jez Humble nga pagsulay. Didto ako adunay usa ka ambivalent nga kinaiya sa katapusan nga punto. Apan sa kinatibuk-an, kung adunay ka tulo nga mga butang, kanunay ka nga naghiusa, nagpadagan ka mga pagsulay sa mga commit sa agalon, dali nimo nga ayohon ang pagtukod sa agalon, unya tingali wala ka magkinahanglan bisan unsa pa.

Samtang naghulat kami sa mga pangutana sa mga partisipante, naa koy pangutana. Naghisgot lang kami bahin sa code sa produkto. Gigamit ba nimo kini alang sa code sa imprastraktura? Parehas ba kini nga code, parehas ba kini nga mga prinsipyo ug parehas nga siklo sa kinabuhi, o adunay lainlaing mga siklo sa kinabuhi ug mga prinsipyo? Kasagaran, kung ang tanan maghisgot bahin sa Padayon nga Paghiusa ug Pag-uswag, ang tanan makalimot nga adunay usab code sa imprastraktura. Ug karong bag-o nagkadaghan kini. Ug kinahanglan ba nga dad-on didto ang tanan nga mga lagda?

Dili bisan pa nga kini kinahanglan, kini maayo tungod kay kini makapadali sa kinabuhi sa parehas nga paagi. Sa diha nga kita nagtrabaho uban sa code, dili sa bash script, apan kita adunay normal nga code.

Hunong, hunong, usa ka bash script usab code. Ayaw hilabti ang akong karaang gugma.

Okay, dili nako tun-an imong memories. Naa koy personal nga di ganahan sa bash. Makadaot kini ug makahadlok kanunay. Ug kini kanunay nga maguba nga dili matag-an, mao nga dili ko ganahan niini. Pero sige, ingnon ta nga naa kay bash code. Tingali wala gyud ko kasabot ug adunay normal nga mga balangkas sa pagsulay didto. Wala lang ko kahibalo. Ug parehas ang among mga benepisyo.

Sa diha nga kami nagtrabaho uban sa imprastraktura ingon nga code, makuha namon ang tanan nga parehas nga mga problema sama sa mga developer. Pipila ka bulan ang milabay, nasugatan nako ang usa ka sitwasyon diin ang usa ka kauban nagpadala kanako og pull request alang sa 1 ka linya sa bash. Ug nagbitay ka sa pagrepaso sulod sa 000 ka oras. Ang sama nga mga problema motungha. Code gihapon. Ug kini usa gihapon ka kolaborasyon. Kami naipit sa hangyo sa pagbitad ug kami naipit sa kamatuoran nga among gisulbad ang parehas nga panagbangi sa panagsama sa parehas nga bash, pananglitan.

Aktibo na kaayo ko karon nga nagtan-aw niining tibuok nga butang sa pinakanindot nga infra programming. Gidala nako karon si Pulumi sa imprastraktura. Kini ang pagprograma sa labing putli nga porma. Didto mas nindot pa, tungod kay naa nako ang tanan nga mga kapabilidad sa usa ka programming language, i.e. Naghimo ako nga matahum nga toggle gikan sa asul nga adunay parehas nga kung ug ang tanan maayo. Sa ato pa, naa na sa master ang akong kausaban. Makita na siya sa tanan. Ang ubang mga inhenyero nahibalo bahin niini. Naimpluwensyahan na niini ang usa ka butang didto. Bisan pa, wala kini magamit alang sa tanan nga mga imprastraktura. Gi-on kini alang sa akong mga bangko sa pagsulay, pananglitan. Busa, aron matubag pag-usab ang imong pangutana, gikinahanglan. Gipasayon ​​niini ang kinabuhi alang kanamo, isip mga inhenyero nga nagtrabaho gamit ang code, sa samang paagi.

Kung naay lain naay pangutana?

Naa ko'y pangutana. Gusto nakong ipadayon ang panaghisgot uban ni Oleg. Sa kinatibuk-an, sa akong hunahuna nga ikaw husto, nga kung ang usa ka buluhaton nagkinahanglan og usa ka bulan aron makompleto, nan ikaw adunay problema sa arkitektura, ikaw adunay problema sa pag-analisar, pagkadunot, pagplano, ug uban pa. Apan ako adunay pagbati nga kung magsugod ka naningkamot nga mabuhi sumala sa Padayon nga Paghiusa, unya magsugod ka sa pagtul-id sa kasakit pinaagi sa pagplano, tungod kay dili ka makalayo niini bisan asa.

(Oleg) Oo, husto kana. Kini nga praktis ikatandi sa paningkamot sa bisan unsa nga seryoso nga kultura-pag-usab-usab nga buhat. Ang labing lisud nga butang nga buntogon mao ang mga batasan, labi na ang dili maayo nga mga pamatasan. Ug kung aron mapatuman kini nga praktis, gikinahanglan ang usa ka seryoso nga pagbag-o sa mga batasan sa mga naglibot kanimo: mga developer, pagdumala, manager sa produksiyon, unya mga sorpresa ang naghulat kanimo.

Unsa kaha ang mga surpresa? Ingnon ta nga nakahukom ka nga mas kanunay kang mag-integrate. Ug ikaw adunay uban pang mga butang nga nahigot sa panagsama, pananglitan, mga artifact. Ug sa imong kompanya, pananglitan, adunay usa ka palisiya nga ang matag artifact kinahanglan nga i-account sa usa ka paagi sa usa ka matang sa sistema sa pagtipig sa artifact. Ug kini nagkinahanglan og pipila ka panahon. Kinahanglang susihon sa usa ka tawo ang kahon nga siya, isip usa ka tigdumala sa pagpagawas, gisulayan kini nga artifact aron masiguro nga kini andam na alang sa pagpagawas sa produksiyon. Kung gikinahanglan ang 5-10-15 ka minuto, apan buhaton nimo ang layout kausa sa usa ka semana, unya ang paggasto tunga sa oras kausa sa usa ka semana usa ka gamay nga buhis.

Kung buhaton nimo ang Continuous Integration 10 ka beses sa usa ka adlaw, nan 10 ka beses kinahanglan nga i-multiply sa 30 minuto. Ug kini milapas sa gidaghanon sa oras sa pagtrabaho sa kini nga manager sa pagpagawas. Gikapoy na lang siya sa pagbuhat niini. Adunay mga piho nga gasto alang sa pipila nga mga praktis. Mao ra.

Ug kinahanglan nimo nga kanselahon kini nga lagda aron dili na nimo buhaton ang ingon nga basura, i.e. dili ka mano-mano nga mag-assign sa usa ka degree nga katumbas sa usa ka butang. Bug-os ka nga nagsalig sa pipila ka awtomatiko nga hugpong sa mga pagsulay sa pagkaandam.

Ug kung kinahanglan nimo ang pruweba gikan sa usa ka tawo, aron pirmahan kini sa boss, ug dili ka makasulod sa produksiyon nga wala giingon ni Vasya nga gitugotan niya kini, ug uban pa - kining tanan nga binuang makabalda sa practitioner. Tungod kay kung adunay pipila ka mga kalihokan nga nalangkit sa usa ka buhis, nan ang tanan nagdugang 100 ka beses. Busa, ang pagbalhin sa kasagaran dili matimbaya sa kalipay sa tanan. Kay lisod usbon ang batasan sa mga tawo.

Sa diha nga ang usa ka tawo mobuhat sa iyang naandan nga buluhaton, siya mobuhat niini halos sa walay paghunahuna. Ang iyang cognitive load kay zero. Gidula-dulaan ra niya kini, naa na siyay checklist sa iyang ulo, usa ka libo ka beses na niya kini gibuhat. Ug sa diha nga ikaw moabut ug sultihi siya: "Atong kanselahon kini nga praktis ug ipaila ang usa ka bag-o sugod sa Lunes," alang kaniya kini mahimong usa ka kusog nga pagkarga sa panghunahuna. Ug kini moabut sa tanan sa usa ka higayon.

Busa, ang pinakasimple nga butang, bisan og dili tanan makakaya niini nga kaluho, apan kini ang kanunay nakong buhaton, kini ang mosunod. Kung magsugod ang usa ka bag-ong proyekto, kasagaran ang tanan nga wala pa nasulayan nga mga buhat gisulud dayon sa kini nga proyekto. Samtang bata pa ang proyekto, wala gyud kami nagpameligro sa bisan unsa. Wala pay Prod, wala nay maguba. Busa, kini mahimong gamiton ingon nga pagbansay. Kini nga pamaagi molihok. Apan dili tanan nga mga kompanya adunay higayon sa pagsugod sa ingon nga mga proyekto kanunay. Bisan kung kini usa usab ka gamay nga katingad-an, tungod kay karon adunay usa ka kompleto nga pagbag-o sa digital, ang tanan kinahanglan maglunsad og mga eksperimento aron makasunod sa mga kakompetensya.

Dinhi nakaabot ka sa konklusyon nga kinahanglan una nimo nga masabtan kung unsa ang kinahanglan nimong buhaton. Ang kalibutan dili maayo, ug ang prod dili usab sulundon.

Oo, kini nga mga butang magkadugtong.

Ang mga negosyo dili usab kanunay nga makasabut nga kinahanglan nila nga moadto niini nga paagi.

Adunay usa ka kahimtang diin wala’y mahimo nga mga pagbag-o. Kini usa ka sitwasyon diin adunay dugang nga pressure sa team. Medyo nasunog na ang team. Wala siyay bakante nga oras para sa bisan unsang mga eksperimento. Nagtrabaho sila sa mga bahin gikan sa buntag hangtod sa gabii. Ug ang pagdumala adunay gamay ug gamay nga mga bahin. Nagkadaghan ang gikinahanglan. Sa ingon nga kahimtang, wala’y mahimo nga mga pagbag-o. Masulti lang ang team nga ugma buhaton namo ang sama sa kagahapon, kinahanglan lang nga maghimo kami og gamay nga mga bahin. Niini nga pagsabut, walay mga transisyon sa bisan unsang mga praktis ang posible. Kini usa ka klasiko nga kahimtang kung wala’y oras sa pagpahait sa wasay, kinahanglan nga putlon ang mga kahoy, mao nga giputol nila kini sa usa ka dull wasay. Walay yano nga mga tip dinhi.

(Dmitry) Magbasa ako usa ka pagpatin-aw gikan sa chat: "Apan kinahanglan namon ang daghang sakup sa pagsulay sa lainlaing lebel. Pila ka oras ang gigahin alang sa mga pagsulay? Medyo mahal ug nagkinahanglag daghang oras.”

(Oleg) Kini usa ka klasiko nga sayop nga pagsabut. Kinahanglan nga adunay igo nga mga pagsulay aron ikaw masaligon. Ang Padayon nga Paghiusa dili usa ka butang diin ang 100% sa mga pagsulay gihimo una ug pagkahuman nagsugod ka sa pagpadapat niini nga praktis. Ang padayon nga Integration makapakunhod sa imong cognitive load tungod sa kamatuoran nga ang matag usa sa mga kausaban nga imong makita sa imong mga mata klaro kaayo nga imong masabtan kung kini makaguba sa usa ka butang o dili, bisan kung walay mga pagsulay. Mahimo nimo kini dali nga sulayan sa imong ulo tungod kay ang mga pagbag-o gamay ra. Bisan kung ikaw adunay mga manwal nga tigsulay, mas sayon ​​usab alang kanila. Nagligid ka ug miingon: "Tan-awa, aduna bay naguba?" Ilang gisusi ug miingon, "Dili, walay naguba." Tungod kay nahibal-an sa tester kung asa mangita. Ikaw adunay usa ka pasalig nga nakig-uban sa usa ka piraso sa code. Ug kini gipahimuslan sa piho nga kinaiya.

Dinhi ikaw, siyempre, gidayandayanan.

(Dmitry) Dili ko mouyon dinhi. Adunay usa ka praktis - gimaneho sa pagsulay nga pag-uswag, nga makaluwas kanimo gikan niini.

(Oleg) Aw, wala pa ko makaabot niana nga punto. Ang una nga ilusyon mao nga kinahanglan nimo isulat ang 100% sa mga pagsulay o dili nimo kinahanglan nga buhaton ang Padayon nga Paghiusa. Dili kini tinuod. Kini mao ang duha ka parallel practices. Ug dili sila direktang nagsalig. Ang imong coverage sa pagsulay kinahanglan nga labing maayo. Labing maayo - kini nagpasabot nga ikaw mismo masaligon nga ang kalidad sa agalon diin ang imong agalon nagpabilin human sa pasalig nagtugot kanimo nga masaligon nga mopilit sa "Deploy" nga buton sa usa ka hubog nga Biyernes sa gabii. Giunsa nimo pagkab-ot kini? Pinaagi sa pagrepaso, pinaagi sa coverage, pinaagi sa maayong pagmonitor.

Ang maayo nga pag-monitor dili lahi sa mga pagsulay. Kung nagdagan ka mga pagsulay sa makausa sa pre prod, unya ilang susihon ang tanan nimo nga mga script sa user kausa ug mao na. Ug kung gipadagan nimo kini sa usa ka walay katapusan nga loop, nan kini ang imong gipakatap nga sistema sa pag-monitor, nga walay katapusan nga pagsulay sa tanan - kung kini nahagsa o ​​wala. Sa kini nga kaso, ang kalainan lamang kung kini nahimo kausa o kaduha. Usa ka maayo kaayo nga hugpong sa mga pagsulay ... nagdagan nga walay katapusan, kini ang pagmonitor. Ug kinahanglan nga ingon niini ang husto nga pagmonitor.

Ug busa, kung giunsa nimo makab-ot kini nga kahimtang kung nangandam ka sa Biyernes sa gabii ug mopauli usa pa nga pangutana. Basin usa ka lang ka maisog nga scumbag.

Balikan ta gamay sa Continuous Integration. Midagan kami sa usa ka gamay nga lahi nga komplikado nga praktis.

Ug ang ikaduha nga ilusyon mao nga ang MVP, ingon nila, kinahanglan nga buhaton dayon, busa dili kinahanglan ang mga pagsulay didto. Dili sa ingon niana nga paagi. Ang tinuod mao nga kung nagsulat ka usa ka istorya sa tiggamit sa usa ka MVP, mahimo nimo kini mapalambo sa bola, nga mao, nakadungog ka nga adunay usa ka matang sa istorya sa tiggamit ug dayon midagan aron ma-code kini, o mahimo ka magtrabaho gamit ang TDD. Ug sumala sa TDD, ingon sa gipakita sa praktis, dili kini magdugay, i.e. ang mga pagsulay usa ka epekto. Ang praktis sa TDD dili bahin sa pagsulay. Bisan pa sa gitawag nga Test Driven Development, dili kini bahin sa mga pagsulay. Kini usa usab ka pamaagi sa arkitektura. Kini usa ka pamaagi sa pagsulat sa eksakto kung unsa ang gikinahanglan ug dili pagsulat kung unsa ang dili kinahanglan. Kini usa ka praktis sa pag-focus sa sunod nga pag-uli sa imong panghunahuna sa mga termino sa paghimo sa usa ka arkitektura sa aplikasyon.

Busa, dili sayon ​​​​ang pagwagtang niini nga mga ilusyon. Ang MVP ug mga pagsulay dili magkasumpaki sa usag usa. Bisan pa, hinoon, sa kasukwahi, kung maghimo ka og MVP gamit ang TDD practice, nan mahimo nimo kini nga mas maayo ug mas paspas kaysa kung buhaton nimo kini nga wala’y praktis, apan sa usa ka bola.

Kini usa ka dili klaro ug komplikado nga ideya. Kung makadungog ka nga karon magsulat ako og daghang mga pagsulay ug sa samang higayon maghimo ako usa ka butang nga mas paspas, kini ingon nga dili igo.

(Dmitry) Daghang mga tawo dinhi, kung sila motawag sa MVP, ang mga tawo tapolan kaayo sa pagsulat sa usa ka butang nga normal. Ug kini lain-laing mga butang gihapon. Dili kinahanglan nga himuon ang MVP nga usa ka dili maayo nga butang nga dili molihok.

Oo, oo, husto ka.

Ug unya kalit nga MVP sa prod.

Hangtod sa kahangturan.

Ug ang TDD paminawon nga talagsaon kaayo kung makadungog ka nga nagsulat ka og mga pagsulay ug ingon og daghan pa ang imong buhaton. Katingad-an kaayo kini nga paminawon, apan sa pagkatinuod kini nahimong mas paspas ug mas nindot niining paagiha. Kung nagsulat ka usa ka pagsulay, daghan na ang imong gihunahuna sa imong ulo bahin sa kung unsang code ang tawgon ug kung giunsa, ingon man kung unsa nga pamatasan ang among gipaabut gikan niini. Dili lang nimo isulti nga nagsulat ako usa ka function ug kini adunay usa ka butang. Sa sinugdan naghunahuna ka nga siya adunay ingon ug ingon niana nga mga kondisyon, siya pagatawgon sa ingon ug ingon niana nga paagi. Gitabonan nimo kini sa mga pagsulay ug gikan niini imong nasabtan kung unsa ang hitsura sa imong mga interface sa sulod sa imong code. Kini adunay dako nga epekto sa arkitektura. Ang imong code awtomatik nga mahimong mas modular, tungod kay una nimong gisulayan nga masabtan kung giunsa nimo kini sulayan, ug pagkahuman isulat kini.

Ang nahitabo kanako sa TDD mao nga sa usa ka punto nag-hire ko og Ruby mentor niadtong Ruby programmer pa ko. Ug siya miingon: "Atong buhaton kini sumala sa TDD." Naghunahuna ko: "Damn, karon kinahanglan kong mosulat og dugang." Ug nagkasabot mi nga sulod sa duha ka semana akong isulat ang tanang working code sa Python gamit ang TDD. Human sa duha ka semana, nakaamgo ko nga dili na ko gustong mobalik. Human sa duha ka semana nga pagsulay sa paggamit niini bisan asa, imong naamgohan kung unsa ka sayon ​​​​alang kanimo ang paghunahuna lang. Apan dili kini klaro, mao nga girekomenda ko sa tanan nga kung gibati nimo nga ang TDD lisud, makagugol sa oras ug wala kinahanglana, sulayi nga magpabilin niini sulod lang sa duha ka semana. Ang duha igo na alang kanako.

(Dmitry) Mahimo natong mapalapad kini nga ideya gikan sa punto sa panglantaw sa operasyon sa imprastraktura. Sa dili pa kita maglunsad og bisan unsa nga bag-o, kita mag-monitor ug dayon maglunsad. Sa kini nga kaso, ang pagmonitor mahimong normal nga pagsulay alang kanamo. Ug adunay kalamboan pinaagi sa pagmonitor. Apan halos tanan nag-ingon nga kini taas, ako tapulan, ako naghimo sa usa ka temporaryo nga draft. Kung nakahimo kami sa normal nga pag-monitor, nasabtan namon ang kahimtang sa sistema sa CI. Ug ang sistema sa CI adunay daghang pag-monitor. Nasabtan nato ang kahimtang sa sistema, nasabtan nato kung unsa ang sulod niini. Ug sa panahon sa pag-uswag, naghimo lang kami sa sistema aron kini makaabot sa gitinguha nga estado.

Kini nga mga buhat nahibal-an na sa dugay nga panahon. Gihisgotan namo kini mga 4 ka tuig na ang milabay. Apan sa 4 ka tuig halos walay nausab.

Apan sa kini nga nota, akong gisugyot nga tapuson ang opisyal nga diskusyon.

Video (gisal-ot isip elemento sa media, apan sa pipila ka rason dili molihok):

https://youtu.be/zZ3qXVN3Oic

Source: www.habr.com

Idugang sa usa ka comment