Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Cia peb tham txog vim li cas CI cov cuab yeej thiab CI yog qhov sib txawv kiag li.

Qhov mob dab tsi yog CI npaj los daws, lub tswv yim los ntawm qhov twg, qhov kev lees paub tseeb tias nws ua haujlwm li cas, yuav ua li cas nkag siab tias koj muaj kev xyaum thiab tsis yog ntsia Jenkins xwb.

Lub tswv yim ntawm kev ua ib daim ntawv qhia txog Kev Sib Txuas Ntxiv tau tshwm sim ib xyoos dhau los, thaum kuv mus xam phaj thiab nrhiav haujlwm. Kuv tham nrog 10-15 lub tuam txhab, tsuas yog ib tus ntawm lawv tuaj yeem teb tau meej tias CI yog dab tsi thiab piav qhia seb lawv pom tau tias lawv tsis muaj. Tus so tau hais lus tsis meej pem txog Jenkins :) Zoo, peb muaj Jenkins, nws tsim, CI! Thaum lub sij hawm tsab ntawv ceeb toom, kuv yuav sim piav qhia seb qhov Kev Sib Txuas Txuas Ntxiv yog dab tsi thiab yog vim li cas Jenkins thiab cov cuab yeej zoo sib xws muaj kev sib raug zoo nrog qhov no.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Yog li, dab tsi feem ntau tshwm sim thaum koj hnov ​​lo lus CI? Cov neeg feem coob yuav xav txog Jenkins, Gitlab CI, Travis, thiab lwm yam.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Txawm hais tias peb google nws, nws yuav muab cov cuab yeej no rau peb.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Yog tias koj paub txog kev nug, ces tam sim ntawd tom qab sau cov cuab yeej, lawv yuav qhia koj tias CI yog thaum koj tsim thiab khiav cov kev xeem hauv Pull Request for a commit.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Kev sib koom ua ke tsis tu ncua tsis yog hais txog cov cuab yeej, tsis yog hais txog kev sib sau ua ke nrog kev sim hauv ceg! Kev sib koom ua ke tsis tu ncua yog kev coj ua ntawm kev sib koom ua ke ntawm cov cai tshiab thiab siv nws tsis yog txhua yam tsim nyog rau laj kab Jenkins, GitLab, thiab lwm yam.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Ua ntej peb txiav txim siab seb qhov CI tag nrho zoo li cas, cia peb xub dhia mus rau hauv cov ntsiab lus ntawm cov neeg uas tuaj nrog nws thiab hnov ​​​​qhov mob uas lawv tau sim daws.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Thiab lawv tau daws qhov mob ntawm kev ua haujlwm ua ke ua pab pawg!

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Cia peb saib cov piv txwv ntawm cov teeb meem uas cov neeg tsim khoom ntsib thaum txhim kho hauv pab pawg. Ntawm no peb muaj ib qhov project, ib tug tswv ceg nyob rau hauv git thiab ob developers.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Thiab lawv tau mus ua hauj lwm raws li txhua leej txhua tus tau siv ntev lawm. Peb tau ua ib txoj hauj lwm nyob rau hauv lub tswv yim loj ntawm tej yam, tsim ib tug feature ceg, thiab sau tus code.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Ib qho ua tiav cov yam ntxwv sai dua thiab muab tso rau hauv tus tswv.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Qhov thib ob xav tau sijhawm ntxiv, nws tau sib sau ua ke tom qab thiab xaus nrog kev tsis sib haum xeeb. Tam sim no, es tsis txhob sau cov yam ntxwv ntawm kev lag luam xav tau, tus tsim tawm siv nws lub sijhawm thiab lub zog daws teeb meem.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Qhov nyuaj dua nws yog ua ke koj cov yam ntxwv nrog tus tswv zoo, ntau lub sijhawm peb siv rau nws. Thiab kuv tau qhia qhov no nrog ib qho piv txwv yooj yim. Qhov no yog ib qho piv txwv uas tsuas muaj 2 tus neeg tsim tawm. Xav txog yog tias 10 lossis 15 lossis 100 tus neeg hauv ib lub tuam txhab sau rau ib lub chaw cia khoom. Koj yuav vwm los daws txhua qhov kev tsis sib haum xeeb no.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Muaj ib rooj plaub sib txawv me ntsis. Peb muaj ib tug tswv thiab ib co developers ua ib yam dab tsi.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Lawv tsim ib tug twig.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Ib tug tuag, txhua yam zoo, nws dhau txoj haujlwm.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Tus tsim tawm thib ob, lub sijhawm no, muab nws txoj haujlwm. Wb hais tias nws xa nws mus xyuas. Ntau lub tuam txhab muaj kev xyaum hu ua kev tshuaj xyuas. Ntawm qhov tod tes, qhov kev xyaum no yog qhov zoo thiab muaj txiaj ntsig, ntawm qhov tod tes, nws ua rau peb qeeb hauv ntau txoj hauv kev. Peb yuav tsis mus rau qhov ntawd, tab sis ntawm no yog ib qho piv txwv zoo ntawm qhov kev tshuaj xyuas tsis zoo tuaj yeem ua rau. Koj tau xa daim ntawv thov rub tawm rau kev tshuaj xyuas. Tsis muaj dab tsi ntxiv rau tus tsim tawm ua. Nws pib ua dab tsi? Nws pib ua lwm yam hauj lwm.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Lub sijhawm no, tus tsim tawm thib ob tau ua lwm yam.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Thawj tus ua tiav txoj haujlwm thib peb.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Thiab tom qab qee lub sijhawm ntev, nws qhov kev tshuaj xyuas tau sim, thiab nws tab tom sim ua kom tiav. Yog li dab tsi tshwm sim? Nws ntes tau ntau qhov kev tsis sib haum xeeb. Vim li cas? Vim tias thaum nws qhov kev thov rub tau dai rau hauv kev tshuaj xyuas, ntau yam tau hloov pauv hauv cov cai.

Ntxiv rau zaj dab neeg nrog kev tsis sib haum xeeb, muaj ib zaj dab neeg nrog kev sib txuas lus. Thaum koj cov xov yog dai rau kev tshuaj xyuas, thaum nws tseem tos rau qee yam, thaum koj ua haujlwm rau lub sijhawm ntev, koj tsis taug qab lwm yam hloov pauv hauv cov cai hauv paus ntawm koj qhov kev pabcuam. Tej zaum qhov koj tab tom sim daws tam sim no twb tau daws nag hmo thiab koj tuaj yeem siv qee txoj kev thiab rov siv dua. Tab sis koj yuav tsis pom qhov no vim tias koj ib txwm ua haujlwm nrog cov ceg tsis tu ncua. Thiab cov ceg tsis tu ncua no ib txwm ua rau koj yuav tsum daws qhov kev sib koom ua ke.

Nws hloov tawm hais tias yog peb ua hauj lwm pab neeg, piv txwv li, tsis muaj ib tug neeg mus poking nyob rau hauv lub repository, tab sis 5-10 neeg, ces ntev peb tsis ntxiv peb code rau tus tswv, peb yuav raug kev txom nyem ntau dua vim hais tias peb kawg xav tau. ib yam dab tsi ces ua ke nws. Thiab qhov kev tsis sib haum xeeb ntau dua peb muaj, thiab cov laus dua peb ua haujlwm nrog, qhov teeb meem ntau dua peb muaj.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Ua ib yam dab tsi ua ke yog mob! Peb ib txwm tau txais ib leeg txoj kev.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Qhov teeb meem no tau pom ntau dua 20 xyoo dhau los. Kuv pom thawj qhov hais txog kev coj ua ntawm Kev Sib Txuas Txuas Ntxiv hauv Kev Ua Haujlwm Tsis Txaus Siab.

