Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

E kūkākūkā kākou no ke aha he ʻokoʻa loa nā mea paahana CI a me CI.

He aha ka ʻeha a CI i manaʻo ai e hoʻoponopono, no hea mai ka manaʻo, he aha nā hōʻoia hou e hana ai, pehea e hoʻomaopopo ai he hana kāu a ʻaʻole hoʻokomo wale iā Jenkins.

Ua ʻike ʻia ka manaʻo o ka hana ʻana i kahi hōʻike e pili ana i ka Continuous Integration i hoʻokahi makahiki i hala aku nei, i koʻu hele ʻana no nā nīnauele a ʻimi i kahi hana. Ua kamaʻilio wau me nā hui 10-15, hoʻokahi wale nō o lākou i hiki ke pane maopopo i ke ʻano o ka CI a wehewehe i ka pehea i ʻike ai lākou ʻaʻole i loaʻa iā lākou. ʻO nā mea ʻē aʻe ke kamaʻilio ʻole ʻia e pili ana iā Jenkins :) ʻAe, aia iā mākou ʻo Jenkins, kūkulu ʻia, CI! I ka wā o ka hōʻike, e hoʻāʻo wau e wehewehe i ke ʻano o ka Continuous Integration a me ke kumu i nāwaliwali loa ai ʻo Jenkins a me nā mea hana like me kēia.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

No laila, he aha ka mea maʻamau i kou lohe ʻana i ka huaʻōlelo CI? E noʻonoʻo ka hapa nui o Jenkins, Gitlab CI, Travis, etc.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

ʻOiai inā mākou e google, e hāʻawi iā mākou i kēia mau mea hana.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

Inā kamaʻāina ʻoe i ka nīnau ʻana, a laila ma hope koke o ka hoʻopaʻa inoa ʻana i nā mea hana, e haʻi lākou iā ʻoe ʻo CI ke kūkulu ʻoe a holo i nā hoʻokolohua ma kahi Pull Request for a commit.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

ʻAʻole pili ka Continuous Integration i nā mea hana, ʻaʻole e pili ana i nā hui me nā hoʻokolohua ma ka lālā! ʻO ka Continuous Integration ka hana o ka hoʻohui pinepine ʻana i nā code hou a no ka hoʻohana ʻana ia mea ʻaʻole pono ke pā iā Jenkins, GitLab, etc.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

Ma mua o ka noʻonoʻo ʻana i ke ʻano o kahi CI piha, e luʻu mua kākou i ka pōʻaiapili o ka poʻe i hele mai me ia a ʻike i ka ʻeha a lākou e hoʻāʻo nei e hoʻoponopono.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

A ua hoʻoholo lākou i ka ʻeha o ka hana pū ʻana ma ke ʻano he hui!

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

E nānā kākou i nā laʻana o nā pilikia e kū nei nā mea hoʻomohala i ka wā e hoʻomohala ana i nā hui. Eia kā mākou papahana, he lālā kumu ma git a me ʻelua mea hoʻomohala.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

A hele lākou i ka hana e like me ka mea i maʻa mau i nā mea a pau. Lawe mākou i kahi hana ma ka papahana nui o nā mea, hana i kahi lālā hiʻohiʻona, a kākau i ke code.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

Hoʻopau wikiwiki kekahi i ka hiʻona a hoʻohui i ka haku.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

Pono ka lua o ka manawa hou, hui ia ma hope a hoʻopau i kahi hakakā. I kēia manawa, ma kahi o ke kākau ʻana i nā hiʻohiʻona e pono ai ka ʻoihana, hoʻohana ka mea hoʻomohala i kona manawa a me ka ikaika e hoʻoponopono i nā paio.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

ʻOi aku ka paʻakikī o ka hoʻohui ʻana i kāu hiʻohiʻona me kahi haku maʻamau, ʻoi aku ka nui o ka manawa a mākou e hoʻolilo ai. A ua hōʻike wau i kēia me kahi hiʻohiʻona maʻalahi. He laʻana kēia ma kahi o nā mea hoʻomohala 2. E noʻonoʻo inā 10 a 15 a 100 paha poʻe i loko o kahi hui e kākau i hoʻokahi waihona. E hele pupule ʻoe e hoʻoponopono i kēia mau paio.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

Aia kekahi hihia ʻokoʻa. Loaʻa iā mākou kahi haku a me kekahi mau mea hoʻomohala e hana nei i kekahi mea.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

Ua hana lākou i kahi lāʻau.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

Ua make kekahi, ua maikaʻi nā mea a pau, ua hala ʻo ia i ka hana.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

ʻO ka lua o ka mea hoʻomohala, i kēia manawa, hāʻawi i kāna hana. E ʻōlelo kākou ua hoʻouna ʻo ia no ka loiloi. Nui nā ʻoihana i kahi hana i kapa ʻia he loiloi. Ma kekahiʻaoʻao, maikaʻi a pono kēia hana, ma kekahiʻaoʻao, e hoʻolohi iā mākou ma nāʻano he nui. ʻAʻole mākou e hele i kēlā, akā eia kahi hiʻohiʻona maikaʻi o ka mea hiki ke alakaʻi i kahi moʻolelo loiloi maikaʻi ʻole. Ua waiho ʻoe i kahi noi huki no ka nānā ʻana. ʻAʻohe mea hou a ka mea hoʻomohala e hana ai. He aha kāna e hoʻomaka ai e hana? Hoʻomaka ʻo ia e hana i nā hana ʻē aʻe.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

I kēia manawa, ua hana ka mea hoʻomohala ʻelua i kekahi mea ʻē aʻe.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

Ua hoʻopau ka mea mua i ke kolu o ka hana.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

A ma hope o kekahi manawa lōʻihi, ua hoʻāʻo ʻia kāna loiloi, a ke hoʻāʻo nei ʻo ia e hoʻokō. No laila he aha ka hana? Loaʻa iā ia ka nui o nā hakakā. No ke aha mai? No ka mea, ʻoiai e kau ana kāna noi huki i ka loiloi, ua loli nā mea he nui i ke code.

Ma waho aʻe o ka moʻolelo me nā paio, aia kekahi moʻolelo me nā kamaʻilio. ʻOiai e kau ana kāu pae ma ka loiloi, ʻoiai e kali ana i kahi mea, ʻoiai ʻoe e hana ana i kahi hiʻohiʻona no ka manawa lōʻihi, hoʻōki ʻoe i ka nānā ʻana i nā mea ʻē aʻe e hoʻololi nei i ke kumu code o kāu lawelawe. Malia paha ua hoʻoholo ʻia ka mea āu e hoʻāʻo nei e hoʻoponopono i kēia manawa a hiki iā ʻoe ke lawe i kekahi ala a hoʻohana hou. Akā ʻaʻole ʻoe e ʻike i kēia no ka mea ke hana mau nei ʻoe me kahi lālā kahiko. A ʻo kēia lālā kahiko e hopena mau iā ʻoe e hoʻonā i kahi hakakā hui.

ʻIke ʻia inā hana mākou ma ke ʻano he hui, ʻo ia hoʻi, ʻaʻole hoʻokahi kanaka e poking a puni i ka waihona, akā 5-10 poʻe, a laila ʻoi aku ka lōʻihi o ka hoʻohui ʻole ʻana i kā mākou code i ka haku, ʻoi aku ka nui o ka pilikia no ka mea pono mākou. kekahi mea a laila hoʻohui. A ʻo ka nui o nā paio i loaʻa iā mākou, a me ka mana kahiko a mākou e hana pū ai, ʻoi aku ka nui o nā pilikia i loaʻa iā mākou.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

He mea ʻeha ka hana pū ʻana! Loaʻa mau mākou i ke ala o kekahi.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

Ua ʻike ʻia kēia pilikia ma mua o 20 mau makahiki i hala. Ua loaʻa iaʻu ka ʻōlelo mua o ka hoʻomaʻamaʻa ʻana o ka Hoʻohui Hoʻomau i ka Extreme Programming.

