{"id":2309,"date":"2021-11-03T21:29:07","date_gmt":"2021-11-03T21:29:07","guid":{"rendered":"https:\/\/www.yazilimperver.com\/?p=2309"},"modified":"2021-11-03T21:29:07","modified_gmt":"2021-11-03T21:29:07","slug":"uygulama-izleme-yazilimi-5-amt-v1-0","status":"publish","type":"post","link":"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/","title":{"rendered":"Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 5 &#8211; AMT v1.0"},"content":{"rendered":"<p>Evet sevgili yaz\u0131l\u0131mperver dostlar\u0131m, bir ka\u00e7 yaz\u0131mda da bahsetti\u011fim \u00fczere uzun s\u00fcredir bir yandan geli\u015ftirmeye devam etti\u011fim Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 (Application Monitoring Tool, AMT)&#8217;na ili\u015fkin ilk \u00e7al\u0131\u015fabilir ve anlaml\u0131 s\u00fcr\u00fcm\u00fc ilgili Gitlab reposunu dahil ettim. \u0130lgili repoya a\u015fa\u011f\u0131daki adresten ula\u015fabilirsiniz:<\/p>\n<p><span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/gitlab.com\/yazilimperver\/applicationmonitoringtool\">https:\/\/gitlab.com\/yazilimperver\/applicationmonitoringtool<\/a><\/strong><\/span><\/p>\n<p>Bu s\u00fcr\u00fcm ile birlikte bu yaz\u0131l\u0131m i\u00e7in planlad\u0131\u011f\u0131m\/\u00f6ng\u00f6rd\u00fc\u011f\u00fcm temel kabiliyetleri eklemi\u015f oldum. Tabi bu uygulamaya ili\u015fkin yaz\u0131lar\u0131ma sene ba\u015f\u0131nda ba\u015flam\u0131\u015f ve d\u00f6rt yaz\u0131 ile devam ettirmi\u015ftim. Konuya daha iyi vak\u0131f olabilmek i\u00e7in, e\u011fer okumad\u0131ysan\u0131z a\u015fa\u011f\u0131da yaz\u0131lar\u0131ma g\u00f6z atman\u0131z\u0131 \u015fiddetle tavsiye ediyorum. Ama ilerleyen sat\u0131rlarda, bu yaz\u0131larda, nelerden bahsetti\u011fimi k\u0131saca sizlere aktaraca\u011f\u0131m.<\/p>\n<p><span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/16\/uygulama-izleme-yazilimi\/\">Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131<\/a><\/strong><\/span><\/p>\n<p><span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2021\/01\/03\/uygulama-izleme-yazilimi-2-baslangic\/\">Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 2 &#8211; Ba\u015flang\u0131\u00e7<\/a><\/strong><\/span><\/p>\n<p><span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2021\/01\/25\/uygulama-izleme-yazilimi-serisi-3-birim-test\/\">Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 Serisi 3 &#8211; Utility, Birim Testler, S\u00fcrekli Entegrasyon<\/a><\/strong><\/span><\/p>\n<p><span style=\"color: #339966;\"><strong><a style=\"color: #339966;\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2021\/03\/20\/amt-4-qt-ayarlamalari\/\"><span style=\"color: #008000;\">Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 4 &#8211; Qt Ayarlamalar\u0131<\/span><\/a><\/strong><\/span><\/p>\n<p>\u00d6ncelikle bu yaz\u0131l\u0131m\u0131 geli\u015ftirmekteki amac\u0131m neydi ona isterseniz bir g\u00f6z atal\u0131m. Burada, hi\u00e7 e\u011fip b\u00fckmeden, hatta &#8220;paraphrase&#8221; bilen yapmadan, a\u015fa\u011f\u0131ya kopyala yap\u0131\u015ft\u0131r ile ilk yaz\u0131mdan ekliyorum. \u0130laveten ortaya koydu\u011fumuz zihin haritas\u0131n\u0131 da ekliyorum, keza, s\u00fcrekli entegrasyon ve di\u011fer bir ka\u00e7 hususu orada ifade etmi\u015fim:<\/p>\n<blockquote><p>Fark edece\u011finiz \u00fczere, bu yaz\u0131l\u0131m\u0131 geli\u015ftirmek istememde \u00f6ne \u00e7\u0131kan amac\u0131m daha \u00f6nce bir ka\u00e7 kere yaz\u0131lar\u0131mda bahsetti\u011fim (ya da planlad\u0131\u011f\u0131m) teknolojileri (CMake, vb) ve benzeri kavramlar\u0131 birinci elden kullanarak deneyimlemek, g\u00f6stermek ve sizler ile payla\u015fmak. Bunu da elbette, C++ ve QT\/QML kullanarak yap\u0131yor olaca\u011f\u0131z.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/sp-ao.shortpixel.ai\/client\/q_glossy,ret_img,w_2195\/https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2020\/12\/img_5fda5a0477b59.png\" alt=\"\" width=\"2195\" height=\"788\" \/><\/p><\/blockquote>\n<p>San\u0131r\u0131m amac\u0131m\u0131 gayet net bir \u015fekilde ortaya koymu\u015fum \ud83d\ude00 \u015eunu da, s\u00f6yleyebilirim ki, yukar\u0131da sizler ile de payla\u015ft\u0131\u011f\u0131m d\u00f6rt yaz\u0131 ile birlikte bu amac\u0131ma b\u00fcy\u00fck bir oranda ger\u00e7ekle\u015ftirdi\u011fimi d\u00fc\u015f\u00fcn\u00fcyorum, ama bitti mi, hay\u0131r. \u015eimdi bu, d\u00f6rt yaz\u0131mda nelere de\u011findi\u011fimi k\u0131saca sizler ile payla\u015fay\u0131m:<\/p>\n<ul>\n<li><span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2020\/12\/16\/uygulama-izleme-yazilimi\/\">\u0130lk yaz\u0131mda<\/a><\/strong>:<\/span> Genel motivasyon ve ama\u00e7<\/li>\n<li><strong><a href=\"https:\/\/www.yazilimperver.com\/index.php\/2021\/01\/03\/uygulama-izleme-yazilimi-2-baslangic\/\"><span style=\"color: #008000;\">\u0130kinci yaz\u0131mda:<\/span><\/a><\/strong> Uygulaman\u0131n genel proje dizin yap\u0131s\u0131, gitlab ve alternatifleri, birden fazla projeden olu\u015fan uygulamalar i\u00e7in CMake yap\u0131land\u0131rmas\u0131 ve \u00f6nemli komutlar\u0131,<\/li>\n<li><span style=\"color: #008000;\"><a style=\"color: #008000;\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2021\/01\/25\/uygulama-izleme-yazilimi-serisi-3-birim-test\/\"><strong>\u00dc\u00e7\u00fcnc\u00fc yaz\u0131mda:<\/strong> <\/a><\/span>S\u00fcrekli entegrasyon nedir, \u00f6nemli noktalar\u0131,\u00a0 birim testler (ve CMake ile kullan\u0131m\u0131), CMake&#8217;e ili\u015fkin bir tak\u0131m notlar, &#8220;Utility&#8221; k\u00fct\u00fcphanesi ve size sunduklar\u0131,<\/li>\n<li><span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2021\/03\/20\/amt-4-qt-ayarlamalari\/\">D\u00f6rd\u00fcnc\u00fc yaz\u0131mda:<\/a><\/strong><\/span> A\u011fr\u0131l\u0131kl\u0131 olarak QT\/QML ve CMake kullan\u0131m\u0131, proje yap\u0131s\u0131, alt projeler (her ne kadar altlar\u0131 o zaman dolu de\u011filse bile i\u015flevleri belliydi), QT ile dinamik k\u00fct\u00fcphane kullan\u0131m\u0131.<\/li>\n<\/ul>\n<p>Peki, bu ve sonraki yaz\u0131lar\u0131mda neye de\u011finece\u011fim. Bu yaz\u0131m\u0131 a\u00e7\u0131k\u00e7as\u0131 bir hat\u0131rlatma gibi g\u00f6rmenizi rica ediyorum. Onun i\u00e7in \u00e7ok uzun tumayaca\u011f\u0131m. Bunun ile birlikte genel yaz\u0131l\u0131m mimarisine g\u00f6z ataca\u011f\u0131z, bunu yaparken de, &#8220;Kapsam Diyagram\u0131&#8221;&#8216;lar\u0131ndan bahsedece\u011fim. \u00d6ncelikle, geli\u015ftirdi\u011fim bir\u00e7ok yaz\u0131l\u0131mda kulland\u0131\u011f\u0131m ba\u011flam diyagramlar\u0131ndan bahsetmek istiyorum.<\/p>\n<p>Ba\u011flam diyagramlar\u0131, bir di\u011fer ifade ile, sistem ba\u011flam diyagramlar\u0131, bir sistem ya da sistemin par\u00e7as\u0131 ile \u00e7evresi aras\u0131ndaki etkile\u015fimi g\u00f6stermek i\u00e7in kullan\u0131lan diyagramd\u0131r. Baz\u0131 kaynaklarda seviye-0 veri-ak\u0131\u015f (Data Flow) diyagram\u0131 olarak da adland\u0131r\u0131labilmektedir. E\u011fer sizler de, bir\u00e7ok d\u0131\u015f sistem ile haberle\u015fen yaz\u0131l\u0131mlar geli\u015ftiriyorsan\u0131z, yaz\u0131l\u0131m\u0131n\u0131z ve bu sistemler\/yaz\u0131l\u0131mlar ile olan aray\u00fczler ve al\u0131n\u0131p\/verilen verilerin g\u00f6sterilmesinin ne kadar kritik oldu\u011funu bilirsiniz.<\/p>\n<p>Ba\u011flam diyagramlar\u0131n\u0131 \u00e7izmek i\u00e7in ihtiya\u00e7 duyaca\u011f\u0131n\u0131z iki \u00f6nemli husus var:<\/p>\n<ol>\n<li>\u00d6ncelikli olarak, sistemin\/yaz\u0131l\u0131m\u0131n etkile\u015fim halinde bulundu\u011fu <strong>d\u0131\u015f unsurlar\u0131<\/strong> tespit etmeliyiz,<\/li>\n<li>Sonras\u0131nda ise, bunlara ili\u015fkin <strong>veri ak\u0131\u015f\u0131n\u0131<\/strong> belirlemeliyiz.<\/li>\n<\/ol>\n<p>Peki ba\u011flam diyagramlar\u0131 bize neyi sunar:<\/p>\n<ul>\n<li>\u00d6ncelikli olarak \u00fcst seviyede, uygulama\/sistemimizin <strong>s\u0131n\u0131rlar\u0131n\u0131 ve kapsam\u0131n\u0131<\/strong>, etkile\u015fim halinde bulundu\u011fu d\u0131\u015f unsurlar ile sunar,<\/li>\n<li>Genel olarak \u00e7ok <strong>teknik olmad\u0131\u011f\u0131<\/strong> i\u00e7in kolay bir \u015fekilde anla\u015f\u0131labilir,<\/li>\n<li>Yukar\u0131da, ihtiya\u00e7 duyuluan iki husus belirlendikten sonra <strong>kolay<\/strong> bir \u015fekilde \u00e7izilebilir,<\/li>\n<li>\u0130htiyaca g\u00f6re <strong>detayland\u0131r\u0131labilir<\/strong>,<\/li>\n<li>Gerek yaz\u0131l\u0131mc\u0131 gerekse <strong>di\u011fer farkl\u0131 payda\u015flar<\/strong> taraf\u0131ndan <strong>kolayca<\/strong> kullan\u0131labilir.<\/li>\n<\/ul>\n<p>A\u015fa\u011f\u0131da, wikipedia&#8217;dan al\u0131nan bir \u00f6rne\u011fi g\u00f6rebilirsiniz:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/b\/bd\/NDE_Context_Diagram_%28vector%29.svg\/1200px-NDE_Context_Diagram_%28vector%29.svg.png\" alt=\"System context diagram - Wikipedia\" width=\"638\" height=\"432\" \/><\/p>\n<p>Ben genelde yaz\u0131l\u0131m mimarilerimi belirlerken ve dok\u00fcmante ederken <span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/c4model.com\/\">Simon Brown&#8217;un C4<\/a> <\/strong><\/span>yakla\u015f\u0131m\u0131n\u0131 takip ediyorum. Daha \u00f6nce baz\u0131 yaz\u0131lar\u0131mda da bu yakla\u015f\u0131mdan bahsetti\u011fimi hat\u0131rl\u0131yorum (bu konuya da ayr\u0131ca bir yaz\u0131 ay\u0131rmak iyi fikir olabilir \ud83d\ude09 ) En az\u0131ndan bu konu ile ilgili iki kitab\u0131ndan bahsetmi\u015fimdir (elektronik kopyalar\u0131n\u0131 sat\u0131n alarak muhakkak okuman\u0131z\u0131 tavsiye ederim). Bence olduk\u00e7a sade ve kullan\u0131\u015fl\u0131 bir yakla\u015f\u0131m. Temel olarak yaz\u0131l\u0131m mimarinin g\u00f6reselle\u015ftirilmesini 4 temel seviyede yapmakta. Bunlar:<\/p>\n<ul>\n<li><strong>Seviye 1:<\/strong> Sistem Ba\u011flam Diyagramlar\u0131<\/li>\n<li><strong>Seviye 2:<\/strong> Konteyner Diyagramlar\u0131<\/li>\n<li><strong>Seviye 3:<\/strong> Bile\u015fen Diyagramlar\u0131<\/li>\n<li><strong>Seviye 4:<\/strong> S\u0131n\u0131f Diyagramlar\u0131<\/li>\n<\/ul>\n<p>\u0130sminden de anla\u015f\u0131laca\u011f\u0131 \u00fczere seviye 1, benim burada bahsetti\u011fim ba\u011flam diyagramlar\u0131 ile birebir ilintili. C4 i\u00e7erisinde de, bu diyagram b\u00fcy\u00fck resmi g\u00f6stermek ve merkezde bulunan yaz\u0131l\u0131m sistemi ile d\u0131\u015f kullan\u0131c\u0131 ve di\u011fer sistemlerinin etkile\u015fimi g\u00f6stermektedir. Burada da vurgu, bu diyagram\u0131n genel bir ku\u015f bak\u0131\u015f\u0131 g\u00f6r\u00fcnt\u00fc ve teknik olmayan insanlar i\u00e7in de girdi olabilmesidir. A\u015fa\u011f\u0131da da, C4 sayfas\u0131ndan bu diyagrama ili\u015fkin bir \u00f6rnek g\u00f6rebilirsiniz:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/c4model.com\/img\/bigbankplc-SystemContext.png\" width=\"855\" height=\"602\" \/><\/p>\n<p>\u015eimdi gelelim uygulama izleme yaz\u0131l\u0131m\u0131m\u0131z i\u00e7in haz\u0131rlayaca\u011f\u0131m\u0131z ba\u011flam diyagram\u0131na.<\/p>\n<p id=\"EOEvEut\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2323 aligncenter\" src=\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_61818110cf2d5.png\" alt=\"\" width=\"211\" height=\"636\" srcset=\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_61818110cf2d5.png 329w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_61818110cf2d5-100x300.png 100w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_61818110cf2d5-150x452.png 150w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_61818110cf2d5-200x602.png 200w\" sizes=\"auto, (max-width: 211px) 100vw, 211px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>\u00c7ok da karma\u015f\u0131k de\u011fil ne dersiniz? Bu yaz\u0131l\u0131m i\u00e7in olan diyagram\u0131n, olduk\u00e7a sade olaca\u011f\u0131n\u0131 eminim tahmin etmi\u015fsinizdir \ud83d\ude42<\/p>\n<p>Evet, gite dahil etti\u011fim son kod ile birlikte AMT ve AMT&#8217;yi test etmek i\u00e7in ekledi\u011fim istemci test uygulamas\u0131n\u0131 (<em>ClientTestApp<\/em>) \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda a\u015fa\u011f\u0131daki gibi bir QML ve bir QT uygulamas\u0131 g\u00f6r\u00fcyor olacaks\u0131n\u0131z. Bunlar\u0131n detaylar\u0131na, etkile\u015fimlerine ve kullan\u0131m\u0131na sonraki yaz\u0131lar\u0131mda de\u011finece\u011fim, \u015fimdilik sadece a\u011f\u0131zlar\u0131n\u0131za bal \u00e7alay\u0131m \ud83d\ude00<\/p>\n<p id=\"UmFiJTj\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2325 \" src=\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6181899d6afac-1024x551.png\" alt=\"\" width=\"1029\" height=\"554\" srcset=\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6181899d6afac-1024x551.png 1024w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6181899d6afac-300x162.png 300w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6181899d6afac-768x414.png 768w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6181899d6afac-1536x827.png 1536w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6181899d6afac-2048x1103.png 2048w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6181899d6afac-500x269.png 500w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6181899d6afac-150x81.png 150w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6181899d6afac-1200x646.png 1200w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6181899d6afac-400x215.png 400w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6181899d6afac-800x431.png 800w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6181899d6afac-200x108.png 200w\" sizes=\"auto, (max-width: 1029px) 100vw, 1029px\" \/><\/p>\n<p>\u015eimdi gelelim, Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131m\u0131z\u0131n (AMT) mevcut haline ili\u015fkin s\u0131n\u0131f diyagram\u0131m\u0131za:<\/p>\n<p>&nbsp;<\/p>\n<p id=\"ZTsELHP\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2331 aligncenter\" src=\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6182fd447bcba.png\" alt=\"\" width=\"732\" height=\"488\" srcset=\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6182fd447bcba.png 994w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6182fd447bcba-300x200.png 300w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6182fd447bcba-768x512.png 768w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6182fd447bcba-500x334.png 500w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6182fd447bcba-150x100.png 150w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6182fd447bcba-400x267.png 400w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6182fd447bcba-800x534.png 800w, https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2021\/11\/img_6182fd447bcba-200x133.png 200w\" sizes=\"auto, (max-width: 732px) 100vw, 732px\" \/><\/p>\n<p>Daha \u00f6nce de ifade etti\u011fimi gibi, AMT yaz\u0131l\u0131m\u0131, QML uygulamas\u0131. A\u015fa\u011f\u0131da sizler ile payla\u015faca\u011f\u0131m <em>HostBackendApp<\/em> s\u0131n\u0131f\u0131 asl\u0131nda bu QML (main.qml) i\u00e7erisinde yer al\u0131yor.<\/p>\n<p>Bu yaz\u0131m\u0131 k\u0131saca bu s\u0131n\u0131flar\u0131n neler yapt\u0131\u011f\u0131ndan bahsederek tamamlayaca\u011f\u0131m, sonraki yaz\u0131larda daha detayl\u0131 bu s\u0131n\u0131flara girebiliriz (elbette detaylar i\u00e7in sizleri gitlab reposuna hemen de alabiliriz, tabi ki yorumlar k\u0131sm\u0131ndan ya da mail ile sorular\u0131n\u0131z\u0131 iletebilirsiniz)<\/p>\n<ul>\n<li><em>HostBackendApp<\/em>:\n<ul>\n<li>Asl\u0131nda AMT&#8217;nin kalbini olu\u015fturuyor ve genel konteyner s\u0131n\u0131f olarak da de\u011ferlendirilebilir,<\/li>\n<li>Yukar\u0131daki fig\u00fcrde g\u00f6r\u00fcnece\u011fi \u00fczere temel i\u015flevleri kordine ediyor,<\/li>\n<li>Bu s\u0131n\u0131f asl\u0131nda, QML (main.qml) i\u00e7erisinde yer al\u0131yor,<\/li>\n<\/ul>\n<\/li>\n<li><em>ClientListModel<\/em> ve <em>ClientDataModel:<\/em>\n<ul>\n<li>C++ ile QML d\u00fcnyalar\u0131 aras\u0131nda istemcilerin ve bu istemcilere ili\u015fkin verilerin QT d\u00fcnyas\u0131ndaki Model\/View (QAbstractTableModel) altyap\u0131s\u0131na g\u00f6re payla\u015fmam\u0131za olanak sa\u011flayan s\u0131n\u0131flar,<\/li>\n<li>Bunlar sayesinde, C++ taraf\u0131ndan besledi\u011fimiz veriler do\u011frudan QML aray\u00fcz\u00fcnde g\u00f6r\u00fcnt\u00fclenebilmektedir,<\/li>\n<li>Bu s\u0131n\u0131flar sizler i\u00e7in de daha \u00f6nceli QML\/C++ entegrasyon yaz\u0131mda bahsetti\u011fim etkile\u015fim ihtiyac\u0131 i\u00e7in referans olabilir,<\/li>\n<\/ul>\n<\/li>\n<li><em>IMsgProtocol, DefaultCommProtocol:<\/em>\n<ul>\n<li>\u0130stemciler ile AMT aras\u0131nda i\u00e7in kullan\u0131labilecek olan <strong>mesaj<\/strong> protokol\u00fcn\u00fc temsil eder. Bir di\u011fer ifade ile, haberle\u015fme kanallar\u0131ndan gelen ham byte verilerini anlamd\u0131rmam\u0131z\u0131 sa\u011flar,<\/li>\n<li>IMsgProtocol buna ili\u015fkin aray\u00fcz ve DefaultCommProtocol de ilk etapta tan\u0131mlad\u0131\u011f\u0131m basit bir mesaj protokol\u00fc,<\/li>\n<li>Bu bize ne sa\u011fl\u0131yor? Uygulaman\u0131n genelini de\u011fi\u015ftirmeden farkl\u0131 mesajla\u015fma protokollerini kullanabilmemize olanak sa\u011fl\u0131yor (ki buna ili\u015fkin ileride \u00f6rneklere bak\u0131yor olaca\u011f\u0131z),<\/li>\n<li>Benzer \u015fekilde bu protokol, haberle\u015fme protokol\u00fcnden de ba\u011f\u0131ms\u0131z ve habersiz,<\/li>\n<\/ul>\n<\/li>\n<li><em>ConnectionBase, DefaultUDPConnection:<\/em>\n<ul>\n<li>\u0130stemciler ile AMT aras\u0131nda i\u00e7in kullan\u0131labilecek olan <strong>haberle\u015fme<\/strong> protokol\u00fcn\u00fc temsil eder,<\/li>\n<li>ConnectionBase buna ili\u015fkin temel s\u0131n\u0131f ve DefaultUDPConnection de ilk etapta tan\u0131mlad\u0131\u011f\u0131m basit ve UDP tabanl\u0131 bir haberle\u015fme protokol\u00fc,<\/li>\n<li>Bu bize ne sa\u011fl\u0131yor? Uygulaman\u0131n genelini de\u011fi\u015ftirmeden, mesajla\u015fma protokol\u00fcn\u00fc de\u011fi\u015ftirmeden farkl\u0131 haberle\u015fme protokollerini (TCP, seri kanal) kullanabilmemize olanak sa\u011fl\u0131yor,<\/li>\n<li>Haberle\u015fme protokol\u00fc her ne kadar, gelen ham veriyi anlamland\u0131rmak i\u00e7in bir mesajla\u015fma protokol\u00fcne ihtiya\u00e7 duysa da, spesifik bir protokole ba\u011f\u0131ml\u0131 de\u011fil,<\/li>\n<li>Bu ve \u00f6nceki s\u0131n\u0131flar i\u00e7in \u00f6zel bir yaz\u0131 yaz\u0131yor olabilirim \ud83d\ude09<\/li>\n<\/ul>\n<\/li>\n<li><em>ConnectedClientList, ConnectedDataList, CollectedData:<\/em>\n<ul>\n<li>\u0130simlerinden de anla\u015f\u0131laca\u011f\u0131 \u00fczere, bu s\u0131n\u0131flar, AMT uygulamas\u0131na kay\u0131t olan istemci, onlar\u0131n kaydetti\u011fi veri tipleri ve bu veri tiplerine ili\u015fkin verileri tutan ve y\u00f6neten s\u0131n\u0131flard\u0131r,<\/li>\n<\/ul>\n<\/li>\n<li><em>IMsgListener, DecodedMsgListener:<\/em>\n<ul>\n<li>\u0130lki, haberle\u015fme kanallar\u0131 \u00fczerinden gelen ve bu kanaldan al\u0131nan ham verilerin dinleyicilere aktar\u0131lmas\u0131 i\u00e7in kullan\u0131lacak olan aray\u00fczd\u00fcr,<\/li>\n<li>\u0130kincisi ise, ilk aray\u00fcz arac\u0131l\u0131\u011f\u0131 ile al\u0131nan verileri uygulamaya, tan\u0131ml\u0131 mesaj nesnelerine (<em>BaseMessage<\/em>) d\u00f6n\u00fc\u015ft\u00fcr\u00fclerek aktar\u0131lmas\u0131ndan sorumludur.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Evet, sevgili yaz\u0131l\u0131mperver dostlar\u0131m, uygulama izleme yaz\u0131l\u0131m\u0131 (AMT)&#8217;ye ili\u015fkin \u00f6nemli bir a\u015famay\u0131 daha ge\u00e7mi\u015f oluyoruz. Bu hali ile art\u0131k basit bir \u00f6rnek kodtan, elle tutulur bir uygulamaya d\u00f6n\u00fc\u015fm\u00fc\u015f oldu. Buradan bu uygulamay\u0131 al\u0131p bamba\u015fka yerlere ta\u015f\u0131mak sizlerin elinizde. \u00d6n\u00fcm\u00fczdeki yaz\u0131larda bunu birlikte yap\u0131yor olaca\u011f\u0131z ama art\u0131k AMT i\u00e7in de t\u00fcnelin sonu g\u00f6r\u00fcnmeye ba\u015flad\u0131, umar\u0131m faydal\u0131 olur. Bir sonraki yaz\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere, bol kodlu g\u00fcnler.<\/p>\n<p><strong>NOT: <\/strong>AMT&#8217;nin gitlab pipeline&#8217;\u0131n\u0131nda \u00e7\u0131kan hatay\u0131 \u00e7\u00f6zebilecek arkada\u015flara benden \u015fimdiden te\u015fekk\u00fcr. Her ne kadar VS2019 ile s\u0131k\u0131nt\u0131 olmadan \u00e7al\u0131\u015ft\u0131rabilsem de, bir \u015fekilde Docker \u00fczerinde alet derlenmiyor.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Evet sevgili yaz\u0131l\u0131mperver dostlar\u0131m, bir ka\u00e7 yaz\u0131mda da bahsetti\u011fim \u00fczere uzun s\u00fcredir bir yandan geli\u015ftirmeye devam etti\u011fim Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 (Application Monitoring Tool, AMT)&#8217;na ili\u015fkin ilk \u00e7al\u0131\u015fabilir ve anlaml\u0131 s\u00fcr\u00fcm\u00fc ilgili Gitlab reposunu dahil ettim. \u0130lgili repoya a\u015fa\u011f\u0131daki adresten ula\u015fabilirsiniz: https:\/\/gitlab.com\/yazilimperver\/applicationmonitoringtool Bu s\u00fcr\u00fcm ile birlikte bu yaz\u0131l\u0131m i\u00e7in planlad\u0131\u011f\u0131m\/\u00f6ng\u00f6rd\u00fc\u011f\u00fcm temel kabiliyetleri eklemi\u015f oldum. Tabi bu&#8230; <a class=\"more-link\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/\">Continue reading <span class=\"meta-nav\">&#8594;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[10,188],"tags":[922,920,904,917,918,905,919,921],"class_list":["post-2309","post","type-post","status-publish","format-standard","hentry","category-c","category-yazilim-muhendisligi","tag-amt","tag-baglam-diyagrami","tag-c4","tag-context-diagram","tag-mimari","tag-simon-brown","tag-tasarim","tag-uygulama-izleme-yazilimi"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 5 - AMT v1.0 - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 5 - AMT v1.0 - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\" \/>\n<meta property=\"og:description\" content=\"Evet sevgili yaz\u0131l\u0131mperver dostlar\u0131m, bir ka\u00e7 yaz\u0131mda da bahsetti\u011fim \u00fczere uzun s\u00fcredir bir yandan geli\u015ftirmeye devam etti\u011fim Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 (Application Monitoring Tool, AMT)&#8217;na ili\u015fkin ilk \u00e7al\u0131\u015fabilir ve anlaml\u0131 s\u00fcr\u00fcm\u00fc ilgili Gitlab reposunu dahil ettim. \u0130lgili repoya a\u015fa\u011f\u0131daki adresten ula\u015fabilirsiniz: https:\/\/gitlab.com\/yazilimperver\/applicationmonitoringtool Bu s\u00fcr\u00fcm ile birlikte bu yaz\u0131l\u0131m i\u00e7in planlad\u0131\u011f\u0131m\/\u00f6ng\u00f6rd\u00fc\u011f\u00fcm temel kabiliyetleri eklemi\u015f oldum. Tabi bu... Continue reading &#8594;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/\" \/>\n<meta property=\"og:site_name\" content=\"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-03T21:29:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sp-ao.shortpixel.ai\/client\/q_glossy,ret_img,w_2195\/https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2020\/12\/img_5fda5a0477b59.png\" \/>\n<meta name=\"author\" content=\"yaz\u0131l\u0131mperver\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"yaz\u0131l\u0131mperver\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/\"},\"author\":{\"name\":\"yaz\u0131l\u0131mperver\",\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"headline\":\"Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 5 &#8211; AMT v1.0\",\"datePublished\":\"2021-11-03T21:29:07+00:00\",\"dateModified\":\"2021-11-03T21:29:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/\"},\"wordCount\":1748,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"keywords\":[\"AMT\",\"ba\u011flam diyagram\u0131\",\"C4\",\"context diagram\",\"mimari\",\"simon brown\",\"tasar\u0131m\",\"Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131\"],\"articleSection\":[\"C++\",\"Yaz\u0131l\u0131m M\u00fchendisli\u011fi\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/\",\"url\":\"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/\",\"name\":\"Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 5 - AMT v1.0 - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#website\"},\"datePublished\":\"2021-11-03T21:29:07+00:00\",\"dateModified\":\"2021-11-03T21:29:07+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Ana sayfa\",\"item\":\"https:\/\/www.yazilimperver.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 5 &#8211; AMT v1.0\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.yazilimperver.com\/#website\",\"url\":\"https:\/\/www.yazilimperver.com\/\",\"name\":\"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\",\"description\":\"Payla\u015fmak g\u00fczeldir.\",\"publisher\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.yazilimperver.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\",\"name\":\"yaz\u0131l\u0131mperver\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png\",\"contentUrl\":\"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png\",\"caption\":\"yaz\u0131l\u0131mperver\"},\"logo\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 5 - AMT v1.0 - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/","og_locale":"tr_TR","og_type":"article","og_title":"Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 5 - AMT v1.0 - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","og_description":"Evet sevgili yaz\u0131l\u0131mperver dostlar\u0131m, bir ka\u00e7 yaz\u0131mda da bahsetti\u011fim \u00fczere uzun s\u00fcredir bir yandan geli\u015ftirmeye devam etti\u011fim Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 (Application Monitoring Tool, AMT)&#8217;na ili\u015fkin ilk \u00e7al\u0131\u015fabilir ve anlaml\u0131 s\u00fcr\u00fcm\u00fc ilgili Gitlab reposunu dahil ettim. \u0130lgili repoya a\u015fa\u011f\u0131daki adresten ula\u015fabilirsiniz: https:\/\/gitlab.com\/yazilimperver\/applicationmonitoringtool Bu s\u00fcr\u00fcm ile birlikte bu yaz\u0131l\u0131m i\u00e7in planlad\u0131\u011f\u0131m\/\u00f6ng\u00f6rd\u00fc\u011f\u00fcm temel kabiliyetleri eklemi\u015f oldum. Tabi bu... Continue reading &#8594;","og_url":"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/","og_site_name":"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","article_published_time":"2021-11-03T21:29:07+00:00","og_image":[{"url":"https:\/\/sp-ao.shortpixel.ai\/client\/q_glossy,ret_img,w_2195\/https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2020\/12\/img_5fda5a0477b59.png"}],"author":"yaz\u0131l\u0131mperver","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"yaz\u0131l\u0131mperver","Tahmini okuma s\u00fcresi":"9 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/#article","isPartOf":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/"},"author":{"name":"yaz\u0131l\u0131mperver","@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"headline":"Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 5 &#8211; AMT v1.0","datePublished":"2021-11-03T21:29:07+00:00","dateModified":"2021-11-03T21:29:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/"},"wordCount":1748,"commentCount":0,"publisher":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"keywords":["AMT","ba\u011flam diyagram\u0131","C4","context diagram","mimari","simon brown","tasar\u0131m","Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131"],"articleSection":["C++","Yaz\u0131l\u0131m M\u00fchendisli\u011fi"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/","url":"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/","name":"Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 5 - AMT v1.0 - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/www.yazilimperver.com\/#website"},"datePublished":"2021-11-03T21:29:07+00:00","dateModified":"2021-11-03T21:29:07+00:00","breadcrumb":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.yazilimperver.com\/index.php\/2021\/11\/03\/uygulama-izleme-yazilimi-5-amt-v1-0\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Ana sayfa","item":"https:\/\/www.yazilimperver.com\/"},{"@type":"ListItem","position":2,"name":"Uygulama \u0130zleme Yaz\u0131l\u0131m\u0131 5 &#8211; AMT v1.0"}]},{"@type":"WebSite","@id":"https:\/\/www.yazilimperver.com\/#website","url":"https:\/\/www.yazilimperver.com\/","name":"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","description":"Payla\u015fmak g\u00fczeldir.","publisher":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.yazilimperver.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb","name":"yaz\u0131l\u0131mperver","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/","url":"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png","contentUrl":"https:\/\/www.yazilimperver.com\/wp-content\/uploads\/2018\/04\/OnlyIcon-1-114x114.png","caption":"yaz\u0131l\u0131mperver"},"logo":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/2309","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/comments?post=2309"}],"version-history":[{"count":11,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/2309\/revisions"}],"predecessor-version":[{"id":2333,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/2309\/revisions\/2333"}],"wp:attachment":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/media?parent=2309"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/categories?post=2309"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/tags?post=2309"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}