Extreme Programming yog thawj lub hauv paus agile. Nplooj ntawv tau tshwm sim hauv 96. Thiab lub tswv yim yog siv qee yam kev coj ua, kev npaj thiab lwm yam, kom txoj kev loj hlob yuav hloov tau raws li qhov ua tau, kom peb tuaj yeem teb sai sai rau cov kev hloov pauv lossis cov kev xav tau los ntawm peb cov neeg siv khoom. Thiab lawv tau pib ntsib qhov no 24 xyoo dhau los, tias yog tias koj ua ib yam dab tsi ntev heev thiab sab nraud, ces koj siv sijhawm ntau rau nws vim tias koj muaj kev tsis sib haum xeeb.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Tam sim no peb yuav txheeb xyuas cov kab lus "Nruam kev koom ua ke" ib tus zuj zus. Yog tias peb txhais nws ncaj qha, peb tau txais kev koom ua ke txuas ntxiv. Tab sis yuav ua li cas txuas ntxiv nws tsis yog qhov tseeb; nws yog qhov tsis sib xws heev. Tab sis ntau npaum li cas kev koom ua ke nws muaj kuj tsis pom tseeb heev.

Thiab yog vim li cas kuv thiaj muab cov lus qhia los ntawm Extreme Programming rau koj tam sim no. Thiab peb yuav txheeb xyuas ob lo lus sib cais.

Kev koom ua ke - Raws li kuv twb tau hais lawm, peb siv zog los xyuas kom meej tias txhua tus engineer ua haujlwm nrog cov qauv tam sim no ntawm cov cai, kom nws siv zog ntxiv nws cov cai kom ntau li ntau tau rau ib ceg, kom cov no yog cov ceg me me. Vim yog tias lawv loj, ces peb tuaj yeem daig nrog kev sib koom ua ke tsis sib haum xeeb rau ib lub lim tiam. Qhov no yog qhov tseeb tshwj xeeb yog tias peb muaj lub voj voog kev loj hlob ntev xws li dej tsaws tsag, qhov twg tus tsim tawm mus deb rau ib hlis los txiav qee qhov loj. Thiab nws yuav raug daig ntawm qhov kev sib koom ua ke rau lub sijhawm ntev heev.

Kev koom ua ke yog thaum peb coj peb ceg thiab koom ua ke nrog tus tswv, peb sib koom ua ke. Muaj qhov kev xaiv kawg thaum peb yog tus tsim tawm transbase, qhov twg peb siv zog los xyuas kom meej tias peb tam sim ntawd sau ntawv mus rau tus tswv yam tsis muaj ceg ntxiv.

Feem ntau, kev koom ua ke txhais tau hais tias noj koj cov cai thiab rub nws mus rau tus tswv.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Qhov no txhais tau li cas los ntawm lo lus "nruam", dab tsi yog hu ua txuas ntxiv? Kev xyaum qhia tau hais tias tus tsim tawm siv zog ua ke nrog nws cov cai kom sai li sai tau. Qhov no yog nws lub hom phiaj thaum ua ib txoj hauj lwm - kom tau nws cov cai rau tus tswv kom sai li sai tau. Hauv lub ntiaj teb zoo tagnrho, cov neeg tsim khoom yuav ua qhov no txhua ob peb teev. Ntawd yog, koj coj qhov teeb meem me me thiab muab tso rau hauv tus tswv. Txhua yam zoo heev. Nov yog qhov koj siv zog rau. Thiab qhov no yuav tsum tau ua tsis tu ncua. Thaum koj ua ib yam dab tsi, koj tam sim ntawd muab tso rau hauv tus tswv.

Thiab tus tsim tawm uas ua ib yam dab tsi yog lub luag haujlwm rau qhov nws tau ua kom nws ua haujlwm thiab tsis ua txhaum dab tsi. Qhov no yog qhov uas zaj dab neeg xeem feem ntau tuaj tawm. Peb xav khiav qee qhov kev sim ntawm peb qhov kev cog lus, ntawm peb qhov kev sib koom ua ke, kom paub tseeb tias nws ua haujlwm. Thiab qhov no yog qhov uas Jenkins tuaj yeem pab koj.

Tab sis nrog cov dab neeg: cia peb ua qhov kev hloov me me, cia cov haujlwm me me, cia peb ua qhov teeb meem thiab tam sim ntawd sim ua qee yam rau hauv tus tswv - tsis muaj Jenkins yuav pab ntawm no. Vim Jenkins tsuas yog pab koj khiav kev xeem.

Koj tuaj yeem ua yam tsis muaj lawv. Qhov no yuav tsis ua mob rau koj kiag li. Vim tias lub hom phiaj ntawm kev xyaum yog ntsuas ntau npaum li qhov ua tau, thiaj li tsis txhob nkim sijhawm ntau ntawm kev tsis sib haum xeeb yav tom ntej.

Cia peb xav txog tias vim li cas peb nyob hauv 2020 yam tsis muaj Internet. Thiab peb ua haujlwm hauv zos. Peb tsis muaj Jenkins. Qhov no zoo. Koj tseem tuaj yeem mus tom ntej thiab ua ib ceg hauv zos. Koj tau sau qee qhov chaws hauv nws. Peb ua tiav txoj haujlwm hauv 3-4 teev. Peb tau hloov mus rau tus tswv, ua ib qho git rub, thiab merged peb ceg nyob rau ntawd. Npaj txhij. Yog tias koj ua qhov no ntau zaus, ua kev zoo siab, koj muaj Kev Sib Txuas Ntxiv!

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Cov pov thawj dab tsi hauv lub ntiaj teb niaj hnub no muaj qhov uas nws tsim nyog siv zog? Vim hais tias feem ntau nws nyuaj. Yog tias koj sim ua haujlwm zoo li no, koj yuav nkag siab tias tam sim no qee qhov kev npaj yuav cuam tshuam, koj yuav tsum tau siv sijhawm ntau ntxiv rau kev ua haujlwm decomposing. Vim tias yog koj ua txiv neej..., ces koj yuav tsis tuaj yeem hais tau sai thiab, raws li, yuav muaj teeb meem. Koj yuav tsis muaj kev xyaum lawm.

Thiab nws yuav kim. Nws yuav tsis tuaj yeem ua haujlwm tam sim ntawm tag kis uas siv Kev Sib Txuas Txuas Txuas. Nws yuav siv sij hawm ntev heev rau koj kom tau siv rau nws, nws yuav siv sijhawm ntev heev los siv rau kev ua haujlwm decomposing, nws yuav siv sij hawm ntev heev kom tau siv los rov ua qhov kev tshuaj xyuas, yog tias koj muaj ib qho. . Vim peb lub hom phiaj yog kom nws yaj niaj hnub no. Thiab yog tias koj ua qhov kev tshuaj xyuas tsis pub dhau peb hnub, ces koj muaj teeb meem thiab Kev Sib Txuas Ntxiv tsis ua haujlwm rau koj.

Tab sis peb puas muaj cov pov thawj cuam tshuam tam sim no uas qhia peb tias kev nqis peev hauv qhov kev coj ua no ua rau muaj txiaj ntsig?

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Thawj qhov uas tau los rau hauv kuv lub siab yog State of DevOps. Qhov no yog ib qho kev tshawb fawb uas cov txiv neej tau ua rau 7 xyoo. Tam sim no lawv ua nws raws li lub koom haum ywj pheej, tab sis hauv Google.

Thiab lawv txoj kev tshawb fawb xyoo 2018 tau qhia txog kev sib raug zoo ntawm cov tuam txhab uas sim siv cov ceg luv luv uas sib koom ua ke sai, sib koom ua ke nquag, thiab muaj cov txiaj ntsig zoo ntawm IT.

