Talaan ng nilalaman[Tago][Ipakita]
- Panimula sa micro front-end architecture
Mga kalamangan ng Micro frontend +-
- Pag-unlad sa Mabilis na Autonomous na Mga Koponan
- Ang Mas Maliit na Codebase ng Indibidwal na Micro Frontends ay Humahantong sa Mas Malinis na Code
- Pinahusay na katatagan ng app Dahil sa Loose Coupling
- Ang Pagsubok sa Mga Indibidwal na Feature ay Ginawang Mas Simple
- Ang Pinababang Laki ng Bundle ay Humahantong sa Mas Mabilis na Pag-load ng Pahina
- Kalayaan ng Teknolohiya
- Konklusyon
Ang ideya ng mga microservice ay nakakuha ng maraming pansin kamakailan, at maraming mga kumpanya ang gumagamit nito upang alisin ang malalaking, monolitikong backend.
Ang pagpunta sa parehong ruta sa frontend ay isang hamon pa rin para sa maraming negosyo, kahit na ang distributed na paraan ng pagbuo ng server-side ng mga web app ay higit o hindi gaanong maaasahan sa mga tuntunin ng pananaliksik at pagpapatupad.
Dahil sa malapit na dependency nito, kadalasang ginagawang mahirap ng client-side monolith na pagsamahin ang mga bagong feature, gamitin ang mga bagong teknolohiya, at sukatin ang mga indibidwal na bahagi.
Ang mga ito at iba pang mga hamon ay nag-udyok sa mga developer ng frontend na magsiyasat gamit ang mga microservice.
Bilang resulta, binuo ang isang bagong diskarte sa arkitektura na kilala bilang micro frontend para sa paglikha ng front-end na layer ng mga website at web-based na application.
Ang termino ay unang ginamit noong 2016, at mula noon, nakakuha ito ng maraming atensyon para sa isang mabuting layunin.
Ang artikulong ito ay magbibigay ng pangkalahatang pag-unawa sa kung ano ang mga micro frontend at ang mga isyung tinutugunan ng mga ito. ito ay gumagana, pati na rin ang mga kalamangan at kahinaan.
Panimula sa micro front-end architecture
Ang isang kontemporaryong paraan ng front-end development na tinatawag na micro-frontend architecture ay naghahati ng a web application sa maliit, independiyenteng mga bahagi.
Para sa end user, ang mga bahaging ito ay lumilitaw na isang yunit kahit na sila ay itinayo nang nakapag-iisa at pagkatapos ay pinagsama-sama.
Sa pagkakaiba ng micro frontends ay tumutukoy sa client side, hindi sa server side, ng mga online na solusyon, ang katwiran na pinagbabatayan ng mga ito ay kapareho ng sa microservices.
Ang paggawa ng mga sopistikadong produkto na nakabatay sa web ay pinakamahalaga kapag gumagamit ng isang micro frontend na diskarte.
Ang mga micro frontend, bilang kabaligtaran sa isang mas kumbensyonal na front-end monolith, ay nagbibigay-daan sa maraming koponan na mag-collaborate nang hiwalay sa iba't ibang mga proyekto ng software.
Ang mga programmer ay makakagawa ng mga web app nang mas mabilis at may higit na scalability at maintainability gamit ang arkitektural na disenyong ito.
Sa madaling salita, ang bawat micro frontend ay isang piraso lamang ng code para sa isang natatanging bahagi ng web page.
Ang mga feature na ito ay kinokontrol ng hiwalay na mga team, na ang bawat isa ay dalubhasa sa isang partikular na industriya o layunin.
Monolithic vs Microservices vs Micro frontend architecture
Mag-isip ng relocate. Magiging mas simple ba para sa iyo na ayusin ang lahat sa isang bilang ng mga maliit na kahon na may label na dalubhasa at ilipat ang bawat isa nang paisa-isa o i-pack up ang buong staff sa isang napakalaking kahon at dalhin ito sa isang bagong lokasyon?
Ang malinaw na solusyon ay naroroon.
Inihahambing ng analogy na ito ang dalawang natatanging arkitektura ng web app, mga monolith at microservice (kilala rin bilang mga micro frontend).
Monolithic na arkitektura
Maaari mong maalala ang "magandang lumang araw" kapag ang isang kumpletong aplikasyon ay ginawa bilang isang solong, magkakaugnay na entity. Ang ganitong paraan ay tinatawag na monolith, na isang lumang termino para sa isang malaking bloke ng bato.
Ito ang kahulugan.
Ang mga sistemang monolitik ay may magkakaugnay na elemento. Samakatuwid, kung gusto mong baguhin ang isang bagay o magdagdag ng bagong feature, posibleng masira ang buong system.
Kahit na ito ay lipas na, paminsan-minsan ay umiiral pa rin ito. Oo, alam namin ang iyong kasalukuyang ekspresyon.
Ang konseptwal na paghahati ng codebase sa dalawang magkaibang bahagi — frontend (client-side) at backend (server-side) — ay naging hindi maiiwasan habang ang mga bagong teknolohiya ay nabuo at ang mga produkto ng software ay naging mas kumplikado.
Ang pinakasikat na paraan ng pagpapatakbo ngayon ay ang paghihiwalay ng mga alalahanin sa pagitan ng layer ng presentasyon kung saan nakikipag-ugnayan ang isang end user at lahat ng nangyayari sa background.
Nangangailangan ito ng dalawang software engineering team, kasama ang front-end team na bumubuo ng mga visual na bahagi at ang back-end na team ay bumubuo ng mga serbisyo sa web, business logic, data access, integrations, atbp.
Gayunpaman, sa kabila ng paghihiwalay na ito, ang diskarteng ito ay nananatiling monolitik sa kalikasan.
Ang pangunahing pagbabago ay mayroon na tayong dalawang malalaking bloke ng code—ang frontend at ang backend—sa halip na isang napakalaking aplikasyon. Ang mga monolitikong arkitektura ay hindi kailangang maging kakila-kilabot; mayroon silang ilang mga benepisyo, kabilang ang
- Simple at mabilis na pag-develop para sa maliliit na application na may iisang source codebase at napakasimpleng disenyo;
- Ang pagsubok at pag-debug ay napaka-simple dahil ang lahat ng code ay nasa isang lokasyon, na ginagawang mas madali para sa isang koponan na subaybayan ang daloy ng isang kahilingan at makilala ang mga bug;
- Sa unang bahagi ng pagbuo ng isang aplikasyon, ang mga gastos ay mas mura dahil ang alinman sa mga gastos sa imprastraktura o mga gastos sa pagpapaunlad ay natamo hanggang sa maidagdag ang mga bagong tampok.
Ang mga kawalan ng diskarte na ito ay makikita sa
- Restricted deployment flexibility – dapat maghintay ang mga team kung kakaunti lang sila na nagtatrabaho sa proyekto at kailangan ng bagong deployment sa tuwing ina-update mo ang code;
- Ang pag-adopt ng mga bagong teknolohiya ay mahirap dahil ang paggawa nito ay nangangailangan ng muling pagsusulat ng malaking bahagi, kung hindi ang buong proyekto.
- Kapag dumami ang bilang ng mga developer, nagiging malapit na konektado, kumplikado, at mahirap pangasiwaan at intindihin ang isang sistema ng code.
- Mga isyu sa organisasyon – ang bawat miyembro ng koponan ay dapat gumamit ng parehong bersyon ng mga aklatan at mag-ulat ng anumang mga pagbabago kung maraming mga koponan ang nagtatrabaho sa isang monolitikong proyekto.
- Mga alalahanin sa scalability – dahil ang mga bahagi ng proyekto ay magkakaugnay, ang pag-scale sa mga ito nang hiwalay ay nagdudulot ng mga paghihirap na nagreresulta sa makabuluhang downtime at mas mataas na paggasta.
- Ang kumplikadong lohika ng proyekto ay maaaring mahirap para sa mga bagong miyembro ng koponan na maunawaan, lalo na kung ang mga inhinyero na orihinal na nagtrabaho dito ay hindi na nagtatrabaho.
Ang pagbuo ng mga microservice at ang kanilang malapit na kamag-anak, at mga micro frontend, ay tumugon sa mga pangunahing problema sa mga monolitikong sistema.
arkitektura ng microservices
Ang pamamaraang arkitektura na kilala bilang mga microservice ay nagbibigay-daan para sa paglikha ng maraming maluwag na naka-link at nakapag-iisa na nade-deploy na mas maliliit na bahagi, o mga serbisyo, na bumubuo sa isang backend ng application.
Ang bawat serbisyo ay may sariling codebase, mga pipeline ng CI/CD, mga pamamaraan ng DevOps, at mga proseso para sa pagpapatakbo ng mga ito.
Makikita mo na ang monolitikong backend na koponan ay nahahati sa magkakahiwalay na mga koponan sa pamamagitan ng pagtingin sa larawan sa itaas.
Ang bawat isa ay tumutuon nang paisa-isa sa ibang aspeto ng application (tulad ng serbisyo sa produkto, serbisyo sa paghahanap, at serbisyo sa pagbabayad).
Ang komunikasyon sa pagitan ng mga serbisyo ay nangyayari sa pamamagitan ng mga itinatag na protocol na kilala bilang mga API, gaya ng magaan na REST API protocol na gumagamit ng mga pattern ng kasabay na request-reply.
Ang isa pang pagpipilian ay ang paggamit ng asynchronous na komunikasyon gamit ang software tulad ng Kafka, na nag-aalok ng pag-publish/subscribe ng mga istruktura at kaganapan ng komunikasyon.
Ang mga microservice ay sumasama sa frontend sa pamamagitan ng backend para sa frontend (BFF) na serbisyo o isang API Gateway sa pamamagitan ng network. Nag-aalok ang BFF ng customized na API para sa bawat kliyente, samantalang ang API Gateways ay nagbibigay ng isang punto ng access para sa isang koleksyon ng mga microservice.
Ngunit kahit na may mga autonomous na bahagi ng backend at lahat ng mga pakinabang na ibinibigay nila, ang frontend ay isang monolith pa rin.
Samakatuwid, dito ay kapaki-pakinabang ang mga micro frontend.
Micro frontends architecture
Katulad ng mga microservice, kung saan ang mga maluwag na naka-link na bahagi ay pinamamahalaan ng ilang team, inilalapat ng arkitektura ng micro frontend ang konsepto sa browser.
Sinusunod ng mga interface ng gumagamit ng web application na ito ang istrukturang ito, na binubuo ng medyo nagsasarili na mga bahagi.
Ang mga koponan ay nilikha din sa mga pangangailangan ng kliyente o mga kaso ng paggamit sa halip na partikular na kadalubhasaan o teknolohiya.
Dahil dito, ang mga koponan ay kasangkot sa mga microservice at micro frontend na proyekto.
- vertically sliced — dahil may mga frontend developer, data expert, backend engineer, QA engineer, atbp. na nagtatrabaho din sa parehong proyekto, ginagawa nila ang kanilang mga feature mula sa user interface sa mga database; at
- cross-functional - ang bawat miyembro ng koponan ay nag-aambag ng kanilang kadalubhasaan sa grupo.
Maaari ding piliin ng mga koponan ang tech stack na pinakaangkop sa kanilang partikular na linya ng negosyo.
Maaaring gamitin ng isang team ang React para i-program ang fragment nito. Ang isa pang koponan ay lumilikha ng bagong Angular na bersyon. Ang Vue.js ay isang halimbawa.
Ginagamit ang mga micro frontend kasabay ng mga nauugnay na microservice para matugunan ang mga isyu na karaniwang mayroon ang mga development team sa mga monolith. Ang diskarte ay nag-aalok ng mga sumusunod na pakinabang.
- Kalayaan sa teknolohiya: Ang mga inhinyero sa frontend ay maaaring pumili ng mga alternatibong JavaScript framework, runtime environment, at buong mga stack ng teknolohiya depende sa mga pangangailangan ng kumpanya. Sa itaas ng lumang arkitektura, maaaring maglapat ng bagong framework.
- Posible ang isang mas mataas na antas ng flexibility dahil ang bawat micro frontend ay self-contained at maaaring i-develop, subukan, i-deploy, at i-upgrade nang hiwalay. Bilang resulta, kung ang isang koponan ay gumagawa ng isang tampok at nagtulak ng isang pag-aayos ng bug, at ang isa pang koponan ay kailangang magdagdag ng sarili nitong tampok, hindi nila kailangang maghintay para sa unang koponan na makumpleto ang kanilang gawain.
- Mga autonomous na team at system: Ang bawat team ng produkto, at dahil dito ang bawat feature, ay maaaring gumana nang may kaunting pag-asa sa iba, na nagbibigay-daan dito na patuloy na gumana kahit na hindi available ang mga kalapit na bahagi.
- Marami, mas maliliit na codebase: Ang bawat isa sa mga micro frontend ay magkakaroon ng sarili nitong mas mapapamahalaan, mas maliit na codebase. Mas kaunting tao ang tututuon sa isang partikular na bahagi ng UI, pasimplehin ang mga pagsusuri sa code, at pagbutihin ang pangkalahatang organisasyon.
- Simpleng pag-scale ng app: Ang isa pang benepisyo ng mga micro frontend ay ang kakayahang i-scale ang bawat feature nang paisa-isa. Kabaligtaran sa mga monolith, kung saan dapat i-scale ang buong programa sa tuwing may idaragdag na bagong feature, ginagawa nitong mas mahusay ang buong proseso sa parehong oras at pera.
Paano gumagana ang micro frontend?
Gaya ng nauna naming sinabi, patayo ang pagkakaayos ng mga team sa loob ng arkitektura ng micro frontend, na nangangahulugang pinaghihiwalay sila ng kaalaman o layunin ng domain at may pananagutan mula simula hanggang katapusan para sa isang partikular na produkto.
Maaari itong magkaroon ng isa o dalawang backend microservice pati na rin ang isang maliit na frontend. Sa higit pang detalye, suriin natin ang mga katangian ng visual na elementong ito, mga pakikipag-ugnayan sa iba pang mga bahagi ng UI, at pagsasama sa homepage.
Ang isang micro frontend ay maaaring
- isang buong pahina (hal., isang pahina ng detalye ng produkto) o
- mga seksyon ng page na maaaring gamitin ng ibang mga team, gaya ng mga header, footer, at search bar.
Maaari mong hatiin ang isang malaking website sa ilang uri ng page at ibigay ang bawat uri sa isang partikular na tauhan na gagawin.
Gayunpaman, madalas na nangyayari ang ilang bahagi sa maraming page, gaya ng mga header, footer, block ng suhestiyon, atbp. Halimbawa, maaaring isama ang isang block ng suhestiyon sa isang homepage, page ng detalye ng produkto, o maging sa page ng pag-checkout.
Sa esensya, ang mga koponan ay maaaring lumikha ng mga piraso na magagamit ng ibang mga koponan sa kanilang mga pahina.
Ang mga micro frontend, gayunpaman, ay maaaring i-deploy nang hiwalay bilang iba't ibang mga proyekto kumpara sa mga reusable na bahagi.
Ang lahat ng ito ay mukhang kamangha-mangha, ngunit upang lumikha ng isang pinag-isang interface, ang mga pahina at mga fragment ay dapat kahit papaano ay pinagsama.
Nangangailangan ito ng pagsasama sa frontend, na maaaring magawa sa pamamagitan ng iba't ibang mga diskarte, kabilang ang pagruruta, komposisyon, at komunikasyon (tingnan ang graphic sa itaas).
Direksiyon
Kapag ang serbisyo mula sa isang page na kinokontrol ng isang team ay kinakailangan para ma-access ang isang page na pagmamay-ari ng isa pang team, ang pagruruta ay kapaki-pakinabang para sa page-level integration.
Ang bawat micro frontend ay pinangangasiwaan bilang isang single-page na application. Ang mga simpleng HTML na link ay maaaring gamitin upang magbigay ng pagruruta.
Maaaring pilitin ng isang user ang browser na i-download ang target na markup mula sa isang server at palitan ang kasalukuyang page ng bago sa pamamagitan ng pag-click sa mga hyperlink.
Ang shell ng app ay ang pinakamababang HTML, CSS, at JavaScript na nagpapagana sa isang UI. Kahit na ang data ng nilalaman na hiniling mula sa server ay naghihintay pa rin, ang user ay makakatanggap ng isang static na ipinapakitang pahina kaagad. Ang shell ng gitnang app ay nagsisilbing parent application para sa mga single-page na app na ginawa ng iba't ibang team.
Anuman ang library o framework na ginagamit, ang meta-frameworks ay nagbibigay-daan sa pagsasanib ng iba't ibang page sa iisang page.
Komposisyon
Ang komposisyon ay ang proseso ng pag-aayos ng mga piraso upang magkasya ang mga ito sa naaangkop na mga puwang sa isang pahina. Sa karamihan ng mga kaso, hindi agad kinukuha ng team na nagde-deploy ng page ang content ng fragment.
Sa halip, naglalagay ito ng placeholder o marker kung saan dapat nasa markup ang fragment.
Gamit ang ibang proseso ng pagbubuo, ang huling pagpupulong ay nagagawa. Ang komposisyon ay maaaring nahahati sa dalawang pangunahing kategorya: client-side at server-side.
Komposisyon sa panig ng kliyente: Ang web browser ay ginagamit upang lumikha at mag-edit ng HTML markup. Ang bawat micro frontend ay may kakayahang baguhin at ipakita ang markup nito nang hiwalay mula sa natitirang bahagi ng page.
Ang mga Web Components, halimbawa, ay nagpapahintulot sa iyo na isagawa ang ganitong uri ng konstruksiyon.
Ang plano ay gawing web component ang bawat fragment na maaaring independiyenteng i-install bilang isang a.js file, pagkatapos nito ay maaaring i-load at i-render ng mga app ang mga ito sa mga puwang na itinalaga para sa kanila sa layout ng tema.
Ang mga bahagi ng web ay nakadepende sa HTML at DOM API, na maaaring gamitin ng iba pang frontend framework, pati na rin ang karaniwang paraan ng pagpapadala at pagtanggap ng data sa pamamagitan ng mga props at kaganapan.
Komposisyon sa gilid ng server: Gamit ang disenyong ito, ang mga piraso ng UI ay pinagsama sa server, na nagreresulta sa isang ganap na nabuong pahina na ipinadala sa panig ng kliyente, na nagpapabilis sa paglo-load.
Ang pagpupulong ay madalas na isinasagawa ng isang hiwalay na serbisyo na nasa pagitan ng web browser at ng mga web server. Ang CDN ay isang halimbawa ng serbisyo (network ng paghahatid ng nilalaman).
Maaari kang pumili ng isa o kumbinasyon ng dalawa, depende sa iyong mga pangangailangan.
Mga pattern ng komunikasyon sa micro frontend
Ang arkitektura ng micro-frontend ay pinakamahusay na gumagana kapag may kaunti o walang pakikipag-ugnayan sa pagitan ng iba't ibang bahagi. Paminsan-minsan, kailangan ng mga micro frontend na makipag-usap sa isa't isa at magbahagi ng impormasyon. Narito ang ilang potensyal na pattern na maaaring humantong sa iyon.
- Mga manggagawa sa web: Ang online na manggagawa ay isang mekanismo na nagbibigay-daan sa nilalaman ng web na magpatakbo ng JavaScript sa background, nang hiwalay sa iba pang mga script, at nang hindi naaapektuhan ang bilis ng pahina. Isang natatanging worker API ang ibibigay para sa bawat micro app. Ang pakinabang na ito ay ang pag-uubos ng oras na trabaho ay maaaring gawin sa ibang thread, na nagbibigay-daan sa UI thread na magpatuloy nang hindi pinapabagal o itinitigil.
- Emitter ng kaganapan: Sa kasong ito, maraming bahagi ang nakikipag-ugnayan sa isa't isa sa pamamagitan ng pakikinig at pagkilos sa anumang pagbabago ng estado sa mga bahagi kung saan sila naka-subscribe. Ang iba pang mga micro frontend na nag-subscribe sa partikular na kaganapan ay tumutugon kapag ang isang micro frontend ay nagpagana ng kaganapang iyon. Ginagawang posible ito ng isang event emitter na ipinakilala sa bawat micro-frontend.
- Mga callback at props: Sa seksyong ito, tutukuyin mo ang isang bahagi ng magulang at mga bahagi ng bata. Ang komunikasyon ay nakaayos sa isang istraktura na parang puno. Ang mga bahagi ng magulang ay gumagamit ng mga props upang maihatid ang data bilang mga function pababa sa puno ng bahagi sa mga bahagi ng bata. Sa turn, mahusay na maa-alerto ng bata ang magulang kapag may nangyari sa kanilang estado sa pamamagitan ng pagtugon sa mga callback. Ginagamit ng React ang mode na ito.
Mga kalamangan ng Micro frontend
Pag-unlad sa Mabilis na Autonomous na Mga Koponan
Ang isang independiyenteng koponan ay maaaring gumawa ng bawat bahagi ng isang web app o website kapag gumagamit ng isang micro frontend na paraan.
Ang bawat koponan ay ganap na nagsasarili, na nangangahulugang ito ang namamahala sa buong yugto ng pag-unlad ng bahagi, mula sa paglilihi hanggang sa paglabas at pagkatapos ng produksyon.
Bukod pa rito, ipinahihiwatig nito na ang iba't ibang mga koponan ay maaaring makipagtulungan nang walang putol habang sabay na nagtatrabaho sa parehong proyekto.
Samakatuwid, ang mga ikot ng paglabas ay mas mabilis kaysa sa mga monolith sa harap.
Ang Mas Maliit na Codebase ng Indibidwal na Micro Frontends ay Humahantong sa Mas Malinis na Code
Ang mga monolitikong front end ay may malalaki at mahirap gamitin na mga codebase na lalong nagiging magulo at mahirap pangasiwaan sa paglipas ng panahon.
Tinutugunan ng mga micro frontend ang problemang ito. Ang source code ng bawat micro frontend ay mas madaling pamahalaan dahil ito ay mas maliit, mas simple, at mas compact.
Ang pangkalahatang solusyon sa web ay nakikinabang mula sa mas malinis na code bilang resulta.
Pinahusay na katatagan ng app Dahil sa Loose Coupling
Ang isang solusyon sa web ay bihirang mahahati sa ganap na independiyenteng mga piraso. Dahil dito, ang mga micro frontend ay nakikipag-usap sa isa't isa.
Gayunpaman, ang bawat link sa pagitan ng mga bahagi ay makabuluhan sa kabila ng maluwag na pagkakakonekta.
Ang pagkabigo ng isang bahagi ay may maliit o walang epekto sa pagpapatakbo ng lahat ng iba pang mga bahagi, na nagbibigay ng pinahusay na katatagan ng isang solusyon sa web.
Ang Pagsubok sa Mga Indibidwal na Feature ay Ginawang Mas Simple
Ang benepisyong ito ay nagreresulta mula sa mga katangian ng mga micro frontend. Batay sa disenyong arkitektura na ito, ang panig ng kliyente ng solusyon sa web ay modular at ang bawat module ay nagsasarili.
Bilang resulta, ang pag-evaluate ng maliit na bahagi ng user interface nang mag-isa ay mas madali para sa isang team na gawin kaysa sa pagsubok ng napakalaking monolith.
Ang Pinababang Laki ng Bundle ay Humahantong sa Mas Mabilis na Pag-load ng Pahina
Ang isa sa mga pangunahing dahilan ng pagkaantala ng mga oras ng pag-load sa mga monolitikong web system na mayaman sa tampok ay ang laki ng isang bundle ng JavaScript. Sa kabilang panig, pinadali ng isang micro frontend na diskarte na bawasan ang oras ng pag-load ng page.
Ang isang browser ay hindi kailangang mag-download ng hindi kinakailangang code nang paulit-ulit dahil ang isang web page ay binubuo ng ilang maliliit na bundle. Bilang resulta, ang pagganap ng pahina at mga oras ng pag-load ay tumaas.
Kalayaan ng Teknolohiya
Maramihang front-end na mga balangkas ay maaaring gamitin ng mga developer upang lumikha ng isang solong online na solusyon na may isang micro-frontend architecture.
Dahil ang bawat bahagi ay nagsasarili, maaari itong gawin gamit ang alinmang teknolohiya na pinakaangkop sa mga gawain ng koponan.
Naturally, dapat mag-ingat ang mga programmer kapag pumipili ng mga framework para sa software project na kanilang pinangangasiwaan, at ang mga konsultasyon sa ibang mga team ay mahigpit pa ring pinapayuhan.
Gayunpaman, walang posibilidad na mapipilitan kang gumamit ng legacy na framework para sa tagal ng habang-buhay ng app.
Kahinaan ng Micro Frontend
Pagsubok ng kumplikadong solusyon sa Web sa kabuuan nito
Madali ang pagsubok sa iba't ibang module ng web solution kapag gumagamit ito ng micro-frontend architecture. Ito ay naiiba sa pagsusuri ng isang web application sa kabuuan, bagaman.
I-verify na gumagana ang lahat ng bahagi ayon sa nilalayon bago magpatuloy. Maaaring mahirap ito dahil ang mga micro frontend ay gumagana nang hiwalay at may mga hiwalay na proseso ng paghahatid.
Mamahaling Paunang Pamumuhunan
Ang mga micro frontend development ay karaniwang humihingi ng malaking gastos sa pananalapi. Ito ay mahal upang mag-assemble at panatilihin up ang maraming mga front-end na koponan.
Bukod pa rito, kakailanganin mo ng mga tauhan ng pamamahala upang ayusin ang trabaho, tiyaking maayos ang lahat, at ginagarantiyahan ang mahusay na komunikasyon ng koponan.
Ang pagiging kumplikado ng Development at Deployment
Ang mga pamamaraan ng pagbuo at pag-deploy ay maaaring maging mas kumplikado bilang isang resulta ng isang micro-frontend na disenyo.
Ang isang solusyon ay maaaring maging kalat ng napakaraming bahagi ng mga independent development team na nagtatrabaho sa parehong proyekto, halimbawa, na maaaring magdulot ng mga problema sa yugto ng pag-deploy.
Ang tamang pagpupulong ng lahat ng mga module at ang kanilang maayos na pagsasama sa pangkalahatang pamamaraan ay hindi rin laging simple; ang gawaing ito ay karaniwang nangangailangan ng masusing pag-unawa sa lahat ng mga dependency.
Mga Problema sa Pagpapanatili ng Pagkakaugnay sa Karanasan ng User
Ang pagpapanatili ng pare-parehong user interface ay mahirap kapag ang mga koponan ay nagtatrabaho nang hiwalay sa ilang bahagi ng software.
Ang solusyon sa web ay dapat na ibahagi ng lahat ng mga developer ng proyekto. Kung hindi, maaaring magkaroon ng maraming kontradiksyon sa kahabaan ng kalsada.
Konklusyon
Ang mga micro frontend, isang kontemporaryong disenyo ng arkitektura, ay maaaring lubos na mapahusay ang pagganap ng malakihang microservice-based na mga proyekto sa web development.
Binibigyang-daan nito ang mga programmer na hatiin ang kumpletong solusyon sa mga discrete na bahagi na maaaring gawin ng ilang mga autonomous na koponan. Maraming benepisyo ang kasunod nito, kabilang ang mas mabilis na paglulunsad ng feature, mas madaling pagsubok ng mga indibidwal na module, at mas tuluy-tuloy na pag-upgrade.
Ngunit may ilang mga paghihirap din sa mga micro frontend.
Ang komprehensibong pagsubok ng isang application, halimbawa, ay maaaring maging mahirap.
Bukod pa rito, dahil kailangan ng malaking team ng mga inhinyero at administrator, napakamahal ng mga proyektong micro frontend.
Dahil dito, bago gumawa ng desisyon, dapat mong isaalang-alang ang lahat ng bahagi ng iyong kaso ng negosyo.
Vladimir Čamaj
Kahit papaano ay hindi ko naintindihan kung anong prinsipyo ang gumagana sa pagitan ng mga indibidwal na sangkap sa frontend. Hindi ko maintindihan kung paano mo gustong ikonekta ang mga bahagi na nilikha sa iba't ibang mga balangkas. Walang anuman sa artikulo tungkol dito. Ang sistema ng mga kaganapan at tagapakinig ay parang impiyerno sa aking paningin. Paano natin ito dapat isipin?