ʻO Extreme Programming ka papa hana agile mua. Ua puka ka ʻaoʻao i ka makahiki 96. A ʻo ka manaʻo e hoʻohana i kekahi ʻano hana hoʻolālā, hoʻolālā a me nā mea ʻē aʻe, i hiki ke maʻalahi ka hoʻomohala ʻana e like me ka hiki, i hiki iā mākou ke pane koke i nā loli a i ʻole nā ​​koi mai kā mākou mea kūʻai aku. A ua hoʻomaka lākou e alo i kēia 24 mau makahiki i hala aku nei, inā ʻoe e hana i kekahi mea no ka manawa lōʻihi loa a ma ka ʻaoʻao, a laila hoʻonui ʻoe i ka manawa ma ia mea no ka mea he mau paio kāu.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

I kēia manawa, e nānā mākou i ka huaʻōlelo "Continuous Integration" i kēlā me kēia. Inā mākou e unuhi pololei, loaʻa iā mākou ka hoʻohui mau. Akā, ʻaʻole maopopo loa ka hoʻomau ʻana; Akā ʻaʻole maopopo loa ka nui o ka hoʻohui ʻana.

A ʻo ia ke kumu ke hāʻawi aku nei au iā ʻoe i nā huaʻōlelo mai Extreme Programming i kēia manawa. A e hoʻokaʻawale mākou i nā huaʻōlelo ʻelua.

Hoʻohui - E like me kaʻu i ʻōlelo ai, hoʻoikaika mākou e hōʻoia i ka hana ʻana o kēlā me kēia ʻenekinia me ka mana hou loa o ke code, i hoʻoikaika ʻo ia e hoʻohui pinepine i kāna code i kahi lālā maʻamau, no laila he mau lālā liʻiliʻi kēia. No ka mea inā nui lākou, a laila hiki iā mākou ke hoʻopaʻa maʻalahi me nā hakakā hoʻohui no hoʻokahi pule. He ʻoiaʻiʻo kēia inā loaʻa iā mākou kahi pōʻai hoʻomohala lōʻihi e like me ka wailele, kahi i hele ai ka mea hoʻomohala no hoʻokahi mahina e ʻoki i kahi hiʻohiʻona nui. A e paʻa ʻo ia i ka pae hoʻohui no ka manawa lōʻihi loa.

ʻO ka hoʻohui ʻana ke lawe mākou i kā mākou lālā a hoʻohui pū me ka haku, hoʻohui mākou iā ia. Aia kahi koho hope loa ke lilo mākou i mea hoʻomohala transbase, kahi mākou e hoʻoikaika ai e hōʻoia e kākau koke mākou i ka haku me ka ʻole o nā lālā ʻē aʻe.

Ma keʻano laulā, ʻo ka hoʻohui ʻana ʻo ia ka lawe ʻana i kāu code a kauo i loko o ka haku.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

He aha ka manaʻo ma ʻaneʻi e ka huaʻōlelo "hoʻomau", he aha ka mea i kapa ʻia ʻo continuity? Hōʻike ka hoʻomaʻamaʻa e hoʻoikaika ka mea hoʻomohala e hoʻohui i kāna code me ka hikiwawe loa. ʻO kāna pahuhopu kēia i ka wā e hana ai i kekahi hana - e hoʻokomo i kāna code i haku i ka wikiwiki. Ma kahi honua kūpono, e hana nā mea hoʻomohala i kēlā me kēia mau hola. ʻO ia hoʻi, lawe ʻoe i kahi pilikia liʻiliʻi a hoʻohui i loko o ka haku. Nui nā mea a pau. ʻO kēia kāu e hoʻoikaika nei. A pono e hana mau kēia. Ke hana ʻoe i kekahi mea, hoʻokomo koke ʻoe i loko o ka haku.

A ʻo ka mea hoʻomohala i hana i kekahi mea ke kuleana no kāna mea i hana ai e hoʻokō a ʻaʻole e uhaʻi i kekahi mea. ʻO kēia kahi e puka pinepine ai ka moʻolelo hoʻāʻo. Makemake mākou e hoʻāʻo i kā mākou hana, ma kā mākou hui ʻana, e hōʻoia i ka hana. A eia kahi e hiki ai iā Jenkins ke kōkua iā ʻoe.

Akā me nā moʻolelo: e hoʻololi liʻiliʻi kāua, e liʻiliʻi nā hana, e hana i kahi pilikia a hoʻāʻo koke e hoʻokomo i loko o ka haku - ʻaʻohe Jenkins e kōkua ma aneʻi. No ka mea e kōkua wale ʻo Jenkins iā ʻoe e holo i nā hoʻokolohua.

Hiki iā ʻoe ke hana me ka ʻole o lākou. ʻAʻole e hōʻeha iki iā ʻoe. No ka mea, ʻo ka pahuhopu o ka hoʻomaʻamaʻa ʻana ʻo ia ke ana ʻana i nā manawa e hiki ai, i ʻole e hoʻopau i ka manawa nui ma nā paio i ka wā e hiki mai ana.

E noʻonoʻo kākou no kekahi kumu aia mākou i 2020 me ka ʻole o ka Pūnaewele. A hana mākou ma ka ʻāina. ʻAʻohe o mākou Jenkins. Maikaʻi kēia. Hiki iā ʻoe ke hele i mua a hana i kahi lālā kūloko. Ua kākau ʻoe i kekahi code i loko. Hoʻopau mākou i ka hana i nā hola 3-4. Ua hoʻololi mākou i ka haku, huki git, a hoʻohui i kā mākou lālā ma laila. Mākaukau. Inā hana pinepine ʻoe i kēia, mahalo, loaʻa iā ʻoe ka Continuous Integration!

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

He aha nā hōʻike i ka honua hou e pono ai ke hoʻohana i ka ikehu? No ka mea ma ka laulā he paʻakikī. Inā ʻoe e hoʻāʻo e hana e like me kēia, e hoʻomaopopo ʻoe e pili ana kekahi hoʻolālā i kēia manawa, pono ʻoe e hāʻawi manawa hou i nā hana decomposing. No ka mea, inā e hana ʻoe i ke kanaka ..., a laila ʻaʻole hiki iā ʻoe ke hoʻoholo koke a, no laila, e komo i ka pilikia. ʻAʻole ʻoe e hoʻomaʻamaʻa hou.

A he pipiʻi. ʻAʻole hiki ke hana koke mai ka lā ʻapōpō me ka hoʻohana ʻana i ka Continuous Integration. He manawa lōʻihi loa ia e hoʻomaʻamaʻa iā ʻoe, lōʻihi ka manawa e maʻa ai i nā hana decomposing, lōʻihi ka manawa e maʻa hou i ka hana loiloi, inā loaʻa iā ʻoe kekahi . No ka mea, ʻo kā mākou pahuhopu e hoʻoheheʻe i kēia lā. A inā ʻoe e hana i kahi loiloi i loko o ʻekolu mau lā, a laila loaʻa iā ʻoe nā pilikia a ʻaʻole hana ʻo Continuous Integration iā ʻoe.

Akā, loaʻa iā mākou kekahi mau hōʻike kūpono i kēia manawa e haʻi iā mākou he kūpono ka hoʻokomo ʻana i kēia hana?

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

ʻO ka mea mua i hiki i koʻu manaʻo ʻo State of DevOps. He haʻawina kēia a nā kāne i mālama ai no 7 mau makahiki. I kēia manawa hana lākou ma ke ʻano he hui kūʻokoʻa, akā ma lalo o Google.

A ua hōʻike kā lākou noiʻi 2018 i kahi pilina ma waena o nā hui e ho'āʻo nei e hoʻohana i nā lālā pōkole e hoʻohui wikiwiki, hoʻohui pinepine, a loaʻa nā hōʻailona hana IT maikaʻi.