Cov ntsuas no yog dab tsi? Cov no yog 4 qhov kev ntsuas uas lawv coj los ntawm txhua lub tuam txhab hauv lawv cov lus nug: kev xa tawm zaus, lub sijhawm ua haujlwm rau kev hloov pauv, lub sijhawm los kho cov kev pabcuam, hloov pauv tsis ua haujlwm.

Thiab, ua ntej, muaj qhov sib cuam tshuam, peb paub tias cov tuam txhab uas ntsuas feem ntau muaj qhov ntsuas zoo dua. Thiab lawv muaj kev faib cov tuam txhab ua ntau pawg: cov no yog cov tuam txhab qeeb uas tsim qee yam qeeb, nruab nrab ua yeeb yam, ua yeeb yam siab thiab cov neeg tseem ceeb. Cov neeg tseem ceeb yog Netflix, Amazon, uas yog super ceev, ua txhua yam sai, zoo nkauj thiab ua tau zoo.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Zaj thib ob, uas tshwm sim ib hlis dhau los. Technology Radar muaj ib tsab xov xwm zoo txog Gitflow. Gitflow txawv ntawm lwm tus nyob rau hauv uas nws cov ceg tau nyob ntev. Muaj cov ceg tso tawm uas nyob rau lub sijhawm ntev, thiab cov ceg ntoo uas tseem nyob tau ntev. Qhov kev coj ua no ntawm Technology Radar tau tsiv mus rau HOLD. Vim li cas? Vim tib neeg ntsib qhov mob ntawm kev koom ua ke.

Yog tias koj ceg nyob tau ntev heev, nws tau daig, mus lwj, thiab peb pib siv sijhawm ntau los sim ua qee yam hloov pauv rau nws.

Thiab tsis ntev los no tus kws sau ntawv ntawm Gitflow tau hais tias yog tias koj lub hom phiaj yog Kev Sib Txuas Ntxiv, yog tias koj lub hom phiaj yog tias koj xav yob ntau li ntau tau, ces Gitflow yog lub tswv yim phem. Nws cais ntxiv rau hauv tsab xov xwm tias yog tias koj muaj qhov backend uas koj tuaj yeem siv zog rau qhov no, ces Gitflow yog superfluous rau koj, vim Gitflow yuav ua rau koj qeeb, Gitflow yuav tsim teeb meem rau koj nrog kev koom ua ke.

Qhov no tsis tau txhais hais tias Gitflow tsis zoo thiab yuav tsum tsis txhob siv. Nws yog rau lwm lub sijhawm. Piv txwv li, thaum koj xav tau kev txhawb nqa ntau qhov kev pabcuam lossis daim ntawv thov, piv txwv li qhov koj xav tau kev txhawb nqa rau lub sijhawm ntev.

Tab sis yog tias koj tham nrog cov neeg uas txhawb nqa cov kev pabcuam no, koj yuav hnov ​​​​mob heev txog qhov tseeb tias qhov version no yog 3.2, uas yog 4 lub hlis dhau los, tab sis qhov kev kho no tsis suav nrog thiab tam sim no, txhawm rau ua kom nws, koj yuav tsum tau ua ib pawg ntawm kev hloov. Thiab tam sim no lawv tau daig dua, thiab tam sim no lawv tau fiddling ib ncig ntawm ib lub lim tiam sim siv qee yam tshiab.

Raws li Alexander Kovalev raug sau tseg hauv kev sib tham, kev sib raug zoo tsis zoo ib yam li qhov ua rau. Qhov no muaj tseeb. Ntawd yog, tsis muaj kev sib txuas ncaj qha tias yog tias koj muaj Kev Sib Txuas Nruam, ces txhua qhov kev ntsuas yuav zoo heev. Tab sis muaj kev sib raug zoo uas yog tias ib tug yog ib tug, ces feem ntau yuav yog lwm yam. Tsis yog qhov tseeb, tab sis feem ntau yuav. Nws tsuas yog kev sib raug zoo xwb.

Kev sib koom ua ke tsis tu ncua raws li kev xyaum, tsis yog Jenkins. Andrey Alexandrov

Nws zoo nkaus li peb twb tau ua ib yam dab tsi, zoo li peb twb tau koom ua ke lawm, tab sis peb yuav ua li cas thiaj nkag siab tias peb tseem muaj kev sib koom ua ke, uas peb tab tom sib koom ua ke ntau zaus?

Jez Humble yog tus sau Phau Ntawv Qhia, Accelerate, Lub Vev Xaib Txuas Ntxiv, thiab phau ntawv xa mus tas li. Nws muab qhov kev xeem no:

  • Tus engineer's code tau txais mus rau tus tswv txhua hnub.
  • Rau txhua qhov kev cog lus koj khiav qhov kev xeem chav tsev.
  • Lub tsev nyob rau hauv tus tswv poob, nws tau kho nyob rau hauv li 10 feeb.

Nws qhia kom siv qhov kev sim zoo li no kom paub tseeb tias koj muaj kev xyaum txaus.

Kuv pom qhov kawg me ntsis kev tsis sib haum xeeb. Ntawd yog, yog tias koj tuaj yeem kho nws hauv 10 feeb, tom qab ntawd koj muaj Kev Sib Txuas Ntxiv, nws suab txawv me ntsis, hauv kuv lub tswv yim, tab sis nws ua rau kev nkag siab. Vim li cas? Vim yog tias koj khov ntau zaus, nws txhais tau tias koj cov kev hloov pauv me me. Yog tias qhov kev hloov me me txhais tau tias koj tus tswv tsim tau tawg, ces koj tuaj yeem nrhiav tau ib qho piv txwv sai vim qhov kev hloov me me. Ntawm no koj muaj me me me me, 20-30 kab hauv nws hloov. Thiab, raws li, koj tuaj yeem nkag siab sai sai vim li cas vim li cas qhov kev hloov pauv me me, koj muaj thaj chaw me me los tshawb nrhiav qhov teeb meem.

Thiab txawm hais tias peb cov khoom poob qis tom qab kev tso tawm, yog tias peb muaj kev xyaum ua ntu zus, nws yooj yim dua rau peb ua, vim tias cov kev hloov pauv me me. Yog lawm, qhov no yuav cuam tshuam rau kev npaj. Qhov no yuav mob. Thiab, tej zaum, qhov nyuaj tshaj plaws hauv qhov kev coj ua no yog siv los rhuav tshem cov haujlwm, uas yog, yuav ua li cas thiaj li ua tau ib yam dab tsi thiab ua nws hauv ob peb teev thiab tib lub sijhawm dhau los tshuaj xyuas, yog tias koj muaj ib. Kev tshuaj xyuas yog qhov mob cais.

Chav ntsuas ntsuas tsuas yog tus pab cuam uas pab koj nkag siab seb koj qhov kev koom ua ke puas ua tiav thiab tsis muaj dab tsi tawg. Hauv kuv lub tswv yim, qhov no kuj tsis tas yuav tsum tau ua, vim qhov no tsis yog qhov kev coj ua.

Nov yog ib qho kev qhia luv luv rau Kev Sib Txuas Txuas Ntxiv. Qhov ntawd yog txhua yam muaj rau qhov kev xyaum no. Kuv npaj txhij rau cov lus nug.

