Nā lawelawe hoʻoilina i kāu ʻoihana

Aloha! ʻO Pasha Chernyak koʻu inoa, he alakaʻi alakaʻi wau ma QIWI, a i kēia lā makemake wau e kamaʻilio e pili ana i ka mea hiki ʻole. E pili ana iā Legacy.

E hoʻomaka kākou me ka nīnau: he aha ka lawelawe hoʻoilina? ʻO kahi lawelawe hoʻoilina he lawelawe i hoʻopā ʻole ʻia e ka mea hoʻomohala no hoʻokahi pule / mahina / makahiki? A i ʻole he lawelawe ia i kākau ʻia e kahi mea hoʻolālā liʻiliʻi, no ka laʻana, e ʻoe, akā hoʻokahi makahiki i hala? A i kēia manawa ua maʻalili ʻoe a ʻoi aku ka ʻike. A i ʻole he lawelawe ʻo Legacy āu i hoʻoholo ai ʻaʻole e hana hou a ke hoʻomākaukau mālie nei i kahi pani no ia? ʻO kēlā me kēia hihia, ʻo ka waiho ʻana i ia lawelawe me ka mālama ʻole ʻia a ʻaʻole ka hoʻonui ʻana he manawa pōkole e pahū ma hope.

Nā lawelawe hoʻoilina i kāu ʻoihana

Ma mua o ka neʻe ʻana i ka hana a mākou ma QIWI me kā mākou lawelawe Hoʻoilina, e haʻi wau iā ʻoe pehea mākou i hoʻonohonoho ai i nā lawelawe ma ka Wallet. No ʻelua makahiki i kēia manawa ua kuleana wau i kāna hana. Inā he pilikia, kelepona mua lākou iaʻu. ʻAʻohe oʻu aʻalolo e kāhea aku i kekahi i ka hola 11 pm, no laila pono wau e noho i lalo a ʻike i nā lawelawe āpau ma kā mākou pūnaewele.

Akā ʻo wau, e like me kēlā me kēia kanaka, makemake wau e hiamoe i ka pō, no laila ua hoʻāʻo wau e hana me ka hoʻohana ʻana: "E nā kāne, no ke aha ʻoe e kāhea mai ai iaʻu?" I loaʻa iaʻu kahi pane laconic e like me "ʻO wai hou?" No ka mea, hoʻoponopono wau i nā lawelawe, a ʻaʻole ʻike nā kāne i ka mea e kāhea ai.

No laila, i kekahi o ka retrospectives o ka Wallet backend hui, ua hoʻoholo mākou e pono e hana i kahi hōʻailona me ka papa inoa o kā mākou lawelawe, microservices a me nā monolith wallet, a me nā mea kuleana no lākou. Pono nā hōʻailona maʻamau, i loko o nā palena kūpono.

Ma waho aʻe o ka ʻike e pili ana i ke kuleana o ka mea, aia nā pane i nā nīnau: ʻo wai ka mea nona ka lawelawe, ʻo ia ke kuleana no ka hoʻomohala ʻana, ka hoʻolālā a me ka pōʻai ola. ʻO ka poʻe kuleana o kēia lawelawe ka poʻe hiki ke hoʻoponopono inā loaʻa kekahi mea. He kuleana ko ka mea nona ka lawelawe e haʻalele i ka +2 i loko o nā commits, pono nā mea kuleana e noho ma ka loiloi ma mua o ka ʻae ʻana o kēia lawelawe i kahi hana hou.

I ka hala ʻana o ka manawa, hoʻomaka ka hoʻohana ʻana i nā hana hou, no ka laʻana, ka neʻe ʻana i Kubernetes, nā ʻano checkstyle āpau, spotbugs, ktlint, ka loaʻa ʻana o nā lāʻau ma Kibana, nā lawelawe autodiscovery ma kahi o ka kuhikuhi pololei ʻana i nā helu a me nā mea pono ʻē aʻe. A ma nā wahi a pau i hiki ai i kā mākou papaʻaina ke mālama i ka pili o kā mākou lawelawe. No mākou, he ʻano papa helu helu kēia e ʻōlelo nei e hiki i kēia lawelawe ke hana i kēia, akā ʻaʻole naʻe. kahi i hoʻomaka ʻia ai nā hana hui ma TeamCity, pehea lākou e kau ʻia ai, kahi i mālama ʻia ai nā kumu o nā hoʻāʻo end2end, nā kiʻi mai nā kau hoʻomaʻamaʻa e pili ana i ka hoʻolālā, e pili ana i nā hoʻoholo i hana ʻia. ʻO ke kūpono, makemake wau i kēia ʻike āpau e waiho i kahi a ma ka lima inā pono. No laila, ua lilo ko mākou hōʻailona i wahi hoʻomaka no ka ʻimi ʻana i ka ʻike.