He aha kēia mau hōʻailona? ʻO kēia nā metric 4 a lākou e lawe ai mai nā hui āpau i kā lākou nīnau nīnau: ka hoʻouna pinepine ʻana, ka manawa alakaʻi no nā loli, ka manawa e hoʻihoʻi i ka lawelawe, hoʻololi i ka helu hemahema.

A, ʻo ka mea mua, aia kēia correlation, ʻike mākou ʻoi aku ka maikaʻi o nā ʻoihana e ana pinepine. A loaʻa iā lākou ka mahele o nā ʻoihana i nā ʻāpana he nui: ʻo kēia nā hui lohi e hana i kahi mea lohi, mea hana maʻamau, mea hana kiʻekiʻe a elite. ʻO ka elite ʻo Netflix, Amazon, he wikiwiki loa, hana i nā mea āpau me ka wikiwiki, nani a me ka maikaʻi.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

ʻO ka moʻolelo ʻelua, i hana ʻia i hoʻokahi mahina i hala. He ʻatikala maikaʻi ʻo Technology Radar e pili ana iā Gitflow. He ʻokoʻa ʻo Gitflow mai nā mea ʻē aʻe a pau i ka lōʻihi o kona mau lālā. Aia nā lālā hoʻokuʻu e ola no ka manawa lōʻihi, a me nā lālā hiʻohiʻona e ola lōʻihi hoʻi. Ua neʻe kēia hana ma Technology Radar i HOLD. No ke aha mai? No ka mea, ke alo nei na kanaka i ka eha o ka hoohui ana.

Inā lōʻihi ka lōʻihi o ka ola ʻana o kou lālā, paʻa ia, palapō, a hoʻomaka mākou e hoʻonui i ka manawa e hoʻāʻo ai e hoʻololi iā ia.

A i kēia manawa ua ʻōlelo ka mea kākau o Gitflow inā ʻo ka Hoʻohui Hoʻomau kāu pahuhopu, inā ʻo kāu pahuhopu makemake ʻoe e ʻōwili pinepine i ka hiki, a laila he manaʻo maikaʻi ʻole ʻo Gitflow. Ua hoʻohui kaʻawale ʻo ia i ka ʻatikala inā loaʻa iā ʻoe kahi backend kahi e hiki ai iā ʻoe ke hoʻoikaika no kēia, a laila ʻoi aku ka maikaʻi o Gitflow iā ʻoe, no ka mea e lohi ʻo Gitflow iā ʻoe, e hana ʻo Gitflow i nā pilikia no ʻoe me ka hoʻohui.

ʻAʻole kēia manaʻo he hewa ʻo Gitflow a ʻaʻole pono e hoʻohana. No nā manawa ʻē aʻe. No ka laʻana, inā pono ʻoe e kākoʻo i kekahi mau mana o kahi lawelawe a i ʻole noi, ʻo ia hoʻi kahi āu e makemake ai i ke kākoʻo no ka manawa lōʻihi.

Akā inā ʻoe e kamaʻilio me ka poʻe e kākoʻo ana i ia mau lawelawe, e lohe ʻoe i ka nui o ka ʻeha e pili ana i ka ʻoiaʻiʻo ʻo 3.2 kēia mana, ʻo 4 mau mahina i hala aku nei, akā ʻaʻole i hoʻokomo ʻia kēia hoʻoponopono i loko a i kēia manawa, i mea e hana ai. pono ʻoe e hana i nā hoʻololi. A i kēia manawa ua paʻa hou lākou, a i kēia manawa ua hele lākou i kahi pule e hoʻāʻo nei e hoʻokō i kahi hiʻohiʻona hou.

E like me kā Alexander Kovalev i hōʻike pololei ai i ke kamaʻilio, ʻaʻole like ka correlation me ke kumu. He oiaio keia. ʻO ia hoʻi, ʻaʻohe pili pololei inā loaʻa iā ʻoe ka Hoʻohui Hoʻomau, a laila e maikaʻi nā metric āpau. Akā, aia kahi pilina maikaʻi inā hoʻokahi kekahi, a laila ʻoi aku ka nui o kekahi. ʻAʻole he ʻoiaʻiʻo, akā ʻoi loa. He pilina wale nō.

Hoʻohui mau ma ke ʻano he hana, ʻaʻole ʻo Jenkins. Andrey Alexandrov

Me he mea lā ke hana nei mākou i kekahi mea, me he mea lā ua hui mua mākou, akā pehea lā mākou e hoʻomaopopo ai aia mākou i ka Continuous Integration, ke hoʻohui pinepine nei mākou?

ʻO Jez Humble ka mea kākau o Handbook, Accelerate, the Continuous Delivery website, a me ka puke Continuous Delivery. Hāʻawiʻo ia i kēia ho'āʻo:

  • Loaʻa ke code o ka ʻenekinia i ka haku i kēlā me kēia lā.
  • No kēlā me kēia hana e holo ʻoe i nā hoʻokolohua ʻāpana.
  • Ua hāʻule ka hale i loko o ka haku, ua hoʻopaʻa ʻia ma kahi o 10 mau minuke.

Manaʻo ʻo ia e hoʻohana i kahi hoʻāʻo e like me kēia e hōʻoia i ka lawa o kāu hoʻomaʻamaʻa.

ʻIke wau i ka mea hope he mea hoʻopaʻapaʻa iki. ʻO ia hoʻi, inā hiki iā ʻoe ke hoʻoponopono iā ia i loko o 10 mau minuke, a laila loaʻa iā ʻoe ka Continuous Integration, he mea ʻē aʻe ia, i koʻu manaʻo, akā kūpono ia. No ke aha mai? No ka mea, inā ʻoe e maloʻo pinepine, ʻo ia hoʻi he liʻiliʻi kāu hoʻololi. Inā he liʻiliʻi liʻiliʻi ke ʻano o ka haki ʻana o kāu haku haku, a laila hiki iā ʻoe ke ʻimi koke i kahi laʻana no ka mea liʻiliʻi ka loli. Ma ʻaneʻi he hui liʻiliʻi kāu, 20-30 mau laina i hoʻololi ʻia. A, no laila, hiki iā ʻoe ke hoʻomaopopo koke i ke kumu, no ka mea liʻiliʻi nā loli, he wahi liʻiliʻi loa kāu e ʻimi ai i ka pilikia.

A inā e hāʻule kā mākou prod ma hope o ka hoʻokuʻu ʻana, a laila inā loaʻa iā mākou ka hoʻomaʻamaʻa Hoʻohui Hoʻomau, ʻoi aku ka maʻalahi o kā mākou hana, no ka mea he liʻiliʻi nā loli. ʻAe, pili kēia i ka hoʻolālā. E ʻeha kēia. A, ʻo ka mea paʻakikī loa ma kēia hana, ʻo ia ka maʻa i ka wāwahi ʻana i nā hana, ʻo ia hoʻi, pehea e hana ai i hiki iā ʻoe ke lawe i kekahi mea a hana i loko o kekahi mau hola a ma ka manawa like e hoʻoholo i kahi loiloi, inā loaʻa iā ʻoe hoʻokahi. He ʻeha ʻokoʻa ka loiloi.

ʻO nā hoʻokolohua ʻāpana he mea kōkua wale nō e kōkua iā ʻoe e hoʻomaopopo inā ua kūleʻa kāu hoʻohui ʻana a inā ʻaʻohe mea i haki. I koʻu manaʻo, ʻaʻole pono loa kēia, no ka mea, ʻaʻole kēia ke kumu o ka hana.

He hoʻolauna pōkole kēia i ka Hoʻohui Hoʻomau. ʻO ia wale nō ka hana o kēia hana. Mākaukau au no nā nīnau.