Kuv tsuas yog sau luv luv dua:

  • Kev sib txuas txuas ntxiv tsis yog Jenkins, tsis yog Gitlab.
  • Qhov no tsis yog ib qho cuab yeej, nws yog ib qho kev xyaum uas peb muab peb cov cai rau hauv tus tswv kom ntau li ntau tau.
  • Peb ua qhov no txhawm rau zam qhov mob hnyav uas tshwm sim nrog kev sib koom ua ke yav tom ntej, uas yog, peb tau ntsib kev mob me ntsis tam sim no kom tsis txhob muaj ntau ntxiv yav tom ntej. Qhov ntawd yog tag nrho cov ntsiab lus.
  • Nyob rau sab muaj kev sib txuas lus los ntawm code, tab sis kuv tsis tshua pom qhov no, tab sis qhov no kuj yog qhov nws tau tsim los rau.

Lus nug

Yuav ua li cas nrog cov hauj lwm uas tsis yog-decomposed?

Decompose. Qhov teeb meem yog dab tsi? Koj puas tuaj yeem muab piv txwv tias muaj ib txoj haujlwm thiab nws tsis decomposed?

Muaj cov dej num uas tsis tuaj yeem decomposed los ntawm lo lus "ua tiav", piv txwv li, cov uas xav tau kev txawj ntse tob heev thiab uas tuaj yeem daws tau hauv ib lub hlis kom ua tiav cov txiaj ntsig digestible.

Yog tias kuv nkag siab koj raug, ces muaj qee qhov haujlwm loj thiab nyuaj, qhov tshwm sim ntawm qhov uas yuav pom tsuas yog hauv ib hlis?

Yog lawm. Yog lawm, nws yuav tuaj yeem ntsuas qhov tshwm sim tsis pub dhau ib hlis.

Zoo. Feem ntau qhov no tsis yog teeb meem. Vim li cas? Vim hais tias nyob rau hauv cov ntaub ntawv no, thaum peb tham txog twigs, peb tsis yog tham txog ib tug twig nrog ib tug feature. Cov nta tuaj yeem loj thiab nyuaj. Lawv tuaj yeem cuam tshuam ntau ntawm cov khoom. Thiab tej zaum peb tsis tuaj yeem ua lawv tag nrho hauv ib ceg. Qhov no zoo. Peb tsuas yog yuav tsum tau rhuav tshem zaj dab neeg no. Yog hais tias ib qho feature tsis tau npaj txhij, qhov no tsis tau txhais hais tias qee qhov ntawm nws cov cai tsis tuaj yeem sib sau ua ke. Koj ntxiv, hais, tsiv teb tsaws thiab muaj qee theem hauv qhov tshwj xeeb. Cia peb hais tias koj muaj ib theem - ua kev tsiv teb tsaws chaw, ntxiv ib txoj kev tshiab. Thiab koj tuaj yeem ntsuas cov khoom no txhua hnub.

Zoo. Lub ntsiab lus ntawd yog dab tsi?

Dab tsi yog qhov kev tua me me txhua hnub?

Muaj.

Yog tias lawv tsoo ib yam dab tsi, koj pom tam sim ntawd. Koj muaj ib qho me me uas tau tawg qee yam, nws yooj yim dua rau koj kho nws. Lub ntsiab lus yog tias kev sib koom ua ke me me tam sim no yooj yim dua li kev sib koom ua ke ib yam loj hauv ob peb lub lis piam. Thiab lub ntsiab lus thib peb yog tias lwm tus engineers yuav ua haujlwm nrog cov qauv tam sim no ntawm cov cai. Lawv yuav pom tias qee qhov kev tsiv teb tsaws tau ntxiv ntawm no, thiab tom qab ntawd qee txoj kev tau tshwm sim uas lawv kuj xav siv. Txhua tus neeg yuav pom dab tsi tshwm sim hauv koj cov cai. Nws yog rau peb yam uas xyaum ua tiav.

Ua tsaug, qhov teeb meem raug kaw!

(Oleg Soroka) Kuv puas tuaj yeem ntxiv? Koj hais txhua yam kom raug, kuv tsuas xav ntxiv ib kab lus xwb.

Yog li.

Nrog Kev Sib Txuas Nruam, cov cai tau muab tso rau hauv ib ceg tsis yog thaum lub ntsej muag tau npaj tiav, tab sis thaum tsim kev tawg. Thiab koj tuaj yeem muaj kev nyab xeeb los ua tus tswv ntau zaus hauv ib hnub raws li koj xav tau. Qhov thib ob yog tias yog vim li cas koj tsis tuaj yeem rhuav tshem cov haujlwm txhua hli rau hauv cov haujlwm tsawg kawg peb hnub, kuv nyob twj ywm li peb teev, ces koj muaj teeb meem loj. Thiab qhov tseeb tias koj tsis muaj Kev Sib Txuas Ntxiv yog qhov tsawg kawg ntawm cov teeb meem no. Qhov no txhais tau tias koj muaj teeb meem nrog architecture thiab xoom engineering kev coj ua. Vim tias txawm tias qhov no yog kev tshawb fawb, ces nyob rau hauv txhua rooj plaub nws yuav tsum tau tsim nyob rau hauv daim ntawv ntawm hypotheses los yog ib lub voj voog.

Peb tau tham txog 4 qhov kev ntsuas uas paub qhov txawv ntawm cov tuam txhab ua tiav los ntawm kev lag luam. Peb tseem yuav tsum nyob kom pom 4 qhov ntsuas no. Yog tias koj qhov haujlwm nruab nrab siv sijhawm ib hlis kom tiav, ces kuv yuav tsom mus rau qhov ntsuas no ua ntej. Kuv yuav txo nws mus rau 3 hnub ua ntej. Thiab tom qab ntawd kuv pib xav txog Nruam.

Kuv puas tau nkag siab koj yog tias koj xav tias feem ntau tsis muaj qhov taw tes rau kev nqis peev hauv engineering yog tias ib txoj haujlwm yuav siv sij hawm ib hlis kom tiav?

Koj muaj kev sib koom ua ke tsis tu ncua. Thiab muaj cov ncauj lus zoo li no tias hauv 10 feeb koj tuaj yeem kho qhov kho lossis yob rov qab. Xav tias koj dov nws tawm. Ntxiv mus, koj txawm muaj kev xa mus tas li, koj dov nws tawm mus rau qhov khoom thiab tsuas yog tom qab ntawd pom tias muaj qee yam yuam kev. Thiab koj yuav tsum yob nws rov qab, tab sis koj twb tau tsiv koj cov ntaub ntawv. Koj twb muaj lub database schema ntawm lub tom ntej version, ntxiv rau, koj kuj muaj ib co hom backup, thiab cov ntaub ntawv kuj tau sau rau ntawd.

Thiab koj puas muaj lwm txoj hauv kev? Yog tias koj thim rov qab cov lej, ces nws tsis tuaj yeem ua haujlwm nrog cov ntaub ntawv tshiab no.

Lub hauv paus tsuas txav mus tom ntej, yog.

Cov neeg uas muaj kev ua haujlwm tsis zoo feem ntau yuav tsis tau nyeem phau ntawv tuab txog ... ib yam. Yuav ua li cas nrog tus thaub qab? Yog tias koj rov qab los ntawm kev thaub qab, nws txhais tau tias koj poob cov ntaub ntawv uas koj tau sau thaum lub sijhawm ntawd. Piv txwv li, peb tau ua haujlwm rau peb teev nrog cov ntawv tshiab ntawm cov ntaub ntawv, cov neeg siv sau npe rau ntawd. Koj tsis kam lees qhov qub thaub qab vim tias lub tswv yim tsis ua haujlwm nrog cov tshiab version, yog li koj tau poob cov neeg siv no. Thiab lawv tsis txaus siab, lawv cog lus.