Akā ʻo QIWI, ʻoiai e paʻa ana ka ʻuhane o kahi hoʻomaka, he hui nui. He 12 makahiki mākou, a ke loli nei nā hui: haʻalele nā ​​kānaka, hele mai nā kānaka, kūkulu ʻia nā hui hou. A ua ʻike mākou i kekahi mau lawelawe ma kā mākou ʻāina i hoʻoilina. Ua hele mai kekahi mai nā mea hoʻomohala mai nā hui ʻē aʻe, pili wale kekahi i ka Wallet, no laila ua loaʻa iā mākou ka lawelawe ma kā mākou waihona. Ka hoʻomaopopo ʻana i ka mea a pehea e hana ai - no ke aha? Hana ka lawelawe, a loaʻa iā mākou nā hiʻohiʻona huahana e pono e hoʻomaikaʻi ʻia.

Pehea ka hopena

Akā i kekahi manawa ʻike mākou ua pau ka lawelawe ʻana i kāna hana, ua haki kekahi mea - he aha ka mea e hana ai i kēlā kūlana? Ua oki wale ka lawelawe. I nā mea āpau. A ʻike mākou e pili ana i kēia, ʻo ka mua, ma ka pōʻino, a ʻo ka lua, ʻeono mahina ma hope. Ia hana. ʻO ka mea wale nō a mākou i ʻike ai ma luna o nā mīkini virtual e kau ʻia ai ka lawelawe, kahi i loaʻa ai nā kumu, a ʻo ia wale nō. Hana mākou i kahi clone git a luʻu i ka noʻonoʻo o ka mea nāna i kākau i kēia mau makahiki i hala aku nei, akā he aha kā mākou e ʻike ai? ʻAʻohe o ka Spring Boot i kamaʻāina iā mākou, ʻoiai ua maʻa mākou i nā mea āpau, loaʻa iā mākou kahi waihona piha a me nā mea āpau. Aia paha kahi Spring Framework ma laila? Akā ʻaʻole.

ʻO ke kanaka nāna i kākau i kēia mau mea paʻakikī a kākau i nā mea āpau ma Java maʻemaʻe. ʻAʻohe mea hana maʻamau no ka mea hoʻomohala, a kū mai kahi manaʻo: pono mākou e kākau hou i kēia mau mea āpau. Loaʻa iā mākou nā microservices, a mai kēlā me kēia toaster e hele mai ka maʻamau "E nā kāne, ʻo nā microservice ka mea āu e pono ai!" Inā hele koke kekahi mea, hiki iā ʻoe ke lawe mālie i kekahi ʻōlelo a maikaʻi nā mea a pau.

ʻO ka mea i kēia manawa ʻaʻohe mea kūʻai aku ke kuleana o kēia lawelawe. He aha nā koi ʻoihana i loaʻa iā ia, he aha ka hana a kēia lawelawe? A ua hoʻopili paʻa ʻia ka lawelawe i kāu kaʻina hana ʻoihana.

E haʻi mai iaʻu, pehea ka maʻalahi o ke kākau hou ʻana i kahi lawelawe me ka ʻike ʻole i kāna mau koi ʻoihana? ʻAʻole maopopo i ke ʻano o ka hoʻopaʻa inoa ʻana o ka lawelawe; inā ʻaʻole ʻike ʻia nā metric. He aha lākou, inā he, ʻaʻole i ʻike ʻia. A i ka manawa like, loaʻa i ka lawelawe ka nui o nā papa o ka loiloi ʻoihana ʻike ʻole. Hoʻokomo ʻia kekahi mea i kekahi ʻano waihona, ʻaʻole mākou i ʻike i kekahi mea.

Ma hea e hoʻomaka ai?

Mai ka helu kūpono loa - ka loaʻa o nā hoʻokolohua. Loaʻa ma ka liʻiliʻi loa kekahi loiloi i kākau ʻia ma laila a hiki iā ʻoe ke huki i nā hopena e pili ana i ka mea e hana nei. I kēia manawa, ʻano ʻano ʻo TDD, akā ʻike mākou he 5 mau makahiki i hala aku nei ua aneane like nā mea a pau me ia i kēia manawa: ʻaneʻane ʻaʻohe hoʻokolohua ʻāpana, a ʻaʻole lākou e haʻi iā mākou i kekahi mea. ʻAe, koe wale nō paha kekahi ʻano hōʻoia, pehea i kau inoa ʻia ai kekahi xml me kekahi palapala maʻamau.