E hōʻuluʻulu pōkole hou wau:

  • ʻAʻole ʻo Jenkins ka Continuous Integration, ʻaʻole ʻo Gitlab.
  • ʻAʻole kēia he mea hana, he hana ia e hoʻohui ai i kā mākou code i loko o ka haku i nā manawa hiki.
  • Hana mākou i kēia i mea e pale aku ai i ka ʻeha nui e kū mai ana me nā hui ʻana i ka wā e hiki mai ana, ʻo ia hoʻi, ʻike mākou i kahi ʻeha liʻiliʻi i kēia manawa i ʻole e ʻike hou i ka wā e hiki mai ana. ʻO ia ka manaʻo holoʻokoʻa.
  • Aia ma ka ʻaoʻao ke kamaʻilio ma o ke code, akā ʻike pinepine wau i kēia, akā ʻo ia hoʻi ka mea i hoʻolālā ʻia.

ʻO kāu mau nīnau

He aha e hana ai me nā hana i hoʻopau ʻole ʻia?

Decompose. He aha ka pilikia? Hiki iā ʻoe ke hāʻawi i kahi laʻana aia kahi hana a ʻaʻole i decomposed?

Aia kekahi mau hana i hiki ʻole ke hoʻopau ʻia mai ka huaʻōlelo "holo loa", no ka laʻana, nā mea e koi ana i ka ʻike hohonu loa a hiki ke hoʻoholo maoli ʻia i loko o ka mahina e hoʻokō ai i kahi hopena digestible.

Inā maopopo wau iā ʻoe, a laila aia kekahi hana nui a paʻakikī, ʻo ka hopena e ʻike ʻia i loko o hoʻokahi mahina?

ʻAe pololei kēlā. ʻAe, hiki ke loiloi i ka hopena ma mua o hoʻokahi mahina.

Maikaʻi. Ma keʻano laulā,ʻaʻole kēia he pilikia. No ke aha mai? No ka mea i kēia hihia, ke kamaʻilio mākou e pili ana i nā lālā, ʻaʻole mākou e kamaʻilio e pili ana i kahi lālā me kahi hiʻohiʻona. Hiki i nā hiʻohiʻona ke nui a paʻakikī. Hiki iā lākou ke hoʻopili i ka nui o nā ʻāpana. A ʻaʻole hiki iā mākou ke hana piha i ka lālā hoʻokahi. Maikaʻi kēia. Pono mākou e wāwahi i kēia moʻolelo. Inā ʻaʻole mākaukau loa kahi hiʻohiʻona, ʻaʻole kēia manaʻo ʻaʻole hiki ke hoʻohui ʻia kekahi mau ʻāpana o kāna code. Hoʻohui ʻoe, ʻōlelo, neʻe a aia kekahi mau pae i loko o ka hiʻohiʻona. E ʻōlelo mākou he pae kāu - e neʻe, hoʻohui i kahi ala hou. A hiki iā ʻoe ke ana i kēia mau mea i kēlā me kēia lā.

Maikaʻi. He aha ke kumu?

He aha ke kumu o ka pepehi ʻana i nā mea liʻiliʻi i kēlā me kēia lā?

ʻAe.

Inā haʻihaʻi lākou i kekahi mea, ʻike koke ʻoe. Loaʻa iā ʻoe kahi ʻāpana liʻiliʻi i haki i kekahi mea, ʻoi aku ka maʻalahi iā ʻoe e hoʻoponopono. ʻO ke kumu, ʻoi aku ka maʻalahi o ka hoʻohui ʻana i kahi ʻāpana liʻiliʻi ma mua o ka hoʻohui ʻana i kahi mea nui i loko o kekahi mau pule. A ʻo ke kolu o ka manaʻo e hana nā mea ʻenekinia ʻē aʻe me ka mana o kēia manawa o ke code. E ʻike lākou ua hoʻohui ʻia kekahi mau neʻe ʻana ma aneʻi, a laila ua ʻike ʻia kekahi ala e makemake ai lākou e hoʻohana. E ʻike nā kānaka a pau i ka mea e hana nei i kāu code. No keia mau mea ekolu ka hana ana.

Mahalo, ua pani ʻia ka pilikia!

(Oleg Soroka) Hiki iaʻu ke hoʻohui? Ua ʻōlelo pololei ʻoe i nā mea a pau, makemake wau e hoʻohui i hoʻokahi huaʻōlelo.

So.

Me ka Hoʻohui Hoʻomau, hoʻohui ʻia ke code i kahi lālā maʻamau ʻaʻole i ka wā i mākaukau loa ka hiʻohiʻona, akā i ka wā e pau ai ka haki ʻana o ke kūkulu. A hiki iā ʻoe ke hana palekana i ka haku i nā manawa he nui i ka lā āu e makemake ai. ʻO ka ʻaoʻao ʻelua, inā no kekahi kumu ʻaʻole hiki iā ʻoe ke hoʻokaʻawale i ka hana o kēlā me kēia mahina i nā hana no ʻekolu mau lā, noho mālie wau ma kahi o ʻekolu hola, a laila he pilikia nui kāu. A ʻo ka loaʻa ʻole o ka Continuous Integration ka mea liʻiliʻi loa o kēia mau pilikia. ʻO ke ʻano kēia he pilikia kāu me ka hoʻolālā a me nā hana ʻenekinia ʻole. No ka mea inā he noiʻi kēia, a laila pono e hoʻokumu ʻia ma ke ʻano o nā hypotheses a i ʻole ka pōʻai.

Ua kamaʻilio mākou e pili ana i nā metric 4 e hoʻokaʻawale i nā ʻoihana kūleʻa mai nā mea lohi. Pono mākou e ola e ʻike i kēia mau metric 4. Inā hoʻokahi mahina e hoʻopau ai kāu hana maʻamau, a laila e nānā mua wau i kēia metric. E hoʻohaʻahaʻa wau i 3 mau lā ma mua. A ma hope iho ua hoʻomaka wau e noʻonoʻo e pili ana iā Continuous.

Ua maopopo anei iaʻu iā ʻoe ua manaʻo ʻoe ʻaʻohe kumu o ka hoʻokomo ʻana i nā hana ʻenekinia inā hoʻokahi mahina e hoʻopau ai kekahi hana?

Loaʻa iā ʻoe ka Hoʻohui Hoʻomau. A aia kekahi kumuhana i loko o 10 mau minuke hiki iā ʻoe ke hoʻoponopono i kahi hoʻoponopono a ʻōwili paha. E noʻonoʻo ʻoe i ʻōwili i waho. Eia kekahi, loaʻa iā ʻoe ka hoʻomau mau ʻana, ua ʻōwili ʻoe iā ia e prod a laila ʻike wale ʻoe ua hewa kekahi mea. A pono ʻoe e ʻōwili i hope, akā ua neʻe mua ʻoe i kāu waihona. Loaʻa iā ʻoe ka schema waihona o ka mana aʻe, ʻoi aku, ua loaʻa iā ʻoe kekahi ʻano waihona, a ua kākau pū ʻia ka ʻikepili ma laila.

A he aha kāu koho? Inā ʻoe e hoʻihoʻi i ke code, ʻaʻole hiki ke hana hou me kēia ʻikepili hou.

Ke neʻe wale nei ke kumu i mua, ʻae.

ʻAʻole paha i heluhelu ka poʻe i loaʻa nā hana ʻenekinia maikaʻi ʻole i ka puke mānoanoa e pili ana ... He aha ka hana me ka waihona? Inā hoʻihoʻi ʻoe mai kahi waihona, ʻo ia ka mea e nalowale ana ʻoe i ka ʻikepili āu i hōʻiliʻili ai i kēlā manawa. No ka laʻana, ua hana mākou no ʻekolu hola me ka mana hou o ka waihona, nā mea hoʻohana i hoʻopaʻa inoa ma laila. Hōʻole ʻoe i ka hoʻihoʻi kahiko no ka mea ʻaʻole hana ka papahana me ka mana hou, no laila ua nalowale ʻoe i kēia mau mea hoʻohana. A ʻoluʻolu ʻole lākou, hoʻohiki lākou.