Txhawm rau kom paub ntau yam ntawm cov kev coj ua uas txhawb nqa kev sib koom ua ke thiab kev xa mus tas li, nws tsis txaus tsuas yog kawm sau ntawv xwb.... Ua ntej, yuav muaj ntau ntawm lawv, nws yuav ua tsis tau. Ntxiv nrog rau muaj ntau yam kev coj ua zoo li Scientific. Muaj xws li kev xyaum, GitHub nrov nws ib zaug. Qhov no yog thaum koj muaj ob qho tib si qub code thiab tshiab code khiav tib lub sijhawm. Qhov no yog thaum koj ua qhov ua tsis tiav, tab sis nws tuaj yeem rov qab qee tus nqi: xws li kev ua haujlwm lossis so API. Koj ua tiav ob tus lej tshiab thiab tus lej qub, thiab sib piv qhov sib txawv ntawm lawv. Thiab yog tias muaj qhov sib txawv, ces koj teev qhov xwm txheej no. Txoj kev no koj paub tias koj muaj qhov tshwj xeeb tshiab npaj los yob tawm ntawm qhov qub yog tias koj tsis tau muaj qhov sib txawv ntawm ob rau ib lub sijhawm.

Muaj ntau pua yam kev coj ua. Kuv xav kom pib nrog kev txhim kho transbase. Nws tsis yog 100% ntawm Kev Sib Txuas Ntxiv, tab sis cov kev coj ua zoo ib yam, ib tus tsis tuaj yeem ua neej nyob tsis muaj lwm tus.

Koj puas tau muab kev txhim kho transbase ua piv txwv uas koj tuaj yeem pom cov kev coj ua lossis koj puas xav kom tib neeg pib siv transbase debelopment?

Ua tib zoo saib, vim lawv tsis tuaj yeem siv tau. Txhawm rau siv lawv, koj yuav tsum tau nyeem ntau. Thiab thaum ib tug neeg nug: "Yuav ua li cas nrog ib tug feature uas yuav siv sij hawm ib lub hlis, nws txhais tau hais tias nws tsis tau nyeem txog transbase txoj kev loj hlob." Kuv yuav tsis pom zoo nws tam sim no. Kuv xav qhia kom tsom mus rau lub ntsiab lus ntawm yuav ua li cas kom raug architecturally rhuav tshem cov dej num loj rau hauv me me. Qhov no yog lub ntsiab ntawm decomposition.

Decomposition yog ib qho ntawm cov cuab yeej cuab tam. Peb ua ntej kev tsom xam, ces decomposition, ces synthesis, ces integration. Thiab qhov no yog li cas txhua yam ua haujlwm rau peb. Thiab peb tseem yuav tsum tau loj hlob mus rau Nruam kev sib koom ua ke los ntawm kev decomposition. Cov lus nug tshwm sim ntawm thawj theem, thiab peb twb tau tham txog theem plaub, piv txwv li, ntau zaus peb ua kev koom ua ke, qhov zoo dua. Nws tseem ntxov dhau los ua qhov no; nws yuav zoo rau txiav koj cov monolith ua ntej.

Koj yuav tsum kos ib tug xov tooj ntawm xub thiab squares ntawm ib co duab. Koj tsis tuaj yeem hais tias tam sim no kuv yuav qhia cov duab kos duab ntawm daim ntawv thov tshiab thiab qhia ib lub xwmfab, sab hauv uas muaj lub pob ntsuab rau daim ntawv thov. Nyob rau hauv txhua rooj plaub, yuav muaj ntau squares thiab xub. Txhua daim duab kuv pom muaj ntau tshaj ib. Thiab decomposition, txawm nyob rau theem ntawm graphical sawv cev, twb tshwm sim. Yog li ntawd, cov squares tuaj yeem ua ywj siab. Yog tsis yog, ces kuv muaj lus nug loj rau tus kws kes duab vajtse.

Muaj lus nug los ntawm kev sib tham: "Yog tias kev tshuaj xyuas yuav tsum tau ua thiab siv sijhawm ntev, tej zaum ib hnub lossis ntau dua?"

Koj muaj teeb meem nrog kev xyaum. Kev tshuaj xyuas yuav tsum tsis txhob kav ib hnub lossis ntau dua. Qhov no yog tib zaj dab neeg rau lo lus nug dhau los, tsuas yog me ntsis softer. Yog tias kev tshuaj xyuas mus rau ib hnub, feem ntau yuav qhov kev tshuaj xyuas no mus rau qee qhov kev hloov pauv loj heev. Qhov no txhais tau tias nws yuav tsum tau ua kom me me. Hauv kev txhim kho transbase, uas Oleg pom zoo, muaj ib zaj dab neeg hu ua kev tshuaj xyuas tas li. Nws lub tswv yim yog tias peb ua qhov kev thov me me ntawm lub hom phiaj, vim tias peb siv zog sib koom ua ke tas li thiab me ntsis ntawm ib lub sijhawm. Thiab yog li qhov kev thov rub hloov ib qho abstraction lossis 10 kab. Ua tsaug rau qhov kev tshuaj xyuas no, nws yuav siv sijhawm ob peb feeb.

Yog tias kev tshuaj xyuas siv sijhawm ib hnub lossis ntau dua, qee yam tsis raug. Ua ntej, koj yuav muaj qee qhov teeb meem nrog kev tsim vaj tsev. Los yog qhov no yog ib daim ntawv loj, 1 kab, piv txwv li. Los yog koj architecture yog complex uas ib tug neeg tsis tuaj yeem nkag siab nws. Qhov no yog ib qho teeb meem me ntsis sideways, tab sis nws kuj yuav tsum tau daws. Tej zaum tsis tas yuav muaj kev tshuaj xyuas txhua. Peb yuav tsum xav txog qhov no thiab. Kev tshuaj xyuas yog qhov uas ua rau koj qeeb. Nws muaj nws qhov zoo tshaj plaws, tab sis koj yuav tsum nkag siab tias vim li cas koj thiaj ua nws. Qhov no puas yog txoj hauv kev rau koj kom xa cov ntaub ntawv sai sai, qhov no puas yog txoj hauv kev rau koj los teeb tsa qee cov qauv sab hauv lossis dab tsi? Vim li cas koj thiaj xav tau qhov no? Vim tias qhov kev tshuaj xyuas yuav tsum tau ua sai heev los yog muab tso tseg tag nrho. Nws zoo li transbase kev loj hlob - zaj dab neeg zoo nkauj heev, tab sis tsuas yog rau cov txiv neej laus xwb.

Hais txog 4 qhov ntsuas, kuv tseem xav kom tshem lawv kom nkag siab tias qhov no ua rau. Saib cov lej, saib daim duab, txhua yam phem npaum li cas.

(Dmitry) Kuv npaj siab los sib tham txog qhov no nrog koj. Tus lej thiab ntsuas yog txhua yam zoo, kev coj ua zoo heev. Tab sis koj yuav tsum to taub seb lub lag luam puas xav tau nws. Muaj cov lag luam uas tsis xav tau hom kev hloov pauv sai. Kuv paub cov tuam txhab uas hloov pauv tsis tuaj yeem ua txhua 15 feeb. Thiab tsis yog vim lawv phem heev. Qhov no yog lub neej voj voog. Thiab txhawm rau ua kom cov ceg ntoo feature, qhov toggle feature, koj xav tau kev paub tob.

Nws nyuaj. Yog tias koj xav nyeem zaj dab neeg txog qhov toggle feature hauv kev nthuav dav ntxiv, kuv xav kom nws https://trunkbaseddevelopment.com/. Thiab muaj ib tsab xov xwm zoo los ntawm Martin Fowler txog toggle nta: hom twg muaj, lub neej voj voog, thiab lwm yam. Lub toggle feature yog qhov nyuaj.

Thiab koj tseem tsis tau teb cov lus nug: "Puas Jenkins xav tau lossis tsis?"