ʻAʻole hiki iā mākou ke hoʻomaopopo i kekahi mea mai ke code, no laila ua hele mākou e ʻike i ka mea i loko o ka mīkini virtual. Wehe mākou i nā lāʻau lawelawe a loaʻa kahi hewa o ka mea kūʻai aku http i loko o lākou; ʻo ka palapala hōʻoia i hoʻopaʻa inoa ʻia i hoʻokomo ʻia i loko o nā kumuwaiwai noi he palaho hilahila ʻole. Ua hoʻokaʻaʻike mākou i kā mākou loiloi, noi lākou i kahi palapala hōʻoia hou, hāʻawi lākou iā mākou a ke hana hou nei ka lawelawe. Me he mea lā ʻo ia wale nō. ʻAʻole paha? Ma hope o nā mea a pau, hana ka lawelawe, hana ia i kekahi hana e pono ai kā mākou ʻoihana. Loaʻa iā mākou kekahi mau kūlana no ka hoʻomohala ʻana i nā noi, ʻo ia hoʻi kāu. No ka laʻana, mai hoʻopaʻa i nā lāʻau ma ka node i loko o kahi waihona, akā e mālama iā lākou i loko o kekahi ʻano waihona, e like me ka elastic, a nānā iā lākou ma Kibana. Hiki iā ʻoe ke hoʻomanaʻo i nā metric gula. ʻO ia hoʻi, ka ukana ma ka lawelawe, ka nui o nā noi no ka lawelawe, inā ola ʻo ia a ʻaʻole paha, pehea ka holo ʻana o kāna HealthCheck. Ma ka liʻiliʻi loa, e kōkua kēia mau metric iā ʻoe e ʻike i ka wā hiki ke lawe ʻia mai ka lawelawe me ka noʻonoʻo maʻemaʻe a poina e like me ka moeʻuhane maikaʻi ʻole.

He aha e hana

No laila, hoʻohui mākou i kahi lawelawe kahiko i ka papaʻaina, a laila hele mākou e ʻimi i nā mea manawaleʻa mai waena o nā mea hoʻomohala e mālama i ka lawelawe a hoʻonohonoho pono: e kākau lākou i kekahi mau ʻike e pili ana i ka lawelawe, e hoʻohui i nā loulou i dashboards ma grafana, i nā hana hui, a hoʻomaopopo i ka hoʻohana ʻana i ka noi, mai hoʻouka lima i nā faila me ka hoʻohana ʻana i ka ftp.

ʻO ka mea nui, pehea ka lōʻihi o kēia hana manawaleʻa pono? Hoʻokahi sprint no kahi mea hoʻomohala ʻoi aʻe a ʻoi aku ka liʻiliʻi, no ka laʻana, i ka wā o kahi aie ʻenehana 20%. Pehea ka lōʻihi o ka hoʻomaopopo ʻana i nā loina paʻa o ke kamaʻilio ʻana me kekahi ʻōnaehana mokuʻāina a lawe mai i nā ʻenehana hou? ʻAʻole hiki iaʻu ke hōʻoia i kēia, hoʻokahi mahina a ʻelua paha o ka hana a ka hui. 'Ōlelo wau i kēia mai ka ʻike o ka hoʻohui ʻana i kēia manawa me kekahi lawelawe hou.

I ka manawa like, ʻaʻohe hoʻokuʻu o ka waiwai ʻoihana. I nā mea āpau. He mea maʻamau ke hoʻolimalima i kahi lawelawe no ke kākoʻo a hoʻolimalima manawa liʻiliʻi. Akā, ma hope o kā mākou hula maʻamau me ka lawelawe, ua hoʻohui mākou i ka papaʻaina, hoʻohui i ka ʻike e pili ana iā ia a, malia paha, e kākau hou i kekahi lā. Akā i kēia manawa ua kūpono ia i kā mākou lawelawe lawelawe.

ʻO ka hopena, makemake wau e hoʻolālā i ka mea e hana ai me nā lawelawe Legacy.

He manaʻo maikaʻi ʻole ke kākau hou ʻana i ka hoʻoilina mai ka wā kahiko
ʻOiaʻiʻo, ʻaʻole pono ʻoe e noʻonoʻo. Ua maopopo iaʻu makemake wau, a aia kekahi mau pōmaikaʻi, akā maʻamau ʻaʻohe mea e pono ai, me ʻoe iho.

Papa kuhikuhi
E ʻeli i nā kumu kumu o kāu mau noi, e hana i kahi puke e hōʻike ai i hea a pehea e hana ai, e hoʻokomo i ka wehewehe ʻana o ka papahana ma laila (conditional readme.md) e hoʻomaopopo koke i kahi o nā lāʻau a me nā ana. ʻO ka mea hoʻomohala e hoʻoponopono i kēia ma hope o kāu e ʻōlelo mahalo.

E hoʻomaopopo i ke kikowaena
Inā loaʻa iā ʻoe kahi kikowaena, e hoʻāʻo e mālama i kou manamana lima ma ka pulse. He mea liʻiliʻi ia, ʻae, akā ʻaʻole maopopo ka poʻe a pau i ke kī hoʻokahi. Akā ʻoi aku ka maʻalahi o ka hana ʻana i hoʻokahi maʻamau.

Hiki i nā mea hoʻohana i hoʻopaʻa inoa ʻia ke komo i ka noiʻi. Eʻe, e 'oluʻolu.

He aha kāu e hana ai me kāu hoʻoilina?

  • 31.5%Ke kākau hou nei au mai ka ʻōpala, ʻoi aku ka pololei 12

  • 52.6%Aneane like me oe20

  • 10.5%ʻAʻohe o mākou hoʻoilina, maikaʻi mākou4

  • 5.2%E kākau wau ma nā ʻōlelo2

38 mea hoʻohana i koho. Ua hōʻole nā ​​mea hoʻohana 20.

Source: www.habr.com

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