I mea e aʻo ai i ka piha o nā hana e kākoʻo ana i ka Hoʻohui Hoʻomau a me ka Hoʻouna Hoʻomau, ʻaʻole lawa ke aʻo wale i ke kākau ʻana.... ʻO ka mea mua, hiki ke nui o lākou, ʻaʻole pono. Eia kekahi, aia kekahi mau hana ʻē aʻe e like me Scientific. Aia kekahi hana, ua hoʻolaha ʻo GitHub iā ia i ka manawa hoʻokahi. ʻO kēia ka manawa e loaʻa iā ʻoe nā code kahiko a me nā code hou e holo ana i ka manawa like. ʻO kēia ka wā e hana ai ʻoe i kahi hiʻohiʻona i pau ʻole, akā hiki ke hoʻihoʻi i kekahi waiwai: ma ke ʻano he hana a i ʻole he API hoʻomaha. Hoʻokō ʻoe i ke code hou a me ke code kahiko, a hoʻohālikelike i ka ʻokoʻa ma waena o lākou. A inā he ʻokoʻa, a laila e hoʻopaʻa inoa ʻoe i kēia hanana. Ma kēia ala e ʻike ai ʻoe he hiʻohiʻona hou kāu e mākaukau e ʻōwili ma luna o ka mea kahiko inā ʻaʻole ʻoe i ʻokoʻa ma waena o nā mea ʻelua no kekahi manawa.

He mau haneli o ia mau hana. Manaʻo wau e hoʻomaka me ka hoʻomohala transbase. ʻAʻole ʻo ia i 100% ma Continuous Integration, akā like nā hana, ʻaʻole hiki i kekahi ke ola maikaʻi me ka ʻole o kekahi.

Ua hāʻawi anei ʻoe i ka hoʻomohala transbase ma ke ʻano he laʻana kahi e ʻike ai ʻoe i nā hana a i ʻole ke manaʻo nei ʻoe e hoʻomaka ka poʻe e hoʻohana i ka transbase debelopment?

E nānā, no ka mea ʻaʻole hiki iā lākou ke hoʻohana. No ka hoʻohana ʻana iā lākou, pono ʻoe e heluhelu nui. A i ka nīnau ʻana o ke kanaka: "He aha ka mea e hana ai me kahi hiʻohiʻona i hoʻokahi mahina, ʻo ia hoʻi ʻaʻole ʻo ia i heluhelu e pili ana i ka hoʻomohala transbase." ʻAʻole wau e paipai i kēia manawa. Manaʻo wau e kālele wale ana i ke kumuhana pehea e wāwahi pono ai i nā hana nui i nā hana liʻiliʻi. ʻO kēia ke ʻano o ka decomposition.

ʻO ka decomposition kekahi o nā mea hana a ka mea kākau. Hana mua mākou i ka nānā ʻana, a laila decomposition, a laila synthesis, a laila hoʻohui. A penei ka hana ana o na mea a pau no kakou. A pono mākou e ulu i ka Hoʻohui Hoʻomau ma o ka decomposition. Kū mai nā nīnau ma ka pae mua, a ke kamaʻilio nei mākou e pili ana i ka pae ʻehā, ʻo ia hoʻi, ʻoi aku ka nui o kā mākou hana hoʻohui, ʻoi aku ka maikaʻi. ʻAʻole hiki ke hana i kēia; ʻoi aku ka maikaʻi e ʻoki mua i kāu monolith.

Pono ʻoe e kaha i nā pua a me nā ʻāpana ma kekahi kiʻi. ʻAʻole hiki iā ʻoe ke ʻōlelo i kēia manawa e hōʻike wau i ke kiʻi hoʻolālā o kahi noi hou a hōʻike i hoʻokahi ʻāpana, aia i loko kahi pihi ʻōmaʻomaʻo no ka noi. I kēlā me kēia hihia, e nui aʻe nā ʻāpana a me nā pua. Loaʻa i kēlā me kēia kiʻi aʻu i ʻike ai ma mua o hoʻokahi. A ʻo ka decomposition, ʻoiai ma ke kiʻekiʻe o ka hōʻike kiʻi, ke hana ʻia nei. No laila, hiki ke hana kūʻokoʻa nā ʻāpana. Inā ʻaʻole, a laila he mau nīnau nui kaʻu no ka mea kākau.

Aia kekahi nīnau mai ke kamaʻilio ʻana: "Inā pono ka loiloi a lōʻihi ka manawa, ma kahi lā a ʻoi aku paha?"

Loaʻa iā ʻoe nā pilikia me ka hoʻomaʻamaʻa. ʻAʻole pono ka loiloi i hoʻokahi lā a ʻoi aku paha. ʻO kēia ka moʻolelo like me ka nīnau mua, ʻoi aku ka palupalu iki. Inā hoʻomau ka loiloi no hoʻokahi lā, a laila e hele ana kēia loiloi i kahi loli nui loa. 'O ia ho'i, pono e li'ili'i. I ka hoʻomohala transbase, i ʻōlelo ʻia e Oleg, aia kahi moʻolelo i kapa ʻia ʻo ka loiloi mau. ʻO kona manaʻo, e hana mākou i kahi noi huki liʻiliʻi ma ke kumu, no ka mea ke hoʻoikaika nei mākou e hoʻohui mau a liʻiliʻi i ka manawa. A no laila, hoʻololi ka noi huki i hoʻokahi abstraction a i ʻole 10 laina. Mahalo i kēia loiloi, lawe iā mākou i ʻelua mau minuke.

Inā lōʻihi ka loiloi i hoʻokahi lā a ʻoi aku paha, ua hewa kekahi mea. ʻO ka mea mua, loaʻa paha iā ʻoe kekahi mau pilikia me ka hoʻolālā. A i ʻole he ʻāpana code nui kēia, 1 laina, no ka laʻana. A i ʻole he paʻakikī loa kāu hoʻolālā ʻaʻole hiki i ke kanaka ke hoʻomaopopo. He pilikia ʻaoʻao iki kēia, akā pono e hoʻoponopono ʻia. ʻAʻole pono paha ka loiloi ʻana. Pono kākou e noʻonoʻo i kēia. ʻO ka loiloi ka mea e lohi ai iā ʻoe. Loaʻa iā ia kona mau mea maikaʻi ma ka laulā, akā pono ʻoe e hoʻomaopopo i ke kumu āu e hana nei. He ala kēia no ʻoe e hoʻopuka koke i ka ʻike, he ala kēia e hoʻonohonoho ai i kekahi mau kūlana i loko a i ʻole? No ke aha ʻoe e pono ai i kēia? No ka mea, pono e hana koke ʻia ka loiloi a i ʻole e hoʻopau loa ʻia. Ua like ia me ka hoʻomohala transbase - nani loa ka moʻolelo, akā no nā kāne makua wale nō.

E pili ana i nā metric 4, makemake wau e wehe iā lākou e hoʻomaopopo i ke kumu o kēia. E nānā i nā helu, e nānā i ke kiʻi, pehea ka hewa o nā mea a pau.

(Dmitry) Ua mākaukau wau e komo i kahi kūkākūkā e pili ana i kēia me ʻoe. Nui nā helu a me nā ana, maikaʻi nā hana. Akā pono ʻoe e hoʻomaopopo inā pono ka ʻoihana. Aia nā ʻoihana ʻaʻole pono i kēlā ʻano wikiwiki o ka loli. ʻIke wau i nā hui kahi hiki ʻole ke hoʻololi i kēlā me kēia 15 mau minuke. ʻAʻole no ka mea ʻino loa lākou. He pōʻaiapili ola kēia. A no ka hana ʻana i nā lālā hiʻohiʻona, ka hiʻohiʻona toggle, pono ʻoe i ka ʻike hohonu.

He paʻakikī. Inā makemake ʻoe e heluhelu i ka moʻolelo e pili ana i ka hiʻohiʻona toggle i nā kikoʻī hou aku, makemake nui wau https://trunkbaseddevelopment.com/. A aia kekahi ʻatikala kupanaha na Martin Fowler e pili ana i nā hiʻohiʻona hoʻololi: he aha nā ʻano, nā pōʻai ola, a me nā mea ʻē aʻe.