Jenkins tsis xav tau nyob rau hauv txhua rooj plaub tiag tiag. Tiag tiag, cov cuab yeej: Jenkins, Gitlab yuav coj koj yooj yim. Koj yuav pom tias lub rooj sib txoos yog sib dhos lossis tsis sib dhos. Lawv tuaj yeem pab koj, tab sis lawv yuav tsis muab rau koj xyaum. Lawv tsuas tuaj yeem muab lub voj voog rau koj - Ok, tsis yog Ok. Thiab tom qab ntawd, yog tias koj tseem sau cov ntawv xeem, vim tias yog tsis muaj kev xeem, ces nws yuav luag tsis muaj txiaj ntsig. Yog li ntawd, nws yog qhov xav tau vim nws yooj yim dua, tab sis feem ntau koj tuaj yeem nyob yam tsis muaj nws, koj yuav tsis poob ntau.

Qhov ntawd yog, yog tias koj muaj kev coj ua, qhov ntawd txhais tau tias koj tsis xav tau?

Yog lawm. Kuv pom zoo kom xeem Jez Humble. Nyob ntawd kuv muaj tus cwj pwm tsis zoo rau qhov kawg. Tab sis feem ntau, yog tias koj muaj peb yam, koj sib koom ua ke tas li, koj khiav kev sim ntawm kev cog lus hauv tus tswv, koj kho qhov tsim hauv tus tswv sai sai, ces tej zaum koj tsis xav tau dab tsi ntxiv.

Thaum peb tab tom tos cov lus nug los ntawm cov neeg koom, kuv muaj lus nug. Peb tsuas yog tham txog cov khoom code. Koj puas tau siv nws rau kev tsim kho vaj tse? Puas yog tib txoj cai, nws puas muaj tib lub hauv paus ntsiab lus thiab tib lub neej voj voog, lossis puas muaj lub neej sib txawv thiab cov ntsiab cai? Feem ntau, thaum txhua leej txhua tus tham txog Kev Sib Txuas Ntxiv thiab Kev Txhim Kho, txhua tus tsis nco qab tias tseem muaj cov cai tswjfwm. Thiab tsis ntev los no tau muaj ntau thiab ntau ntawm nws. Thiab yuav tsum coj tag nrho cov cai no?

Tsis tas li ntawd yuav tsum yog, nws yuav zoo heev vim nws yuav ua rau lub neej yooj yim dua ib yam. Thaum peb ua haujlwm nrog cov lej, tsis yog nrog bash scripts, tab sis peb muaj cov lej qub.

Nres, nres, bash tsab ntawv kuj yog code. Txhob kov kuv txoj kev hlub qub.

Okay, kuv yuav tsis trampling koj puas. Kuv muaj tus kheej tsis nyiam rau bash. Nws tawg dab tuag thiab txaus ntshai txhua lub sijhawm. Thiab nws feem ntau tawg unpredictably, uas yog vim li cas kuv tsis nyiam nws. Tab sis zoo, cia peb hais tias koj muaj bash code. Tej zaum kuv yeej tsis nkag siab thiab muaj cov txheej txheem kev sim ib txwm muaj. Kuv tsuas yog tsis paub. Thiab peb tau txais cov txiaj ntsig zoo ib yam.

Thaum peb ua hauj lwm nrog infrastructure raws li cov cai, peb tau txais tag nrho cov teeb meem tib yam li developers. Ob peb lub hlis dhau los, kuv tau ntsib qhov xwm txheej uas ib tus npoj yaig xa kuv thov rub 1 kab hauv bash. Thiab koj dai tawm ntawm kev tshuaj xyuas rau 000 teev. Tib yam teeb meem tshwm sim. Nws tseem yog code. Thiab nws tseem yog kev sib koom tes. Peb tau daig nrog kev thov rub thiab peb tau daig nrog qhov tseeb tias peb tab tom daws qhov kev sib koom ua ke tsis sib haum xeeb hauv tib lub bash, piv txwv li.

Kuv tam sim no nquag saib tag nrho qhov no ntawm qhov zoo nkauj tshaj plaws infra programming. Tam sim no kuv tau coj Pulumi rau hauv kev tsim kho vaj tse. Qhov no yog programming nyob rau hauv nws daim ntawv purest. Muaj nws tseem zoo dua, vim tias kuv muaj tag nrho cov peev txheej ntawm cov lus programming, piv txwv li kuv ua kom zoo nkauj toggle tawm ntawm xiav nrog tib ifs thiab txhua yam zoo. Ntawd yog, kuv qhov kev hloov pauv twb nyob hauv tus tswv. Sawv daws twb pom nws lawm. Lwm cov engineers paub txog nws. Nws twb cuam tshuam ib yam dab tsi nyob ntawd. Txawm li cas los, nws tsis tau enabled rau tag nrho cov infrastructures. Nws qhib rau kuv lub rooj zaum xeem, piv txwv. Yog li ntawd, txhawm rau teb koj cov lus nug dua, nws yog qhov tsim nyog. Nws ua rau lub neej yooj yim dua rau peb, raws li cov engineers ua haujlwm nrog cov lej, tib txoj kev.

Yog leej twg muaj lus nug?

Kuv muaj lus nug. Kuv xav txuas ntxiv kev sib tham nrog Oleg. Feem ntau, kuv xav tias koj hais yog lawm, yog tias ib txoj haujlwm yuav siv sij hawm ib hlis kom tiav, ces koj muaj teeb meem nrog architecture, koj muaj teeb meem nrog kev tsom xam, decomposition, kev npaj, thiab lwm yam. Tab sis kuv muaj kev xav tias yog tias koj pib. sim ua neej nyob raws li kev sib koom ua ke tsis tu ncua, ces koj yuav pib kho qhov mob nrog kev npaj, vim tias koj yuav tsis khiav tawm ntawm nws mus rau lwm qhov.

(Oleg) Yog lawm, yog lawm. Qhov kev coj ua no yog piv rau kev siv zog rau lwm yam kev coj noj coj ua loj-hloov. Qhov nyuaj tshaj plaws yog kev coj cwj pwm, tshwj xeeb tshaj yog cov cwj pwm phem. Thiab yog tias txhawm rau ua raws li qhov kev coj ua no, yuav tsum muaj kev hloov pauv loj hauv cov cwj pwm ntawm cov neeg nyob ib puag ncig koj: cov neeg tsim khoom, kev tswj hwm, tus thawj coj tsim khoom, ces kev xav tsis thoob tos koj.

Yuav ua li cas surprises? Cia peb hais tias koj txiav txim siab tias koj yuav koom ua ke ntau zaus. Thiab koj muaj qee yam khoom khi rau kev sib koom ua ke, piv txwv li, cov khoom qub. Thiab nyob rau hauv koj lub tuam txhab, piv txwv li, muaj ib txoj cai hais tias txhua yam artifacts yuav tsum tau accounted nyob rau hauv ib co txoj kev nyob rau hauv ib co hom ntawm artifact cia system. Thiab nws yuav siv sij hawm me ntsis. Ib tug neeg yuav tsum tau kos lub thawv uas nws, raws li tus thawj coj tso tawm, tau sim cov khoom cuav no kom paub tseeb tias nws tau npaj rau kev tso tawm hauv kev tsim khoom. Yog tias nws siv sijhawm 5-10-15 feeb, tab sis koj ua qhov kev teeb tsa ib zaug hauv ib lub lis piam, ces siv ib nrab ib teev ib zaug hauv ib lub lis piam yog se me me.

