Aloha hoa. I ka hoʻomaka ʻana o ka hoʻomaka ʻana o ka papa
Hoʻoponopono ka polokalamu i nā pilikia o kēlā me kēia lā, ʻoiai e lilo ana i mea paʻakikī. E like me kā Marc Andreessen i ʻōlelo ai, ke hoʻopau nei ia i ka honua.
ʻO ka hopena, ua loli nui ke ʻano o ka hoʻomohala ʻana a me ka hāʻawi ʻana i nā noi i nā makahiki i hala. He mau hoʻololi kēia ma ka pālākiō tectonic i hopena i kahi pūʻulu kumu. Ua kōkua kēia mau loina i ke kūkulu ʻana i kahi hui, hoʻolālā, hoʻomohala, a hāʻawi i kāu noi i nā mea hoʻohana hope.
Hiki ke hōʻuluʻulu ʻia nā loina penei: pono e liʻiliʻi ka palapala noi, pili pūnaewele, a loaʻa kahi hoʻolālā hoʻomohala-centric. Ma ke kūkulu ʻana i kēia mau loina ʻekolu, hiki iā ʻoe ke hana i kahi noi paʻa, hoʻopau i ka hopena i hiki ke hāʻawi wikiwiki a paʻa i ka mea hoʻohana hope, a hiki ke maʻalahi a hiki ke hoʻonui ʻia.
Loaʻa i kēlā me kēia o nā loina i manaʻo ʻia he mau ʻano a mākou e kūkākūkā ai e hōʻike i ke ʻano o kēlā me kēia kumukānāwai e kōkua i ka pahuhopu hope o ka hāʻawi wikiwiki ʻana i nā noi hilinaʻi i maʻalahi ke mālama a hoʻohana. E nānā mākou i nā loina i ka hoʻohālikelike ʻana i ko lākou kūʻē ʻana i mea e wehewehe ai i ke ʻano o ka ʻōlelo ʻana, "E hōʻoia ʻoe e hoʻohana kumu o ka liʻiliʻi".
Manaʻo mākou e paipai kēia ʻatikala iā ʻoe e hoʻohana i nā loina i manaʻo ʻia no ke kūkulu ʻana i nā noi hou e hāʻawi i kahi ala hoʻolālā lokahi i loko o ka pōʻaiapili o kahi ʻenehana e ulu mau nei.
Ma ka hoʻohana ʻana i kēia mau loina, e ʻike ʻoe iā ʻoe iho e hoʻohana pono i nā ʻano hou loa o ka hoʻomohala polokalamu, me ka
He aha ka polokalamu hou?
Nā noi hou? Pūʻulu hou? He aha ka manaʻo o ka "modern"?
ʻO ka hapa nui o nā mea hoʻomohala he ʻike kumu wale nō i ke ʻano o kahi noi hou, no laila pono e wehewehe pono i kēia manaʻo.
Kākoʻo kekahi palapala noi hou i nā mea kūʻai aku he nui, inā paha he mea hoʻohana e hoʻohana ana i ka waihona React JavaScript, he polokalamu kelepona no Android a i ʻole IOS, a i ʻole kahi noi e pili ana i kekahi ma o ka API. Hōʻike ka palapala noi hou i kahi helu pau ʻole o nā mea kūʻai aku nāna e hāʻawi i ka ʻikepili a i ʻole nā lawelawe.
Hāʻawi kahi noi hou i kahi API e komo i ka ʻikepili i noi ʻia a me nā lawelawe. Pono e hoʻololi a mau ka API, ʻaʻole i kākau kikoʻī ʻia no kahi noi kikoʻī mai kahi mea kūʻai aku. Loaʻa ka API ma luna o HTTP(S) a hāʻawi i ke komo i nā hana āpau i loaʻa ma ka GUI a i ʻole CLI.
Pono e loaʻa ka ʻikepili ma kahi ʻano maʻamau, interoperable e like me JSON. Hōʻike ka API i nā mea a me nā lawelawe ma kahi ʻano akaka a hoʻonohonoho ʻia; no ka laʻana, hāʻawi kahi RESTful API a i ʻole GraphQL i kahi interface kūpono.
Kūkulu ʻia nā noi o kēia wā ma luna o kahi waihona hou, a ʻo kahi pūʻulu hou ka waihona e kākoʻo ana i ia mau noi, kēlā me kēia. Hāʻawi kēia waihona i ka mea hoʻomohala e hana maʻalahi i kahi noi me kahi pānaʻi HTTP a me nā helu hope API. ʻO ke ala āu e koho ai e ʻae i kāu noi e ʻae a hoʻouna i ka ʻikepili ma ka palapala JSON. I nā huaʻōlelo ʻē aʻe, pili ka waihona o kēia manawa i nā mea o ka noi ʻumikūmālua-factor no
Hoʻokumu ʻia nā mana kaulana o kēia ʻano waihona
E ʻoluʻolu, ʻaʻole mākou e kākoʻo i kahi ala microservices. ʻO ka hapa nui o ʻoukou e hana pū ana me nā monoliths e pono e hoʻomohala, aʻo nā mea ʻē aʻe e pili ana i nā noi SOA e hoʻonui a hoʻololi nei e lilo i mau noi microservice. Ke neʻe nei kekahi i nā noi serverless, a ke hoʻokō nei kekahi i nā hui ʻana o nā mea i luna. Ua pili nā loina i wehewehe ʻia ma kēia ʻatikala i kēlā me kēia ʻōnaehana me nā hoʻololi liʻiliʻi wale nō.
Nā Kuleana
I kēia manawa ua loaʻa iā mākou kahi ʻike maʻamau i ke ʻano o kahi noi hou a me kahi waihona hou, ʻo ia ka manawa e luʻu ai i ka hoʻolālā a me nā loina hoʻolālā e lawelawe maikaʻi iā ʻoe i ka hoʻolālā ʻana, hoʻokō, a mālama i kahi noi hou.
ʻO kekahi o nā loina "kūkulu i nā polokalamu liʻiliʻi", e kāhea wale kākou ke kumu o ka uuku. Aia nā noi paʻakikī nui loa i nā ʻāpana neʻe. ʻO ke kūkulu ʻana i kahi noi mai nā ʻāpana liʻiliʻi, ʻoi aku ka maʻalahi o ka hoʻolālā, mālama ʻana a me ka hoʻohana holoʻokoʻa. (E hoʻomanaʻo, ua ʻōlelo mākou "e maʻalahi" a ʻaʻole "maʻalahi").
ʻO ka lua o ka manaʻo, hiki iā mākou ke hoʻonui i ka huahana mea hoʻomohala ma ke kōkua ʻana iā lākou e nānā i nā hiʻohiʻona a lākou e hoʻomohala nei, ʻoiai e hoʻokuʻu ana iā lākou mai ka hopohopo e pili ana i nā ʻōnaehana a me CI / CD i ka wā o ka hoʻokō. No laila, ma kahi pōkole, kā mākou hoʻokokoke mea hoʻomohala.
ʻO ka hope, pono e hoʻopili ʻia nā mea āpau e pili ana i kāu noi i ka pūnaewele. I loko o nā makahiki he 20 i hala iho nei, ua holomua nui mākou i ka wā e hiki mai ana i ka pūnaewele no ka mea ua wikiwiki nā pūnaewele a ua paʻakikī loa nā noi. E like me kā mākou i ʻike mua ai, pono e hoʻohana ʻia kahi noi hou ma waena o kahi pūnaewele e nā mea kūʻai aku he nui. ʻO ka hoʻohana ʻana i ka noʻonoʻo pūnaewele i ka hoʻolālā ʻana he mau pōmaikaʻi nui i kūpono maikaʻi me ke kumu o ka uuku a me ka manaʻo o ke ala, mea hoʻomohala.
Inā mālama ʻoe i kēia mau loina i ka wā e hoʻolālā a hoʻokō ai i kahi noi, e loaʻa iā ʻoe kahi pōmaikaʻi kūʻokoʻa i ka hoʻomohala ʻana a me ka hāʻawi ʻana i kāu huahana.
E nānā pono kākou i kēia mau loina ʻekolu.
ʻO ke kumu o ka liʻiliʻi
He mea paʻakikī i ka lolo kanaka ke ʻike i ka nui o ka ʻike i ka manawa hoʻokahi. I loko o ka psychology, pili ka huaʻōlelo cognitive load i ka nui o ka hoʻoikaika noʻonoʻo e pono ai e mālama i ka ʻike ma ka hoʻomanaʻo. ʻO ka hoʻemi ʻana i ka haʻahaʻa cognitive i nā mea hoʻomohala he mea nui ia no ka mea hiki iā lākou ke nānā aku i ka hoʻoponopono ʻana i ka pilikia ma mua o ka paʻa ʻana i ke ʻano paʻakikī o kēia manawa o ka noi holoʻokoʻa a me nā hiʻohiʻona i kūkulu ʻia i ko lākou poʻo.
Hoʻopau ʻia nā noi no nā kumu penei:
- Hoʻemi i ka haʻahaʻa cognitive i nā mea hoʻomohala;
- ʻO ka wikiwiki a me ka maʻalahi o ka ho'āʻo;
- Hāʻawi wikiwiki i nā loli i ka noi.
Nui nā ala e hōʻemi ai i ka haʻahaʻa noʻonoʻo ma luna o nā mea hoʻomohala, a ma laila ke kumu o ka liʻiliʻi.
No laila, ʻekolu mau ala e hoʻemi ai i ka ukana cognitive:
- E ho'ēmi i ka manawa a lākou e noʻonoʻo ai i ka hoʻomohala ʻana i kahi hiʻohiʻona hou - ʻo ka pōkole o ka manawa, ʻo ia ka haʻahaʻa o ka haʻahaʻa cognitive.
- E ho'ēmi i ka nui o ke code e hana ʻia ana i ka manawa - liʻiliʻi code - liʻiliʻi ka ukana.
- E hoʻomaʻamaʻa i ke kaʻina hana o ka hoʻololi ʻana i kāu noi.
Hoʻemi ʻia nā manawa hoʻomohala
E hoʻi kāua i ka wā i hana ʻia ai ke ʻano hana waterfall
ʻO ke kūlana maʻamau no ke kaʻina hana hoʻomohala, a he hana maʻamau nā manawa o ʻeono mahina a ʻelua makahiki no ka hoʻomohala ʻana a i ʻole ka hoʻonui ʻana i kahi noi. ʻO ka mea maʻamau, heluhelu mua nā ʻenekinia i nā palapala pili e like me nā koi huahana (PRD), palapala kuhikuhi ʻōnaehana (SRD), hoʻolālā hoʻolālā, a hoʻomaka e hoʻohui i kēia mau mea āpau i hoʻokahi kumu hoʻohālike e like me kā lākou i kākau ai i ke code. E like me nā koi, a no laila, ua hoʻololi ʻia ka hale hoʻolālā, pono e hoʻoikaika nui ʻia e mālama i ka hui holoʻokoʻa e pili ana i nā mea hou i ke kumu hoʻohālike cognitive. I ka hihia maikaʻi loa, hiki i kēia ala ke hoʻopau wale i ka hana.
ʻO ka hoʻololi nui loa i ke kaʻina hana hoʻomohala noi ʻo ia ka hoʻokomo ʻana i ke ʻano agile. ʻO kekahi o nā hiʻohiʻona nui o ke ʻano hana agile
- He hoʻomohala hoʻomau kēia. I ka huli ʻana, alakaʻi kēia i ka hōʻemi ʻana i ka haʻahaʻa cognitive ma luna o nā ʻenekinia. Ma kahi o ke koi ʻana i ka hui hoʻomohala e hoʻokō i ka noi i hoʻokahi pōʻai lōʻihi, agile
ʻO ke ala e hiki ai iā ʻoe ke nānā aku i nā helu liʻiliʻi o nā code i hiki ke hoʻāʻo koke ʻia a kau ʻia, ʻoiai e loaʻa ana nā manaʻo. Ua neʻe ka haʻawina cognitive o kahi noi mai kahi manawa o ʻeono mahina a ʻelua mau makahiki, me ka nui o nā kikoʻī, i kahi hoʻohui a i ʻole hoʻololi ʻelua pule, e kuhikuhi ana i kahi ʻike ākea o kahi noi nui.
ʻO ka hoʻololi ʻana i ka manaʻo mai kahi noi nui i nā hiʻohiʻona liʻiliʻi hiki ke hoʻopau ʻia i loko o ka sprint ʻelua pule, e nānā ana i mua i hoʻokahi hiʻohiʻona mai ka sprint aʻe ma ka noʻonoʻo he loli nui. ʻO kēia ka mea i hiki ai ke hoʻonui i ka hoʻomohala ʻana i ka wā e hōʻemi ana i ka ukana cognitive, e loli mau ana.
Ma ke ʻano hana agile
manaʻo ʻia ka manaʻo hope loa i hoʻololi iki ʻia o ka manaʻo kumu, no laila, ʻaʻole maopopo ka pae hoʻomohala hope. ʻO nā hopena wale nō o kēlā me kēia sprint kikoʻī hiki ke maopopo a pololei.
Nā codebase liʻiliʻi
ʻO ka hana aʻe i ka hōʻemi ʻana i ka haʻahaʻa cognitive e hōʻemi i ke kumu code. ʻO ka mea maʻamau, he nui nā noi o kēia wā-he noiʻi paʻa, hiki ke loaʻa nā tausani o nā faila a me nā haneli haneli o nā laina code. Ma muli o ka hoʻonohonoho ʻana o nā faila, ʻike ʻia nā pilina a me nā hilinaʻi ma waena o ke code a me nā faila. ʻO ka hoʻopau ʻana i ka hoʻokō code ponoʻī hiki ke pilikia, ma muli o nā hale waihona puke i hoʻohana ʻia a pehea ka ʻokoʻa o nā mea hana debugging ma waena o nā hale waihona puke/packages/modules a me nā code mea hoʻohana.
ʻO ke kūkulu ʻana i kahi kumu hoʻohālike noʻonoʻo hana o ke code o kahi noi hiki ke lawe i kahi manawa nui, e kau hou i kahi haʻahaʻa cognitive nui ma luna o ka mea hoʻomohala. Heʻoiaʻiʻo loa kēia no nā codebases monolithic, kahi nui o ke code, ʻaʻole i wehewehe maopopo ʻia nā pilina ma waena o nā mea hana, a ʻike pinepine ʻia ka hoʻokaʻawale ʻana o nā mea nānā no ka mea ʻaʻole mālama ʻia nā palena hana.
ʻO kahi ala maikaʻi e hōʻemi ai i ka haʻahaʻa cognitive i nā mea ʻenekinia ʻo ka neʻe ʻana i kahi hoʻolālā microservices. Ma keʻano microservice, e nānā ana kēlā me kēia lawelawe i hoʻokahi o nā hana; ʻO ka manaʻo o ka lawelawe ke wehewehe a hoʻomaopopo ʻia. Akaka nō hoʻi nā palena o ka lawelawe - e hoʻomanaʻo e hana ʻia ke kamaʻilio me ka lawelawe me ka hoʻohana ʻana i kahi API, no laila hiki ke hoʻololi maʻalahi ka ʻikepili i hana ʻia e kekahi lawelawe i kekahi.
ʻO ka launa pū ʻana me nā lawelawe ʻē aʻe e kaupalena ʻia i nā lawelawe mea hoʻohana liʻiliʻi a me kekahi mau lawelawe lawelawe e hoʻohana ana i nā kelepona API maʻalahi a maʻemaʻe, e like me REST. 'O ia ho'i, ua ho'emi nui 'ia ka haawe cognitive ma luna o ka 'enekinia. ʻO ka paʻakikī nui e hoʻomau i ka hoʻomaopopo ʻana i ke kumu hoʻohālike lawelawe a me ke ʻano o nā mea e like me ke kālepa ʻana ma waena o nā lawelawe he nui. ʻO ka hope loa, ʻo ka hoʻohana ʻana i nā microservices e hōʻemi i ka haʻahaʻa cognitive ma ka hōʻemi ʻana i ka nui o ke code, ka wehewehe ʻana i nā palena o ka lawelawe, a me ka hāʻawi ʻana i ka ʻike i ka pilina mea hoʻohana.
Hoʻololi liʻiliʻi liʻiliʻi
ʻO ka mea hope loa o ke kumu liʻiliʻi he hooponopono hoololi. He mea hoʻowalewale loa ia i nā mea hoʻomohala e nānā i kahi kumu code (ʻoiai paha i kā lākou iho, code kahiko) a ʻōlelo ʻia, "He ʻino kēia, pono mākou e kākau hou i kēia mea āpau." I kekahi manawa ʻo ia ka hoʻoholo kūpono, a i kekahi manawa ʻaʻole. Ke kau nei ia i ke kaumaha o nā hoʻololi hoʻohālike honua ma luna o ka hui hoʻomohala, a ʻo ia hoʻi ka hopena i ka ukana cognitive nui. ʻOi aku ka maikaʻi o ka poʻe ʻenekinia e nānā i nā loli i hiki iā lākou ke hana i ka wā o ka sprint, i hiki iā lākou ke ʻōwili i ka hana pono i ka manawa kūpono, ʻoiai me ka mālie. Pono e like ka huahana hope me ka mea i hoʻolālā mua ʻia, akā me kekahi mau hoʻololi a me nā hoʻāʻo e kūpono i nā pono o ka mea kūʻai.
Ke kākau hou ʻana i nā ʻāpana nui o ke code, hiki ʻole ke hāʻawi koke i kahi hoʻololi no ka mea e komo nā mea hilinaʻi ʻē aʻe. No ka mālama ʻana i ke kahe o nā loli, hiki iā ʻoe ke hoʻohana i ka hūnā hiʻohiʻona. ʻO ke kumu, ʻo ia ke ʻano o ka hana i ka hana ʻana, akā ʻaʻole i loaʻa ma o nā hoʻonohonoho hoʻololi kaiapuni (env-var) a i ʻole kekahi ʻano hana hoʻonohonoho ʻē aʻe. Inā ua hala ke code i nā kaʻina hana mana maikaʻi a pau, hiki ke hoʻopau ʻia i ka hana ʻana ma kahi kūlana huna. Eia naʻe, hana wale kēia hoʻolālā inā hiki ke hoʻohana ʻia ka hiʻohiʻona. A i ʻole, e hoʻopili wale ia i ke code a hoʻohui i ka haʻahaʻa cognitive e pono ai ka mea hoʻomohala e hoʻokō i mea e hoʻohua ai. Hoʻololi i ka hoʻokele a me nā hoʻololi hoʻololi iā lākou iho e kōkua i ka mālama ʻana i ka haʻawina cognitive o nā mea hoʻomohala ma kahi pae hiki ke hiki.
Pono nā ʻenekinia e lanakila i nā pilikia he nui ʻoiai ke hoʻokō wale nei i nā hana hou. He mea maʻalahi ka hoʻokele e hoʻemi i ka hana pono ʻole i ka hui i hiki iā ia ke nānā aku i nā mea nui o ka hana. ʻEkolu mau mea hiki iā ʻoe ke hana e kōkua i kāu hui hoʻomohala:
- E hoʻohana i ke ʻano hana
agile
, e kaupalena i ka manawa e pono ai ka hui e nānā i nā hiʻohiʻona nui. - E hoʻokō i kāu noi ma ke ʻano he mau microservices. E kaupalena kēia i ka helu o nā hiʻohiʻona i hoʻokomo ʻia a hoʻoikaika i nā palena i loaʻa ka haʻahaʻa cognitive i ka wā e hana ana.
- E koho i nā hoʻololi hoʻonui i nā mea nui a paʻa ʻole, e hoʻololi i nā ʻāpana liʻiliʻi o ke code. E hoʻohana i ka hūnā hiʻona e hoʻokō i nā loli inā ʻaʻole ʻike koke ʻia lākou ma hope o ka hoʻohui ʻia ʻana.
Inā hoʻohana ʻoe i ke kumu o ka liʻiliʻi i kāu hana, e ʻoi aku ka hauʻoli o kāu hui, ʻoi aku ka maikaʻi o ka nānā ʻana i ka hāʻawi ʻana i nā hiʻohiʻona kūpono, a ʻoi aku ka wikiwiki o ka hoʻololi ʻana i ka maikaʻi. Akā ʻaʻole kēia manaʻo ʻaʻole hiki i ka hana ke lilo i mea paʻakikī; i kekahi manawa, ma kahi ʻē aʻe, ʻo ka hoʻokomo ʻana i nā hana hou e pono ai ka hoʻololi ʻana i kekahi mau lawelawe a ʻoi aku ka paʻakikī o kēia kaʻina hana ma mua o ka mea like i loko o kahi hoʻolālā monolithic. I kēlā me kēia hihia, ʻoi aku ka maikaʻi o ka hoʻohana ʻana i ke ala.
Ka hope o ka hapa mua.
E hoʻopuka koke mākou i ka ʻāpana ʻelua o ka unuhi, akā i kēia manawa ke kali nei mākou i kāu mau manaʻo a kono iā ʻoe
Source: www.habr.com