A ʻaʻole ʻoe i pane i ka nīnau: "Pono ʻo Jenkins a ʻaʻole paha?"

ʻAʻole pono ʻo Jenkins i kekahi hihia maoli. ʻOiai, ʻo nā mea hana: Jenkins, Gitlab e lawe mai iā ʻoe i ka ʻoluʻolu. E ʻike ʻoe ua ʻākoakoa ka ʻaha a ʻaʻole i ʻākoakoa. Hiki iā lākou ke kōkua iā ʻoe, akā ʻaʻole lākou e hāʻawi iā ʻoe i ka hoʻomaʻamaʻa. Hiki iā lākou ke hāʻawi wale iā ʻoe i kahi pōʻai - ʻAe, ʻaʻole Ok. A laila, inā kākau ʻoe i nā hoʻokolohua, no ka mea inā ʻaʻohe hoʻāʻo, a laila aneane ʻole ia. No laila, pono ia no ka mea ʻoi aku ka maʻalahi, akā ma ka laulā hiki iā ʻoe ke ola me ka ʻole, ʻaʻole ʻoe e nalowale nui.

ʻO ia hoʻi, inā loaʻa iā ʻoe nā hana, ʻaʻole pono ʻoe?

Pololei kēnā. Manaʻo wau i ka hoʻāʻo ʻo Jez Humble. Ma laila koʻu manaʻo kānalua i ka helu hope. Akā ma ka laulā, inā ʻekolu mau mea ʻoe, hoʻohui mau ʻoe, holo ʻoe i nā hoʻokolohua ma nā hana i ka haku, hoʻoponopono koke ʻoe i ke kūkulu ʻana i ka haku, a laila ʻaʻole pono ʻoe i kekahi mea ʻē aʻe.

ʻOiai mākou e kali nei i nā nīnau mai nā mea komo, he nīnau kaʻu. Ua kamaʻilio wale mākou e pili ana i ke code huahana. Ua hoʻohana anei ʻoe iā ia no ka code infrastructure? ʻO ia ke code like, loaʻa nā loina like a me ke kaʻina ola like ʻole, a i ʻole he mau ʻokoʻa ola a me nā loina? ʻO ka maʻamau, i ka wā e kamaʻilio ai nā mea a pau e pili ana i ka Continuous Integration and Development, poina nā mea a pau aia kekahi code infrastructure. A i kēia mau lā ua ʻoi aku ka nui o ia mea. A pono anei e laweia keia mau rula a pau ilaila?

ʻAʻole naʻe ʻo ia, maikaʻi ia no ka mea e maʻalahi ke ola ma ke ʻano like. Ke hana nei mākou me ke code, ʻaʻole me nā palapala bash, akā loaʻa iā mākou ke code maʻamau.

Kāohi, kū, he code bash pū kekahi. Mai hoopa oe i kuu aloha kahiko.

ʻAe, ʻaʻole au e hehi i kāu mau hoʻomanaʻo. Loaʻa iaʻu kahi makemake pilikino no ka bash. Ua haki ʻino a weliweli i nā manawa a pau. A ua haki pinepine ia me ka manaʻo ʻole, ʻo ia ke kumu ʻaʻole wau makemake. Akā maikaʻi, e ʻōlelo mākou he code bash kāu. Malia paha ʻaʻole maopopo iaʻu a aia nā papa hana hoʻāʻo maʻamau ma waho. ʻAʻole wau i ʻike. A loaʻa iā mākou nā pōmaikaʻi like.

Ke hana nei mākou me nā ʻōnaehana ma ke ʻano he code, loaʻa iā mākou nā pilikia like me nā mea hoʻomohala. I kekahi mau mahina i hala aku nei, ua hālāwai au i kahi kūlana kahi i hoʻouna mai ai kahi hoa hana iaʻu i kahi noi huki no nā laina 1 i ka bash. A kau ʻoe ma ka loiloi no 000 mau hola. Piʻi nā pilikia like. He code mau nō. A he hui pū nō. Hoʻopili mākou me ka noi huki a paʻa mākou me ka ʻoiaʻiʻo ke hoʻoholo nei mākou i nā paio hui like i ka bash like, no ka laʻana.

Ke nānā ikaika nei au i kēia mea āpau ma ka polokalamu infra nani loa. Ua lawe au iā Pulumi i kēia manawa i ka ʻoihana. He polokalamu kēia i kona ʻano maʻemaʻe. Ma laila ʻoi aku ka maikaʻi, no ka mea, loaʻa iaʻu nā mana āpau o kahi ʻōlelo hoʻonohonoho, ʻo ia hoʻi, ua hana wau i ka hoʻololi nani mai ka uliuli me nā mea like a maikaʻi nā mea āpau. ʻO ia, aia kaʻu hoʻololi i ka haku. Hiki i nā kānaka a pau ke ʻike iā ia. ʻIke ʻia e nā ʻenekinia ʻē aʻe. Ua hoʻoikaika mua ia i kekahi mea ma laila. Akā naʻe, ʻaʻole i hoʻohana ʻia no nā ʻōnaehana āpau. Ua hoʻā ʻia no kaʻu mau papa hoʻāʻo, no ka laʻana. No laila, e pane hou i kāu nīnau, pono. He mea maʻalahi ke ola no mākou, e like me nā mea ʻenekinia e hana ana me ke code, ma ke ʻano like.

Inā he nīnau kekahi?

He nīnau kaʻu. Makemake wau e hoʻomau i ke kūkākūkā me Oleg. Ma keʻano laulā, manaʻo wau he pololei ʻoe, inā he mahina e hoʻopau ai kahi hana, a laila pilikia ʻoe i ka hoʻolālā, pilikia ʻoe i ka nānā ʻana, decomposition, hoʻolālā, a me nā mea ʻē aʻe. e ho'āʻo e ola e like me Continuous Integration, a laila e hoʻomaka ʻoe e hoʻoponopono i ka ʻeha me ka hoʻolālā ʻana, no ka mea ʻaʻole ʻoe e haʻalele i kahi ʻē aʻe.

(Oleg) ʻAe, pololei kēlā. Hoʻohālikelike ʻia kēia hana i ka hoʻoikaika ʻana i kekahi hana hoʻololi moʻomeheu koʻikoʻi. ʻO ka mea paʻakikī e lanakila ai, ʻo ia ka maʻamau, ʻoi aku ka maikaʻi ʻole. A inā no ka hoʻokō ʻana i kēia hana, koi ʻia kahi hoʻololi koʻikoʻi i nā maʻamau o ka poʻe a puni ʻoe: nā mea hoʻomohala, hoʻokele, luna hoʻomohala, a laila e kali ana nā mea kupanaha iā ʻoe.

He aha nā mea kupanaha? E ʻōlelo mākou e hoʻoholo ʻoe e hoʻohui pinepine ʻoe. A loaʻa iā ʻoe kekahi mau mea ʻē aʻe e pili ana i ka hoʻohui ʻana, no ka laʻana, artifacts. A i loko o kāu hui, no ka laʻana, aia kahi kulekele e pono e helu ʻia kēlā me kēia artifact ma kekahi ʻano ma kekahi ʻano ʻōnaehana mālama artifact. A lawe i kekahi manawa. Pono ke kanaka e nānā i ka pahu i ho'āʻo aiʻo ia, ma keʻano he luna hoʻokuʻu, i kēia mea hana e hōʻoia i ka mākaukau no ka hoʻokuʻuʻana i ka hana. Inā he 5-10-15 mau minuke, akā hana ʻoe i ka hoʻonohonoho hoʻokahi i ka pule, a laila ʻo ka hoʻolilo ʻana i ka hapalua hola i hoʻokahi pule he ʻauhau liʻiliʻi.