Yog tias koj ua Kev Sib Txuas Ntxiv 10 zaug hauv ib hnub, ces 10 zaug yuav tsum tau muab faib ua 30 feeb. Thiab qhov no tshaj li lub sijhawm ua haujlwm ntawm tus thawj tswj kev tso tawm no. Nws tsuas yog nkees ua xwb. Muaj cov nqi tas rau qee qhov kev coj ua. Yog tag nrho.

Thiab koj yuav tsum tau tshem tawm txoj cai no kom koj tsis txhob ua cov khib nyiab no ntxiv lawm, piv txwv li koj tsis muab ib daim ntawv pov thawj los sib piv rau qee yam. Koj vam khom tag nrho rau qee qhov kev ntsuas kev npaj ua ntej.

Thiab yog tias koj xav tau cov ntaub ntawv pov thawj los ntawm ib tug neeg, kom tus thawj coj kos npe rau nws, thiab koj tsis nkag mus rau hauv kev tsim khoom yam tsis muaj Vasya hais tias nws tso cai, thiab lwm yam - tag nrho cov lus tsis zoo no tau txais hauv txoj kev ntawm tus kws kho mob. Vim hais tias yog muaj qee yam kev ua ub no cuam tshuam nrog cov se, ces txhua yam nce 100 npaug. Yog li ntawd, kev ua haujlwm feem ntau yuav tsis tau txais tos nrog kev xyiv fab los ntawm txhua tus. Vim tib neeg tus cwj pwm tsis yooj yim hloov.

Thaum ib tug neeg ua nws li ib txwm ua, nws yuav luag tsis xav. Nws kev txawj ntse load yog xoom. Nws tsuas yog ua si nrog nws, nws twb muaj daim ntawv teev npe hauv nws lub taub hau, nws tau ua nws ntau txhiab zaus. Thiab sai li sai tau thaum koj tuaj thiab qhia nws: "Cia peb tshem tawm qhov kev coj ua no thiab qhia ib qho tshiab pib hnub Monday," rau nws nws yuav dhau los ua qhov kev paub muaj zog. Thiab nws los rau sawv daws ib zaug.

Yog li ntawd, qhov yooj yim tshaj plaws, txawm tias tsis yog txhua tus tuaj yeem them taus qhov khoom kim heev, tab sis qhov no yog qhov kuv ib txwm ua, qhov no yog cov hauv qab no. Yog tias qhov project tshiab pib, ces feem ntau tag nrho cov kev coj ua tsis tau zoo yog tam sim crammed rau hauv qhov project no. Thaum lub phiaj xwm tseem hluas, peb tsis tshua txaus ntshai dab tsi. Tseem tsis tau muaj Prod, tsis muaj dab tsi los rhuav tshem. Yog li ntawd, nws tuaj yeem siv los ua kev cob qhia. Txoj kev no ua haujlwm. Tab sis tsis yog txhua lub tuam txhab muaj lub sijhawm los pib cov haujlwm zoo li no feem ntau. Txawm hais tias qhov no kuj yog qhov txawv me ntsis, vim tias tam sim no muaj kev hloov pauv digital tag nrho, txhua tus yuav tsum tau tsim cov kev sim txhawm rau txhawm rau khaws cov neeg sib tw.

Ntawm no koj tuaj txog qhov xaus tias koj yuav tsum xub muaj kev nkag siab txog yam koj yuav tsum ua. Lub ntiaj teb tsis zoo tagnrho, thiab cov khoom lag luam tsis zoo tagnrho.

Yog, tej yam no muaj kev sib tshuam.

Cov lag luam kuj tsis tas yuav nkag siab tias lawv yuav tsum mus li no.

Muaj ib qho xwm txheej uas tsis muaj kev hloov pauv tau txhua. Qhov no yog qhov xwm txheej uas muaj kev ntxhov siab ntau dua rau pab pawg. Pab neeg no twb hlawv heev lawm. Nws tsis muaj sijhawm txaus rau kev sim. Lawv ua haujlwm ntawm cov yam ntxwv txij thaum sawv ntxov mus rau yav tsaus ntuj. Thiab kev tswj hwm muaj tsawg thiab tsawg dua nta. Xav tau ntau thiab ntau dua. Nyob rau hauv cov xwm txheej zoo li no, tsis muaj kev hloov pauv tau txhua. Pab neeg no tsuas yog qhia tau hais tias tag kis peb yuav ua ib yam li nag hmo, peb tsuas yog yuav tsum ua kom me ntsis ntxiv. Hauv qhov kev nkag siab no, tsis muaj kev hloov pauv mus rau ib qho kev coj ua ua tau. Qhov no yog ib qho xwm txheej classic thaum tsis muaj sij hawm los ua kom lub ntsej muag, cov ntoo yuav tsum tau txiav, yog li lawv txiav nws nrog ib tug dull axe. Tsis muaj cov lus qhia yooj yim ntawm no.

(Dmitry) Kuv mam li nyeem cov lus piav qhia los ntawm kev sib tham: β€œTab sis peb xav tau ntau qhov kev ntsuam xyuas ntawm ntau qib. Yuav muab sijhawm npaum li cas rau kev xeem? Nws yog me ntsis kim thiab siv sijhawm ntau. "

(Oleg) Qhov no yog classic misconception. Yuav tsum muaj kev xeem txaus rau koj kom muaj kev ntseeg siab. Kev sib koom ua ke tsis tu ncua tsis yog qhov uas 100% ntawm qhov kev xeem ua ntej thiab tsuas yog tom qab ntawd koj pib siv qhov kev coj ua no. Kev sib koom ua ke tsis tu ncua txo koj txoj kev paub txog kev thauj khoom vim qhov tseeb tias txhua qhov kev hloov pauv uas koj pom ntawm koj lub qhov muag yog qhov pom tseeb tias koj nkag siab seb nws puas yuav tawg qee yam lossis tsis, txawm tias tsis muaj kev sim. Koj tuaj yeem sim qhov no hauv koj lub taub hau sai sai vim tias qhov kev hloov pauv me me. Txawm hais tias koj tsuas muaj phau ntawv xeem, nws yooj yim dua rau lawv thiab. Koj dov tawm thiab hais tias: "Saib, puas muaj dab tsi tawg?" Lawv tshawb xyuas thiab hais tias, "Tsis muaj, tsis muaj dab tsi tawg." Vim tus kuaj paub qhov twg los saib. Koj muaj ib qho kev cog lus nrog rau ib qho ntawm cov cai. Thiab qhov no yog siv los ntawm tus cwj pwm tshwj xeeb.

Ntawm no koj, ntawm chav kawm, embellished.

(Dmitry) Kuv tsis pom zoo ntawm no. Muaj kev xyaum - sim-tsav kev txhim kho, uas yuav cawm koj ntawm qhov no.

(Oleg) Zoo, Kuv tseem tsis tau mus txog qhov ntawd. Thawj qhov illusion yog tias koj yuav tsum tau sau 100% ntawm qhov kev xeem lossis koj tsis tas yuav ua Kev Sib Txuas Txuas Ntxiv txhua. Tsis muaj tseeb. Cov no yog ob qho kev coj ua sib luag. Thiab lawv tsis yog nyob ncaj qha. Koj qhov kev xeem yuav tsum yog qhov zoo tshaj plaws. Qhov zoo tshaj plaws - qhov no txhais tau hais tias koj tus kheej muaj kev ntseeg siab tias qhov zoo ntawm tus tswv uas koj tus tswv tseem nyob tom qab qhov kev cog lus tso cai rau koj kom ntseeg siab nias lub pob "Deploy" rau hnub Friday yav tsaus ntuj. Koj ua tiav qhov no li cas? Los ntawm kev tshuaj xyuas, los ntawm kev pov hwm, los ntawm kev saib xyuas zoo.

