{"id":6865,"date":"2024-06-07T07:53:48","date_gmt":"2024-06-07T07:53:48","guid":{"rendered":"http:\/\/berkut.tech\/?p=6865"},"modified":"2024-07-04T03:42:49","modified_gmt":"2024-07-04T03:42:49","slug":"micro-frontend-mimarisi","status":"publish","type":"post","link":"https:\/\/berkut.tech\/index.php\/2024\/06\/07\/micro-frontend-mimarisi\/","title":{"rendered":"Micro Frontend Mimarisi"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"6865\" class=\"elementor elementor-6865\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1e9e61a4 e-flex e-con-boxed e-con e-parent\" data-id=\"1e9e61a4\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7be8dd75 elementor-widget elementor-widget-text-editor\" data-id=\"7be8dd75\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<p id=\"37e8\">Micro frontend teknolojisine dalmadan \u00f6nce, micro frontend kavram\u0131 belli belirsiz bir \u015fekilde microservices mimarisinden esinlendi\u011fi ve ad\u0131n\u0131 ald\u0131\u011f\u0131 i\u00e7in microservices mimarisinin ne oldu\u011funu bilmeliyiz.<\/p>\n\n<p id=\"4090\">Resmi belgelere g\u00f6re microservices\u2019in tan\u0131m\u0131na a\u015fa\u011f\u0131daki linkten ula\u015fabilirsiniz.<\/p>\n\n<p id=\"8f9b\">Microservices architectural olarak da bilinen microservices, a\u015fa\u011f\u0131daki \u00f6zelliklere sahip olan bir mimari stildir:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Son derece s\u00fcrd\u00fcr\u00fclebilir ve test edilebilinir olmas\u0131<\/li>\n\n<li>Ba\u011f\u0131ms\u0131z deploy yap\u0131labilinir olmas\u0131<\/li>\n\n<li>\u0130\u015f yap\u0131\u015f yeteneklerine g\u00f6re organize olmas\u0131<\/li>\n\n<li>K\u00fc\u00e7\u00fck bir ekip taraf\u0131ndan geli\u015ftirilebilir olmas\u0131<\/li>\n<\/ul>\n\n<p id=\"59f9\">Microservices mimarisi, b\u00fcy\u00fck ve karma\u015f\u0131k uygulamalar\u0131n h\u0131zl\u0131 ve g\u00fcvenilir bir \u015fekilde teslim edilmesini sa\u011flar.<\/p>\n\n<p id=\"8612\">\u015eimdi micro frontend k\u0131sm\u0131na geri d\u00f6nersek, micro frontend temel olarak i\u015flevselli\u011fin frontend\u2019e geni\u015fletildi\u011fi\u00a0<strong>microservices pattern\u2019in<\/strong>\u00a0bir uzant\u0131s\u0131d\u0131r. Sonu\u00e7 olarak, micro frontend, deployment ba\u011f\u0131ms\u0131zl\u0131\u011f\u0131(independence), \u00f6zelliklerin daha kolay test edilmesi vb. dahil olmak \u00fczere \u00e7ok \u00e7e\u015fitli avantajlar sa\u011flar.<\/p>\n\n<p>Micro Frontends\u2019in arkas\u0131ndaki fikir, bir web uygulamas\u0131n\u0131 ba\u011f\u0131ms\u0131z ekipler taraf\u0131ndan yap\u0131labilinir oldugunu d\u00fc\u015f\u00fcnmekten gelir. Her ekibin \u00f6nemsedi\u011fi ve uzmanla\u015ft\u0131\u011f\u0131 ayr\u0131 bir i\u015f alan\u0131 vard\u0131r. Bir ekip cross-function ve features\u2019\u0131 veritaban\u0131ndan kullan\u0131c\u0131 aray\u00fcz\u00fcne kadar u\u00e7tan uca geli\u015ftirir.<\/p>\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"462\" class=\"wp-image-6866\" src=\"https:\/\/berkut.tech\/wp-content\/uploads\/2024\/06\/Ekran-Resmi-2024-06-07-14.08.44-1024x462.png\" alt=\"\" srcset=\"https:\/\/berkut.tech\/wp-content\/uploads\/2024\/06\/Ekran-Resmi-2024-06-07-14.08.44-1024x462.png 1024w, https:\/\/berkut.tech\/wp-content\/uploads\/2024\/06\/Ekran-Resmi-2024-06-07-14.08.44-300x135.png 300w, https:\/\/berkut.tech\/wp-content\/uploads\/2024\/06\/Ekran-Resmi-2024-06-07-14.08.44-768x347.png 768w, https:\/\/berkut.tech\/wp-content\/uploads\/2024\/06\/Ekran-Resmi-2024-06-07-14.08.44.png 1476w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n<h1 id=\"b06f\" class=\"wp-block-heading\">Micro Frontends Arkas\u0131ndaki Temel Kavramlar<\/h1>\n\n<h2 id=\"af94\" class=\"wp-block-heading\">Teknolojiden Ba\u011f\u0131ms\u0131z Olun<\/h2>\n\n<p id=\"9129\">Her tak\u0131m, di\u011fer tak\u0131mlarla koordinasyona girmeden bir stack se\u00e7meli ve o stack\u2019i upgrade etmelidir. \u00d6zel \u00f6\u011feler(elements), di\u011ferlerine tarafs\u0131z bir arabirim sa\u011flarken uygulama ayr\u0131nt\u0131lar\u0131n\u0131 gizlemeye yard\u0131mc\u0131 olur.<\/p>\n\n<h2 id=\"51e9\" class=\"wp-block-heading\">Tak\u0131m\u0131n Kodunu \u0130zole Et<\/h2>\n\n<p id=\"6677\">Ekipler ayn\u0131 framework kullansa bile asla bir \u00e7al\u0131\u015fma zaman\u0131n\u0131(runtime) payla\u015fmay\u0131n. Kendi kendine yeten ba\u011f\u0131ms\u0131z bir uygulama olu\u015fturun. Payla\u015f\u0131lan state veya global de\u011fi\u015fkenlere(variables) g\u00fcvenmeyin.<\/p>\n\n<h2 id=\"80a1\" class=\"wp-block-heading\">Tak\u0131m \u0130\u00e7in Prefixes Olu\u015fturun<\/h2>\n\n<p id=\"241d\">\u0130zolasyonun hen\u00fcz m\u00fcmk\u00fcn olmad\u0131\u011f\u0131 durumlarda\u00a0<strong>adland\u0131rma kurallar\u0131n\u0131<\/strong>kullan\u0131n.<\/p>\n\n<h2 id=\"59fa\" class=\"wp-block-heading\">\u00d6zel API\u2019ler yerine Yerel(Native) Taray\u0131c\u0131 \u00d6zelliklerini Tercih Edin<\/h2>\n\n<p id=\"d1c2\">Global bir PubSub sistemi olu\u015fturmak yerine, ileti\u015fim i\u00e7in taray\u0131c\u0131 events\u2019lerini kullan\u0131n. Ekipler aras\u0131 bir API olu\u015fturmaya ihtiya\u00e7 varsa, bunu m\u00fcmk\u00fcn oldu\u011funca basit tutmaya \u00e7al\u0131\u015f\u0131n.<\/p>\n\n<h2 id=\"f638\" class=\"wp-block-heading\">Esnek Web Tasar\u0131m\u0131 Olu\u015fturun<\/h2>\n\n<p id=\"fc7a\">JavaScript \u00e7al\u0131\u015ft\u0131r\u0131lamasa bile featurelar faydal\u0131 olmal\u0131d\u0131r. Performans\u0131 iyile\u015ftirmek i\u00e7in universal rendering ve progressive geli\u015ftirmeyi kullan\u0131n.<\/p>\n\n<p id=\"fdff\">Ama neden micro frontend\u2019e ihtiyac\u0131m\u0131z var? Hadi bunu cevaplayal\u0131m.<\/p>\n\n<p id=\"e68f\">Modern \u00e7a\u011fda, yeni web uygulamalar\u0131yla birlikte frontend giderek b\u00fcy\u00fcyor ve backend daha az \u00f6nemli hale geliyor. Monolith yakla\u015f\u0131m\u0131 daha b\u00fcy\u00fck bir web uygulamas\u0131 i\u00e7in \u00e7al\u0131\u015fmaz. Bu durumdan kurtulmak i\u00e7in ba\u011f\u0131ms\u0131z olarak hareket eden k\u00fc\u00e7\u00fck mod\u00fcllere b\u00f6lmek i\u00e7in bir ara\u00e7 olmas\u0131 gerekiyor. Sorunun \u00e7\u00f6z\u00fcm\u00fc micro front-end\u2019dir.<\/p>\n\n<p id=\"eaa9\">Faydalar\u0131 \u00f6zetlemek gerekirse, a\u015fa\u011f\u0131da birka\u00e7 noktaya de\u011finilmi\u015ftir:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Daha iyi\u00a0<strong>\u00f6l\u00e7eklenebilirlik<\/strong>.<\/li>\n\n<li>Ekipler ba\u011f\u0131ms\u0131z \u00e7al\u0131\u015fabildi\u011finden\u00a0<strong>daha h\u0131zl\u0131 geli\u015ftirme<\/strong>.<\/li>\n\n<li>Uygulaman\u0131zda\u00a0<strong>birden \u00e7ok framework<\/strong>\u00a0kullanabilirsiniz. Ancak, kar\u0131\u015f\u0131kl\u0131\u011f\u0131 \u00f6nlemek i\u00e7in dikkatli ve \u015feffaf bir \u015fekilde yap\u0131lmal\u0131d\u0131r.<\/li>\n\n<li><strong>Deploy ba\u011f\u0131ms\u0131zl\u0131\u011f\u0131<\/strong>.<\/li>\n\n<li>Micro frontend de, front-end\u2019in b\u00f6l\u00fcmlerini daha sorunsuz bir \u015fekilde\u00a0<strong>y\u00fckseltebilir<\/strong>,\u00a0<strong>g\u00fcncelleyebilir<\/strong>\u00a0ve hatta\u00a0<strong>yeniden yazabilirsiniz<\/strong>.<\/li>\n\n<li>Ba\u011f\u0131ms\u0131z oldu\u011fu i\u00e7in uygulaman\u0131n geri kalan\u0131n\u0131n sabit kalmas\u0131n\u0131 sa\u011flamak daha kolayd\u0131r. Micro frontend sayesinde art\u0131k t\u00fcm uygulamay\u0131 takip etmenize gerek yok.<\/li>\n\n<li>Codebase daha k\u00fc\u00e7\u00fck ve daha\u00a0<strong>y\u00f6netilebilir<\/strong>.<\/li>\n\n<li>Uzmanlar\u0131n daha kolay i\u015fe al\u0131nmas\u0131. Micro frontends sayesinde belirli bir teknoloji ile geli\u015ftirilen uygulaman\u0131z i\u00e7in sadece o alanda uzman olan birini arars\u0131n\u0131z, b\u00f6ylece di\u011fer ekiplerin kulland\u0131\u011f\u0131 teknolojileri bilmelerine gerek kalmaz.<\/li>\n\n<li>Kolayca\u00a0<strong>test<\/strong>\u00a0edilebilinir<\/li>\n<\/ul>\n\n<h1 id=\"8813\" class=\"wp-block-heading\">Sonu\u00e7<\/h1>\n\n<p id=\"4206\">Micro frontend kullan\u0131p kullanmaman\u0131z, b\u00fcy\u00fck \u00f6l\u00e7\u00fcde i\u015f durumunuza ba\u011fl\u0131d\u0131r. K\u00fc\u00e7\u00fck bir projeniz ve ekibiniz varsa, micro frontend mimarisi o kadar gerekli de\u011fildir. \u00c7ok say\u0131da istek i\u00e7eren b\u00fcy\u00fck projeler ve da\u011f\u0131t\u0131lm\u0131\u015f ekipler varsa o zaman micro frontend mimarisini kullanmak mant\u0131kl\u0131 olacakt\u0131r. Bu nedenle g\u00fcn\u00fcm\u00fczde micro frontend mimarisini bir\u00e7ok b\u00fcy\u00fck \u015firket taraf\u0131ndan yayg\u0131n olarak kullan\u0131lmaktad\u0131r.<\/p>\n\n<h2 class=\"wp-block-heading\">Kaynak\u00e7a<\/h2>\n\n<ul class=\"wp-block-list\">\n<li>https:\/\/www.toptal.com\/front-end\/micro-frontends-strengths-benefits?source=post_page&#8212;&#8211;444153877ae2&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/li>\n\n<li>https:\/\/martinfowler.com\/articles\/micro-frontends.html?source=post_page&#8212;&#8211;444153877ae2&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/li>\n\n<li>https:\/\/betterprogramming.pub\/what-are-micro-frontends-is-it-even-necessary-to-use-them-f1393d65ef2f?source=post_page&#8212;&#8211;444153877ae2&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/li>\n\n<li>https:\/\/www.xenonstack.com\/insights\/micro-frontend-architecture?source=post_page&#8212;&#8211;444153877ae2&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/li>\n<\/ul>\n\n<figure class=\"wp-block-pullquote has-text-align-left\">\n<blockquote>\n<p>Mert Demir | Software Engineer<br \/>Berkut Teknoloji<\/p>\n<\/blockquote>\n<\/figure>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Micro frontend teknolojisine dalmadan \u00f6nce, micro frontend kavram\u0131 belli belirsiz bir \u015fekilde microservices mimarisinden esinlendi\u011fi ve ad\u0131n\u0131 ald\u0131\u011f\u0131 i\u00e7in microservices mimarisinin ne oldu\u011funu bilmeliyiz. Resmi belgelere g\u00f6re microservices\u2019in tan\u0131m\u0131na a\u015fa\u011f\u0131daki linkten ula\u015fabilirsiniz. Microservices architectural olarak da bilinen microservices, a\u015fa\u011f\u0131daki \u00f6zelliklere sahip olan bir mimari stildir: Microservices mimarisi, b\u00fcy\u00fck ve karma\u015f\u0131k uygulamalar\u0131n h\u0131zl\u0131 ve g\u00fcvenilir bir [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6865","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/berkut.tech\/index.php\/wp-json\/wp\/v2\/posts\/6865","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/berkut.tech\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/berkut.tech\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/berkut.tech\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/berkut.tech\/index.php\/wp-json\/wp\/v2\/comments?post=6865"}],"version-history":[{"count":10,"href":"https:\/\/berkut.tech\/index.php\/wp-json\/wp\/v2\/posts\/6865\/revisions"}],"predecessor-version":[{"id":7135,"href":"https:\/\/berkut.tech\/index.php\/wp-json\/wp\/v2\/posts\/6865\/revisions\/7135"}],"wp:attachment":[{"href":"https:\/\/berkut.tech\/index.php\/wp-json\/wp\/v2\/media?parent=6865"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/berkut.tech\/index.php\/wp-json\/wp\/v2\/categories?post=6865"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/berkut.tech\/index.php\/wp-json\/wp\/v2\/tags?post=6865"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}