Inā hana ʻoe i ka Hoʻohui Hoʻomau 10 mau manawa i ka lā, a laila pono e hoʻonui ʻia nā manawa 10 i 30 mau minuke. A ʻoi aku kēia ma mua o ka nui o ka manawa hana o kēia luna hoʻokuʻu. Luhi wale ʻo ia i ka hana ʻana. Aia nā koina paʻa no kekahi mau hana. ʻo ia wale nō.

A pono ʻoe e kāpae i kēia lula no laila ʻaʻole ʻoe e hana hou i kēlā ʻōpala, ʻo ia hoʻi, ʻaʻole ʻoe e hāʻawi lima i kahi degere e pili ana i kekahi mea. Ke hilinaʻi nei ʻoe i kekahi mau hoʻokolohua mākaukau mākaukau.

A inā makemake ʻoe i ka hōʻoia mai kekahi, no laila e hoʻopaʻa inoa ka luna iā ia, a ʻaʻole ʻoe e komo i ka hana me ka ʻōlelo ʻole ʻo Vasya e ʻae ʻo ia, a me nā mea ʻē aʻe - ke hele nei kēia mau mea lapuwale i ke ala o ka practitioner. No ka mea inā aia kekahi mau hana e pili ana i kahi ʻauhau, a laila piʻi nā mea āpau i 100 mau manawa. No laila, ʻaʻole e hoʻokipa pinepine ʻia ka neʻe ʻana me ka hauʻoli e nā mea a pau. No ka mea paʻakikī ke hoʻololi ʻana i nā maʻamau o nā kānaka.

Ke hana ke kanaka i kāna hana maʻamau, hana ʻo ia me ka noʻonoʻo ʻole. ʻAʻole kāna haʻawina cognitive. He pāʻani wale nō ʻo ia me ia, ua loaʻa iā ia kahi papa helu helu ma kona poʻo, ua hana ʻo ia i hoʻokahi kaukani manawa. A i kou hele ʻana mai a haʻi iā ia: "E hoʻopau kāua i kēia hana a hoʻolauna i kahi mea hou e hoʻomaka ana i ka Pōʻakahi," no ia e lilo ia i haʻahaʻa cognitive ikaika. A hiki mai i nā mea a pau i ka manawa hoʻokahi.

No laila, ʻo ka mea maʻalahi loa, ʻoiai ʻaʻole hiki i nā mea a pau ke kūʻai aku i kēia mea nani, akā ʻo kēia kaʻu e hana mau ai, ʻo ia ka mea. Inā hoʻomaka kahi papahana hou, ʻo ka maʻamau, ʻo nā hana i hoʻāʻo ʻole ʻia e hoʻopili koke ʻia i loko o kēia papahana. ʻOiai ʻōpiopio ka papahana, ʻaʻole mākou e pilikia i kekahi mea. ʻAʻohe Prod i kēia manawa, ʻaʻohe mea e luku ai. No laila, hiki ke hoʻohana ʻia e like me ke aʻo ʻana. Ke hana nei kēia ala. Akā ʻaʻole hiki i nā hui āpau ke hoʻomaka pinepine i ia mau papahana. ʻOiai he mea ʻē aʻe kēia, no ka mea i kēia manawa aia kahi hoʻololi kikohoʻe piha, pono nā mea a pau e hoʻomaka i nā hoʻokolohua i mea e hoʻomau ai i nā mea hoʻokūkū.

Ma ʻaneʻi ʻoe hiki i ka hopena e pono ʻoe e ʻike mua i kāu mea e pono ai e hana. ʻAʻole kūpono ka honua, a ʻaʻole kūpono hoʻi ka prod.

ʻAe, pili kēia mau mea.

ʻAʻole maopopo nā ʻoihana e pono lākou e hele i kēia ala.

Aia kahi kūlana i hiki ʻole ke hoʻololi iki. He kūlana kēia i ʻoi aku ka ikaika o ka hui. Ua pau loa ka hui. ʻAʻohe ona manawa kaʻawale no nā hoʻokolohua. Hana lākou i nā hiʻohiʻona mai ke kakahiaka a i ke ahiahi. A ʻoi aku ka liʻiliʻi o nā hiʻohiʻona o ka hoʻokele. Pono nā mea hou aʻe. Ma ia kūlana, ʻaʻole hiki ke hoʻololi iki. Hiki ke haʻi wale ʻia ka hui ʻapōpō e hana like mākou e like me nehinei, pono mākou e hana i nā hiʻohiʻona hou aʻe. Ma kēia manaʻo, ʻaʻole hiki ke hoʻololi i kekahi hana. He kūlana maʻamau kēia i ka wā ʻaʻohe manawa e hoʻokala i ke koʻi, pono e ʻoki ʻia nā kumulāʻau, no laila e ʻoki lākou me kahi koʻi liʻiliʻi. ʻAʻohe ʻōlelo aʻoaʻo maʻalahi ma aneʻi.

(Dmitry) E heluhelu au i ka wehewehe ʻana mai ke kamaʻilio ʻana: “Akā pono mākou i ka nui o ka uhi hoʻāʻo ma nā pae like ʻole. ʻEhia ka manawa i hoʻokaʻawale ʻia no nā hoʻokolohua? He mea kūʻai iki a nui ka manawa. "

(Oleg) He kuhi hewa maʻamau kēia. Pono e lawa nā ho'āʻo i hiki iā ʻoe ke hilinaʻi. ʻAʻole ʻo Continuous Integration kahi mea i hana mua ʻia ai ka 100% o nā hoʻokolohua a laila hoʻomaka ʻoe e hoʻohana i kēia hana. Hoʻemi ʻo Continuous Integration i kāu ukana cognitive ma muli o ka maopopo ʻana o kēlā me kēia hoʻololi āu e ʻike ai me kou mau maka i maopopo iā ʻoe inā e uhaʻi ia i kekahi mea a i ʻole, ʻoiai me ka ʻole o nā hoʻāʻo. Hiki iā ʻoe ke hoʻāʻo koke i kēia ma kou poʻo no ka mea liʻiliʻi nā loli. ʻOiai inā loaʻa iā ʻoe nā mea hōʻike manual, ʻoi aku ka maʻalahi no lākou. Ua ʻōwili ʻoe a ʻōlelo: "E nānā, ua haki kekahi mea?" Nānā lākou a ʻōlelo, "ʻAʻole, ʻaʻohe mea i haki." No ka mea, ʻike ka mea hōʻike i kahi e nānā ai. Loaʻa iā ʻoe kahi hana e pili ana me kahi ʻāpana code. A hoʻohana ʻia kēia e ke ʻano kikoʻī.

Eia ʻoe, ʻoiaʻiʻo, i hoʻonani ʻia.

(Dmitry) ʻAʻole wau ʻae ma ʻaneʻi. Aia kahi hoʻomaʻamaʻa - hoʻomohala hoʻāʻo, e hoʻopakele iā ʻoe mai kēia.

(Oleg) ʻAe, ʻaʻole wau i hiki i kēlā manawa. ʻO ka hoʻopunipuni mua, pono ʻoe e kākau i ka 100% o nā hoʻokolohua a ʻaʻole pono ʻoe e hana i ka Hoʻohui Hoʻomau. ʻAʻole ʻoiaʻiʻo. He mau hana like keia. A ʻaʻole pili pono lākou. Pono kāu uhi ho'āʻo e maikaʻi loa. ʻO ka mea maikaʻi loa - ʻo ia ka mea e hilinaʻi nei ʻoe i ka maikaʻi o ka haku i noho ai kou haku ma hope o ka hana ʻana e hiki ai iā ʻoe ke paʻi wiwo ʻole i ke pihi "Deploy" ma ke ahiahi Pōʻalima ʻona. Pehea ʻoe e hoʻokō ai i kēia? Ma o ka loiloi, ma o ka uhi ʻana, ma o ka nānā ʻana maikaʻi.