Kev saib xyuas zoo yog qhov txawv ntawm qhov kev xeem. Yog tias koj khiav cov kev xeem ib zaug ntawm cov khoom ua ntej, ces lawv tshawb xyuas tag nrho koj cov neeg siv ntawv ib zaug thiab qhov ntawd yog nws. Thiab yog tias koj khiav lawv nyob rau hauv lub voj tsis muaj qhov kawg, qhov no yog koj qhov kev soj ntsuam xyuas, uas tsis muaj qhov ntsuas txhua yam - txawm tias nws poob los yog tsis. Hauv qhov no, qhov sib txawv tsuas yog seb nws ua tiav ib zaug lossis ob zaug. Ib qho kev xeem zoo heev ... khiav tsis kawg, qhov no yog kev soj ntsuam. Thiab kev saib xyuas kom zoo yuav tsum zoo li no.

Thiab yog li ntawd, koj yuav ua tiav lub xeev no li cas thaum koj npaj txhij rau hnub Friday yav tsaus ntuj thiab mus tsev yog lwm lo lus nug. Tej zaum koj tsuas yog ib tug bold scumbag.

Cia peb rov qab me ntsis rau Kev Sib Txuas Ntxiv. Peb khiav tawm mus rau hauv ib qho kev xyaum sib txawv me ntsis.

Thiab qhov kev xav thib ob yog tias MVP, lawv hais tias, yuav tsum tau ua sai sai, yog li kev sim tsis xav tau nyob ntawd txhua. Tsis muaj tseeb li ntawd. Qhov tseeb yog tias thaum koj sau cov neeg siv zaj dab neeg hauv MVP, koj tuaj yeem tsim nws ntawm lub pob, uas yog, koj tau hnov ​​​​tias muaj qee yam ntawm cov neeg siv zaj dab neeg thiab tam sim ntawd khiav mus rau code nws, lossis koj tuaj yeem ua haujlwm siv TDD. Thiab raws li TDD, raws li kev xyaum qhia, nws tsis siv sijhawm ntev dua, piv txwv li kev sim yog qhov tshwm sim. Kev xyaum ntawm TDD tsis yog hais txog kev xeem. Txawm hais tias hu ua Test Driven Development, nws tsis yog hais txog kev xeem txhua. Qhov no kuj yog ib txoj hauv kev architectural. Qhov no yog ib txoj hauv kev sau ntawv raws nraim qhov xav tau thiab tsis sau yam tsis xav tau. Qhov no yog qhov kev coj ua ntawm tsom mus rau qhov kev rov ua dua tom ntej ntawm koj txoj kev xav hauv cov ntsiab lus ntawm kev tsim cov ntawv thov architecture.

Yog li ntawd, nws tsis yog yooj yim kom tshem tau cov illusions. MVP thiab kev xeem tsis sib cav sib ceg. Txawm li cas los xij, ntawm qhov tsis sib xws, yog tias koj ua MVP siv TDD xyaum, ces koj yuav ua tau zoo dua thiab sai dua yog tias koj ua nws yam tsis muaj kev xyaum, tab sis ntawm lub pob.

Qhov no yog ib lub tswv yim tsis meej thiab nyuaj heev. Thaum koj hnov ​​​​tias tam sim no kuv yuav sau ntau qhov kev xeem thiab tib lub sijhawm kuv yuav ua qee yam sai dua, nws suab tsis txaus.

(Dmitry) Ntau tus neeg nyob ntawm no, thaum lawv hu rau MVP, tib neeg tub nkeeg dhau los sau tej yam qub. Thiab cov no tseem yog qhov txawv. Tsis tas yuav hloov MVP rau qee qhov tsis zoo uas tsis ua haujlwm.

Yog lawm, koj hais yog lawm.

Thiab ces mam li nco dheev MVP nyob rau hauv prod.

Nyob mus ib txhis.

Thiab TDD suab txawv txawv heev thaum koj hnov ​​​​tias koj sau ntawv xeem thiab zoo li ua haujlwm ntau dua. Nws suab txawv heev, tab sis qhov tseeb nws hloov tawm sai dua thiab zoo nkauj li no. Thaum koj sau ib qho kev xeem, koj twb xav ntau heev nyob rau hauv koj lub taub hau txog dab tsi code yuav hu ua thiab yuav ua li cas, nrog rau cov cwj pwm uas peb xav tau los ntawm nws. Koj tsis yog hais tias kuv sau qee qhov haujlwm thiab nws ua qee yam. Thaum xub thawj koj xav tias nws muaj cov xwm txheej zoo li no, nws yuav raug hu los ua qhov zoo li ntawd. Koj npog qhov no nrog cov kev ntsuam xyuas thiab los ntawm qhov no koj nkag siab tias koj cov interfaces yuav zoo li cas hauv koj cov cai. Qhov no muaj kev cuam tshuam loj heev rau architecture. Koj tus lej cia li dhau los ua qauv ntau dua, vim tias koj thawj zaug sim nkag siab tias koj yuav sim nws li cas, thiab tsuas yog tom qab ntawd sau nws.

Dab tsi tshwm sim rau kuv nrog TDD yog tias qee lub sijhawm kuv tau ntiav Ruby tus cob qhia thaum kuv tseem yog Ruby programmer. Thiab nws hais tias: "Cia li ua raws li TDD." Kuv xav tias: "Damn, tam sim no kuv yuav tsum sau ib yam dab tsi ntxiv." Thiab peb tau pom zoo tias tsis pub dhau ob lub lis piam kuv yuav sau tag nrho cov lej ua haujlwm hauv Python siv TDD. Tom qab ob lub lis piam, kuv paub tias kuv tsis xav rov qab mus. Tom qab ob lub lis piam ntawm kev sim siv qhov no txhua qhov chaw, koj paub tias nws yooj yim npaum li cas los ua rau koj tsuas yog xav. Tab sis qhov no tsis pom tseeb, yog li kuv xav kom txhua tus neeg xav tias yog tias koj xav tias TDD nyuaj, siv sijhawm thiab tsis tsim nyog, sim ua raws li nws tsuas yog ob lub lis piam xwb. Ob tug tau txaus rau kuv.

(Dmitry) Peb tuaj yeem nthuav tawm lub tswv yim no los ntawm qhov pom ntawm kev ua haujlwm hauv vaj tse. Ua ntej peb tso ib yam dab tsi tshiab, peb saib xyuas thiab tom qab ntawd tso tawm. Hauv qhov no, kev saib xyuas dhau los ua ib qho kev sim rau peb. Thiab muaj kev txhim kho los ntawm kev saib xyuas. Tab sis yuav luag txhua leej txhua tus hais tias nws ntev, kuv tub nkeeg, kuv tau ua ib daim ntawv teev lus ib ntus. Yog tias peb tau ua qhov kev soj ntsuam ib txwm, peb nkag siab txog lub xeev ntawm CI system. Thiab CI system muaj ntau yam kev soj ntsuam. Peb to taub lub xeev ntawm lub system, peb to taub dab tsi nyob rau hauv nws. Thiab thaum lub sij hawm txoj kev loj hlob, peb tsuas yog ua lub kaw lus kom nws mus txog lub xeev xav tau.

Cov kev coj ua no tau paub ntev los lawm. Peb tau tham txog qhov no txog 4 xyoo dhau los. Tab sis nyob rau hauv 4 xyoo xyaum tsis muaj dab tsi hloov.

Tab sis ntawm daim ntawv no, kuv thov kom xaus qhov kev sib tham ntawm nom tswv.

Video (ntxig raws li lub ntsiab lus xov xwm, tab sis vim qee yam tsis ua haujlwm):

https://youtu.be/zZ3qXVN3Oic

Tau qhov twg los: www.hab.com

Ntxiv ib saib