ʻAʻole hiki ke ʻike ʻia ka nānā ʻana maikaʻi mai nā hoʻokolohua. Inā holo ʻoe i nā hoʻokolohua hoʻokahi ma pre prod, a laila nānā lākou i kāu mau mea hoʻohana i hoʻokahi manawa a ʻo ia nō. A inā ʻoe e holo iā lākou i kahi loop pau ʻole, a laila ʻo kāu ʻōnaehana nānā i hoʻonohonoho ʻia, e hoʻāʻo mau ana i nā mea āpau - inā i hāʻule a ʻaʻole paha. I kēia hihia, ʻo ka ʻokoʻa wale nō ke hana ʻia i hoʻokahi a ʻelua paha. ʻO kahi hoʻonohonoho maikaʻi loa o nā hoʻāʻo ... holo pau ʻole, ke nānā nei kēia. A e like me kēia ka nānā pono ʻana.

A no laila, pehea ʻoe e hoʻokō ai i kēia kūlana ke hoʻomākaukau ʻoe i ke ahiahi Pōʻalima a hoʻi i ka home he nīnau hou. Malia paha ʻoe he scumbag wiwo ʻole.

E hoʻi iki kākou i ka Hoʻohui Hoʻomau. Holo mākou i kahi hana paʻakikī ʻokoʻa.

A ʻo ka lua o ka hoʻopunipuni ʻo MVP, ʻōlelo lākou, pono e hana wikiwiki, no laila ʻaʻole pono nā hoʻokolohua ma laila. ʻAʻole ma kēlā ʻano. ʻO ka ʻoiaʻiʻo, ke kākau ʻoe i kahi moʻolelo mea hoʻohana ma kahi MVP, hiki iā ʻoe ke hoʻomohala ma ka pōleʻa, ʻo ia hoʻi, ua lohe ʻoe aia kekahi ʻano moʻolelo mea hoʻohana a holo koke e hoʻopaʻa inoa, a i ʻole hiki iā ʻoe ke hana me ka hoʻohana ʻana i ka TDD. A e like me ka TDD, e like me ka hōʻike ʻana i ka hana, ʻaʻole lōʻihi ka lōʻihi, ʻo ia hoʻi nā hoʻokolohua he hopena ʻaoʻao. ʻAʻole pili ka hana o TDD i ka hoʻāʻo. ʻOiai ka mea i kapa ʻia ʻo Test Driven Development, ʻaʻole ia e pili ana i nā hoʻokolohua. He ʻano hoʻolālā hoʻi kēia. He ala kēia e kākau pololei ai i ka mea e pono ai a ʻaʻole kākau i ka mea pono ʻole. He hana kēia o ka nānā ʻana i ka ʻike hou aʻe o kou noʻonoʻo e pili ana i ka hana ʻana i kahi hoʻolālā noi.

No laila, ʻaʻole maʻalahi ka hoʻopau ʻana i kēia mau mea hoʻopunipuni. ʻAʻole kū'ē ka MVP a me nā ho'āʻo. ʻOiaʻiʻo, ma kahi ʻē aʻe, inā ʻoe e hana MVP me ka hoʻohana ʻana i ka hoʻomaʻamaʻa TDD, a laila e hana maikaʻi ʻoe a ʻoi aku ka wikiwiki ma mua o ka hana ʻana me ka ʻole o ka hoʻomaʻamaʻa ʻana, akā ma ka pōpō.

He manaʻo maopopo ʻole a paʻakikī kēia. Ke lohe ʻoe i kēia manawa e kākau wau i nā hoʻokolohua hou aʻe a ma ka manawa like e hana wikiwiki wau, ʻaʻole kūpono loa.

(Dmitry) Nui ka poʻe ma ʻaneʻi, ke kāhea lākou iā MVP, palaualelo nā kānaka e kākau i kahi mea maʻamau. A he mau mea like ʻole kēia. ʻAʻohe pono e hoʻololi i ka MVP i kekahi mea maikaʻi ʻole i hana ʻole.

ʻAe, ʻae, pololei ʻoe.

A laila hikiwawe MVP i prod.

Mau loa a mau loa aku.

A he mea maʻamau ʻole ka TDD ke lohe ʻoe e kākau ana ʻoe i nā hoʻokolohua a me he mea lā e hana hou ana. He mea ʻē loa ia, akā ʻoiaʻiʻo, ʻoi aku ka wikiwiki a me ka nani o kēia ala. Ke kākau ʻoe i kahi hoʻāʻo, ua noʻonoʻo nui ʻoe i kou poʻo e pili ana i ke code e kapa ʻia a pehea, a me ke ʻano o kā mākou manaʻo mai ia mea. ʻAʻole ʻoe e ʻōlelo wale ua kākau wau i kekahi hana a hana ia i kekahi mea. I ka manawa mua, ua manaʻo ʻoe ua loaʻa iā ia nā ʻano like ʻole, e kāhea ʻia ʻo ia ma ia ʻano a pēlā. Hoʻopili ʻoe i kēia me nā hoʻāʻo a mai kēia ʻike ʻoe i ke ʻano o kāu mau pilina i loko o kāu code. He hopena nui kēia i ka hoʻolālā. E lilo koke kāu code i modular, no ka mea e ho'āʻo mua ʻoe e hoʻomaopopo pehea ʻoe e hoʻāʻo ai, a laila kākau wale ia.

ʻO ka mea i loaʻa iaʻu me TDD ʻo ia i kekahi manawa ua hoʻolimalima wau i kahi kumu aʻoaʻo Ruby i koʻu wā ʻo Ruby programmer. A ʻōlelo ʻo ia: "E hana kāua e like me TDD." Noʻonoʻo wau: "Damn, i kēia manawa pono wau e kākau i kahi mea hou." A ua ʻae mākou i loko o ʻelua pule e kākau wau i nā code hana āpau ma Python me ka hoʻohana ʻana iā TDD. Ma hope o ʻelua pule, ʻike wau ʻaʻole makemake wau e hoʻi. Ma hope o ʻelua pule o ka hoʻāʻo ʻana e hoʻopili i kēia ma nā wahi āpau, ʻike ʻoe i ka maʻalahi o ka lilo ʻana iā ʻoe e noʻonoʻo wale. Akā ʻaʻole maopopo kēia, no laila ke paipai aku nei au i nā mea a pau inā loaʻa iā ʻoe ka manaʻo he paʻakikī ʻo TDD, hoʻopau manawa a pono ʻole, e hoʻāʻo e pili me ia no ʻelua pule wale nō. Ua lawa nā ʻelua iaʻu.

(Dmitry) Hiki iā mākou ke hoʻonui i kēia manaʻo mai ka manaʻo o ka hana ʻoihana. Ma mua o ka hoʻomaka ʻana i kahi mea hou, hana mākou i ka nānā ʻana a laila hoʻomaka. I kēia hihia, lilo ka nānā ʻana i hoʻokolohua maʻamau no mākou. A aia ka hoʻomohala ma o ka nānā ʻana. Akā ʻaneʻane ʻōlelo nā mea a pau he lōʻihi, palaualelo wau, hana wau i kahi kiʻi pōkole. Inā mākou i hana i ka nānā maʻamau, maopopo mākou i ke kūlana o ka ʻōnaehana CI. A he nui ka nānā ʻana o ka ʻōnaehana CI. Hoʻomaopopo mākou i ke kūlana o ka ʻōnaehana, maopopo mākou i ka mea i loko. A i ka wā o ka hoʻomohala ʻana, ke hana wale nei mākou i ka ʻōnaehana i hiki ai i ke kūlana i makemake ʻia.

Ua ʻike ʻia kēia mau hana no ka wā lōʻihi. Ua kūkākūkā mākou i kēia ma kahi o 4 mau makahiki i hala. Akā i loko o 4 mau makahiki, ʻaʻohe mea i loli.

Akā ma kēia memo, manaʻo wau e hoʻopau i ke kūkākūkā kūhelu.

Video (hoʻokomo ʻia ma ke ʻano he mea media, akā no kekahi kumu ʻaʻole i hana):

https://youtu.be/zZ3qXVN3Oic

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka