{"id":2542,"date":"2022-05-03T20:33:27","date_gmt":"2022-05-03T20:33:27","guid":{"rendered":"https:\/\/www.yazilimperver.com\/?p=2542"},"modified":"2022-05-03T20:33:27","modified_gmt":"2022-05-03T20:33:27","slug":"vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu","status":"publish","type":"post","link":"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/","title":{"rendered":"Vakitsiz\/Erken Optimizasyon (&#8220;Premature Optimization&#8221;) Kar\u015f\u0131t \u00d6r\u00fcnt\u00fcs\u00fc"},"content":{"rendered":"<p><img decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/miro.medium.com\/max\/1128\/1*QSCEdHtOtn34JIfLOvlsFg.jpeg\" \/><\/p>\n<p>Evet sevgili yaz\u0131l\u0131mperver dostlar\u0131m bu ve sonraki birka\u00e7 yaz\u0131mda, fark\u0131nda olman\u0131z gereken kar\u015f\u0131t-\u00f6r\u00fcnt\u00fclerden (&#8220;anti-pattern&#8221;)&#8217;lerden bahsetmeye \u00e7al\u0131\u015faca\u011f\u0131m. K\u0131sacas\u0131, ka\u00e7\u0131nman\u0131z gereken hususlar. Bunlar\u0131n bir k\u0131sm\u0131na, daha \u00f6nceki yaz\u0131lar\u0131mda de\u011finmi\u015f olmam muhtemel, bu yaz\u0131larda, bu hususlara daha yak\u0131nda bak\u0131yor olaca\u011f\u0131z.<br \/>\n\u0130lk bakaca\u011f\u0131m\u0131z husus, &#8220;Premature Optimization&#8221;, bir di\u011fer ifade ile, Vakitsiz\/Erken Optimizasyon durumu. Hemen, bu konu ile ilgili bir s\u00f6z ile ba\u015flayal\u0131m \ud83d\ude42<\/p>\n<blockquote><p><em>The first rule of program optimization: Don\u2019t do it. The second rule of program optimization (for experts only!): Don\u2019t do it yet. (Program optimizasyonun ilk kural\u0131: Yapmay\u0131n. \u0130kinci kural\u0131 ise (sadece uzmanlar i\u00e7in): \u015eimdi yapmay\u0131n!)<\/em><\/p><\/blockquote>\n<p>Her ne kadar bu duruma ilk de\u011finen <strong><span style=\"color: #008000;\"><a style=\"color: #008000;\" href=\"https:\/\/dl.acm.org\/doi\/10.1145\/1569886.1513451\">Randall Hyde<\/a><\/span><\/strong> olsa da, bunu g\u00f6z \u00f6n\u00fcnde tutan Donald Knuth olmu\u015ftur. Konu ba\u015fl\u0131\u011f\u0131nda da yer verdi\u011fimiz s\u00f6zlerin (&#8220;Premature optimization is the root of all evil&#8221;) tamam\u0131 asl\u0131nda a\u015fa\u011f\u0131daki gibidir:<\/p>\n<blockquote><p><em>The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming. (As\u0131l sorun, programc\u0131lar\u0131n yanl\u0131\u015f yerlerde ve yanl\u0131\u015f zamanlarda verimlilik konusunda endi\u015felenerek \u00e7ok fazla zaman harcamas\u0131d\u0131r; erken optimizasyon, programlamadaki t\u00fcm k\u00f6t\u00fcl\u00fcklerin (veya en az\u0131ndan \u00e7o\u011funun) kayna\u011f\u0131d\u0131r.)<\/em><\/p><\/blockquote>\n<p>Bu s\u00f6z, yaz\u0131m\u0131z\u0131n temel motivasyonunu ve i\u00e7eri\u011fini \u00e7ok g\u00fczel \u00f6zetliyor.<\/p>\n<p>Tabi burada ele alaca\u011f\u0131m\u0131z durumu, hi\u00e7 optimizasyon yapmayal\u0131m olarak da ele almamam\u0131z laz\u0131m, duruma g\u00f6re de\u011ferlendirmek ve bunu yaparken de, belirli kriterleri g\u00f6z \u00f6n\u00fcnde bulundurmak \u00e7ok \u00f6nemli. Bu sebeple, probleme farkl\u0131 \u00e7er\u00e7evelerden bak\u0131yor olaca\u011f\u0131z. K\u0131saca, vakitsiz optimizasyon yapmayaca\u011f\u0131z diye, a\u015fikar veya bilindik bir tak\u0131m hususlar\u0131 da g\u00f6z ard\u0131 etmemeliyiz.<\/p>\n<h2><span style=\"color: #0000ff;\"><strong>Peki &#8220;Premature Optimization&#8221; nedir?<\/strong><\/span><\/h2>\n<p>Bu ba\u015fl\u0131\u011fa da, Knuth&#8217;\u0131n bu konuya ili\u015fkin ba\u015fka bir s\u00f6z\u00fc ile ba\u015flamak istiyorum:<\/p>\n<blockquote><p><em>Programmers waste <span style=\"text-decoration: underline;\">enormous amounts of time<\/span> thinking about, or <span style=\"text-decoration: underline;\">worrying<\/span> about, the <span style=\"text-decoration: underline;\">speed of noncritical parts of their programs<\/span>, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we <span style=\"text-decoration: underline;\">should not pass up our opportunities in that critical 3%<\/span>. (Programc\u0131lar, programlar\u0131n\u0131n kritik olmayan b\u00f6l\u00fcmlerinin h\u0131z\u0131 hakk\u0131nda d\u00fc\u015f\u00fcnmek veya bunlarla ilgili endi\u015fe duymak i\u00e7in \u00e7ok zaman harcarlar ve bu verimlilik giri\u015fimleri, hata ay\u0131klama ve bak\u0131m d\u00fc\u015f\u00fcn\u00fcld\u00fc\u011f\u00fcnde asl\u0131nda ciddi bir olumsuz etkiye sahiptir. K\u00fc\u00e7\u00fck verimlilik giri\u015fimlerini unutmal\u0131y\u0131z, \u00f6rne\u011fin, zaman\u0131n yakla\u015f\u0131k %97&#8217;sinde: erken optimizasyon t\u00fcm k\u00f6t\u00fcl\u00fcklerin kayna\u011f\u0131d\u0131r. Yine de, kalan %3&#8217;l\u00fck kritik performans iyile\u015ftirme f\u0131rsatlar\u0131m\u0131z\u0131 ka\u00e7\u0131rmamal\u0131y\u0131z.)<\/em><\/p><\/blockquote>\n<p>Geli\u015ftirdi\u011finiz yaz\u0131l\u0131mlara ili\u015fkin, hangi noktalarda ve nas\u0131l optimizasyon yapabilece\u011finize ili\u015fkin elinizde yeterli bilgi bulunmadan, yap\u0131lan optimizasyonlar\u0131, Vakitsiz\/Erken Optimizasyon olarak isimlendirebiliriz.<br \/>\nPeki bu durum nas\u0131l kar\u015f\u0131m\u0131za \u00e7\u0131k\u0131yor ya da bunu yapt\u0131\u011f\u0131m\u0131z\u0131 nas\u0131l anlayabiliriz diye soracak olursan\u0131z, bunu anlaman\u0131za yard\u0131mc\u0131 olabilecek birka\u00e7 \u00f6rne\u011fi s\u0131ralamak istiyorum:<\/p>\n<ul>\n<li><strong>\u0130htiya\u00e7lar netle\u015fmeden<\/strong> hangi veri yap\u0131s\u0131 ya da algoritmay\u0131 kullanaca\u011f\u0131n\u0131za karar vermeye dalm\u0131\u015fsan\u0131z,<\/li>\n<li><strong>Nas\u0131l kullan\u0131laca\u011f\u0131<\/strong> hatta kullan\u0131l\u0131p\/kullan\u0131lmayaca\u011f\u0131 netle\u015fmemi\u015f bir fonksiyon ya da veri yap\u0131s\u0131 i\u00e7in gere\u011finden fazla u\u011fra\u015f\u0131yorsan\u0131z,<\/li>\n<li>Hen\u00fcz elinizde <strong>\u00e7al\u0131\u015f\u0131r durumda bir yaz\u0131l\u0131m yokken<\/strong>, performans\u0131n\u0131 artt\u0131rmaya y\u00f6nelik kendinizi u\u011fra\u015f\u0131r buluyorsan\u0131z,<\/li>\n<li>Benzer \u015fekilde, \u00e7al\u0131\u015f\u0131r yaz\u0131l\u0131m\u0131n\u0131z var ama <strong>do\u011fru \u00e7al\u0131\u015f\u0131p\/\u00e7al\u0131\u015fmad\u0131\u011f\u0131ndan emin de\u011filken<\/strong>, performans\u0131n\u0131 artt\u0131rmaya y\u00f6nelik kendinizi u\u011fra\u015f\u0131r durumda buluyorsan\u0131z<\/li>\n<\/ul>\n<p>oturup d\u00fc\u015f\u00fcnmenizde fayda var.<\/p>\n<p>Elbette, bu durumlar d\u0131\u015f\u0131nda, elinizde yeterli bilgi oldu\u011fu durumlarda ya da \u00e7ok k\u0131s\u0131tl\u0131 kaynaklara sahip sistemler i\u00e7in yaz\u0131l\u0131m geli\u015ftirme durumundaysan\u0131z, optimizasyon gerekli de olabilir.<\/p>\n<p>Bu probleme benzer bir di\u011fer kar\u015f\u0131t \u00f6r\u00fcnt\u00fc de &#8220;<em>bikeshedding<\/em>&#8220;&#8216;tir. Bu \u00f6r\u00fcnt\u00fc de, insanlar\u0131n, nispeten \u00f6nemsiz konulara gere\u011finden fazla zaman harcamas\u0131 durumunu adresler. Bu \u00f6r\u00fcnt\u00fcye de ayr\u0131 bir yaz\u0131mda de\u011finece\u011fim.<\/p>\n<h2><span style=\"color: #0000ff;\"><strong>Peki bu neden k\u00f6t\u00fc?<\/strong><\/span><\/h2>\n<p>\u00c7\u00fcnk\u00fc, bir \u00f6nceki ba\u015fl\u0131kta belirtti\u011fim gibi, elinizde yeterli bilgi olmadan, pratikte nerede hangi noktalarda, optimizasyona ihtiya\u00e7 oldu\u011funu bilmek olduk\u00e7a zor olabilir. Bunun ile birlikte, bu bilgiye sahip olmadan \u00f6nce yap\u0131lacak olan optimizasyon giri\u015fimleri de genellikle, kodun karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 artt\u0131rmaya, daha fazla hataya ve asl\u0131nda \u00e7ok da \u00f6nemli olmayan iyile\u015ftirmelere yol a\u00e7abilir. Baz\u0131 durumlarda, ilerleyi\u015finizi de durdurabilir, durdurmasa bile ileride yap\u0131labilecek ya da yap\u0131lmas\u0131 gereken g\u00fcncellemelerin uygulanmas\u0131n\u0131 olduk\u00e7a zorla\u015ft\u0131rabilir.<\/p>\n<p>Sonu\u00e7 olarak, bu tarz giri\u015fimler, \u00e7o\u011funlukla, zaman, kaynak ve elbette motivasyon kayb\u0131na yol a\u00e7abilmektedir.<\/p>\n<h2><span style=\"color: #0000ff;\"><strong>Peki bunu nas\u0131l anlar\u0131z?<\/strong><\/span><\/h2>\n<p>\u00d6nceli\u011finiz, her zaman i\u00e7in <em>temiz<\/em>, <em>okunabilir <\/em>ve tabi ki <em>\u00e7al\u0131\u015fan<\/em> kod elde etmek olmal\u0131. Bunu da yaparken, mevcut algoritma ve yakla\u015f\u0131mlar\u0131 muhakkak g\u00f6z \u00f6n\u00fcnde bulundurmal\u0131y\u0131z.<\/p>\n<p>Ard\u0131ndan, \u00e7e\u015fitli \u00f6l\u00e7\u00fcm (&#8220;profiling&#8221;) ara\u00e7lar\u0131 kullanarak (o da ihtiya\u00e7 olursa), s\u0131k\u0131nt\u0131l\u0131 ve optimizasyona ihtiya\u00e7 duyulan noktalar\u0131 belirlemeliyiz. Daha \u00f6nce de ifade edildi\u011fi \u00fczere burada \u00f6nemli olan, tahminler yerine, <span style=\"text-decoration: underline;\">\u00f6l\u00e7\u00fcmleri<\/span> referans almakt\u0131r.<\/p>\n<p>Bunlar yan\u0131nda, yap\u0131lacak optimizasyonlara ili\u015fkin, a\u015fa\u011f\u0131daki sorular\u0131 olabildi\u011fince objektif bir \u015fekilde yan\u0131tlamak da sizlere yard\u0131mc\u0131 olacakt\u0131r:<\/p>\n<ul>\n<li><strong><em>Neden<\/em> <\/strong>yapmak istiyorsunuz? (\u015eu an i\u00e7in, bu a\u015famada bu ger\u00e7ekten gerekli mi?)<\/li>\n<li>Beklentileriniz, <em><strong>kazanc\u0131n\u0131z<\/strong> <\/em>neler? (Ne kadarl\u0131k bir yava\u015fl\u0131k var, ya da ne kadarl\u0131k bir kazan\u00e7 bekliyoruz?)<\/li>\n<li><em><strong>Maliyeti<\/strong> <\/em>ne olacak? (Yeterli vakit, kaynak var m\u0131?)<\/li>\n<li>Olas\u0131 <em><strong>negatif sonu\u00e7lar\u0131<\/strong> <\/em>neler olabilir ya da bu optimizasyonun <em><strong>anlmas\u0131z<\/strong> <\/em>olma olas\u0131l\u0131\u011f\u0131 var m\u0131? (Bunu g\u00f6rmek \u00e7ok kolay olmayabilir ama buna kafa yormak kesinlikle sizler i\u00e7in faydal\u0131 olacakt\u0131r)<\/li>\n<li>Bunu \u015fu an <em><strong>yapman\u0131z\u0131n<\/strong> <\/em>ya da <em><strong>yapmaman\u0131z\u0131n<\/strong> <\/em>sebep olabilece\u011fi <strong>s\u0131k\u0131nt\u0131lar<\/strong> var m\u0131? (Daha \u00f6nemli olan kabiliyetleri geli\u015ftirmeniz gecikiyor mu? Ya da bunu yapmamam\u0131z\u0131n yaz\u0131l\u0131m i\u00e7in bir tehlikesi var m\u0131?)<\/li>\n<li>Bunun \u00fczerinde \u00e7al\u0131\u015fm\u0131yor olsan\u0131z, <em><strong>ba\u015fka yapabilece\u011finiz<\/strong> <\/em>bir \u015fey var m\u0131?<\/li>\n<\/ul>\n<p>Bu sorular \u0131\u015f\u0131\u011f\u0131nda ilgili \u00f6nceliklerinizi belirleyebilir, gereksiz optimizasyondan ka\u00e7\u0131nabilirsiniz.<\/p>\n<h2><span style=\"color: #0000ff;\"><strong>Peki neleri bunun d\u0131\u015f\u0131nda tutmam\u0131z laz\u0131m?<\/strong><\/span><\/h2>\n<p>Birka\u00e7 kere de\u011findi\u011fim \u00fczere, erkenden optimizasyon yapmamam\u0131z, baz\u0131 a\u015fikar hususlar\u0131 g\u00f6z ard\u0131 edece\u011fimiz anlam\u0131na gelmiyor. \u00d6zellik kullan\u0131lacak veri yap\u0131lar\u0131 ve algoritmalarda bunu g\u00f6z \u00f6n\u00fcnde bulundurabilirsiniz. \u00d6rne\u011fin, y\u0131\u011f\u0131n kullan\u0131m\u0131n\u0131n uygun oldu\u011fu yerlerde tutup farkl\u0131 veri yap\u0131lar\u0131 kullanmak da do\u011fru olmayabilir. Burada yine temel veri yap\u0131lar\u0131 ve algoritmalar ile ba\u015flay\u0131p, daha sonra veri yap\u0131lar\u0131 ve algoritmalar\u0131n\u0131z\u0131 probleminize \u00f6zg\u00fc bir \u015fekilde \u00f6zelle\u015ftirebilirsiniz. BigO analizleri (yer ve \u00e7al\u0131\u015fma zaman\u0131) konusunda sizlere yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<p>Dikkat edilmesi gereken konulardan birisi de, erken optimizasyonun daha do\u011frusu optimize kodun, k\u00f6t\u00fc koda bir bahane olarak kullan\u0131lmas\u0131na da kar\u015f\u0131n uyan\u0131k olmam\u0131z laz\u0131m. Yani, optimize kodlar\u0131n, okunamaz olaca\u011f\u0131 diye bir durum s\u00f6z konusu olmad\u0131\u011f\u0131 gibi, okunabilir kodlar\u0131n da yava\u015f ya da performans anlam\u0131nda k\u00f6t\u00fc olur gibi bir kabul yapmak do\u011fru de\u011fildir.<\/p>\n<p>Her \u015fey de oldu\u011fu gibi, bu durumu da k\u00f6t\u00fcye kullanma ve yanl\u0131\u015f kullan\u0131ma ili\u015fkin durumlar da s\u00f6z konusu olabilmektedir. Buna ili\u015fkin de <span style=\"color: #008000;\"><strong><a style=\"color: #008000;\" href=\"https:\/\/ubiquity.acm.org\/article.cfm?id=1513451\">g\u00fczel bir kayna\u011f\u0131<\/a><\/strong><\/span>, kaynaklar k\u0131sm\u0131na ekliyorum, bir g\u00f6z atman\u0131zda fayda var. Bu kaynak i\u00e7erisinde, bu kar\u015f\u0131t-\u00f6r\u00fcnt\u00fcye uyarken nelere dikkat etmek gerekti\u011fi 9 temel g\u00f6zlem ile aktar\u0131lmakta.<\/p>\n<p>C++ \u00f6zelinde, yaz\u0131l\u0131m geli\u015ftirecek arkada\u015flar i\u00e7in, benzer \u015fekilde, her t\u00fcrl\u00fc uygulanabilecek bir tak\u0131m optimizasyon tavsiyeleri i\u00e7in de ayr\u0131 bir yaz\u0131 yazmay\u0131 planl\u0131yorum \ud83d\ude09<\/p>\n<h2><span style=\"color: #0000ff;\"><strong>Sonu\u00e7<\/strong><\/span><\/h2>\n<p>Uzun laf\u0131n k\u0131sas\u0131, optimize etmeden \u00f6nce, muhakkak \u00f6l\u00e7\u00fcm yapmal\u0131s\u0131n\u0131z ve \u00e7ok \u00f6zel bir sebebiniz olmad\u0131\u011f\u0131 m\u00fcddet\u00e7e, <strong>basitlik <\/strong>ve<strong> okunabilirlikten <\/strong>\u00f6d\u00fcn vermemelisiniz.<\/p>\n<p>Emin olamad\u0131\u011f\u0131n\u0131z durumlarda, \u015fu k\u0131sa \u00fc\u00e7 ad\u0131m size rehber olabilir:<\/p>\n<ol>\n<li>\u00c7al\u0131\u015f\u0131r hale getir,<\/li>\n<li>Do\u011fru hale getir,<\/li>\n<li>H\u0131zland\u0131r.<\/li>\n<\/ol>\n<p>Bir sonraki yaz\u0131mda g\u00f6r\u00fc\u015fmek dile\u011fiyle, hepinize iyi bayramlar diliyorum.<\/p>\n<h2><span style=\"color: #0000ff;\"><strong>Kaynaklar<\/strong><\/span><\/h2>\n<ul>\n<li><strong><span style=\"color: #008000;\"><a style=\"color: #008000;\" href=\"https:\/\/dl.acm.org\/doi\/10.1145\/1569886.1513451\">https:\/\/dl.acm.org\/doi\/10.1145\/1569886.1513451<\/a><\/span><\/strong><\/li>\n<li><strong><span style=\"color: #008000;\"><a style=\"color: #008000;\" href=\"https:\/\/wiki.c2.com\/?PrematureOptimization\">https:\/\/wiki.c2.com\/?PrematureOptimization<\/a><\/span><\/strong><\/li>\n<li><strong><span style=\"color: #008000;\"><a style=\"color: #008000;\" href=\"https:\/\/effectiviology.com\/premature-optimization\/\">https:\/\/effectiviology.com\/premature-optimization\/<\/a><\/span><\/strong><\/li>\n<li><strong><span style=\"color: #008000;\"><a style=\"color: #008000;\" href=\"https:\/\/ubiquity.acm.org\/article.cfm?id=1513451\">https:\/\/ubiquity.acm.org\/article.cfm?id=1513451<\/a><\/span><\/strong><\/li>\n<li><a href=\"https:\/\/diveintosystems.org\/book\/C12-CodeOpt\/basic.html\"><strong><span style=\"color: #008000;\">https:\/\/diveintosystems.org\/book\/C12-CodeOpt\/basic.html<\/span><\/strong><\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Evet sevgili yaz\u0131l\u0131mperver dostlar\u0131m bu ve sonraki birka\u00e7 yaz\u0131mda, fark\u0131nda olman\u0131z gereken kar\u015f\u0131t-\u00f6r\u00fcnt\u00fclerden (&#8220;anti-pattern&#8221;)&#8217;lerden bahsetmeye \u00e7al\u0131\u015faca\u011f\u0131m. K\u0131sacas\u0131, ka\u00e7\u0131nman\u0131z gereken hususlar. Bunlar\u0131n bir k\u0131sm\u0131na, daha \u00f6nceki yaz\u0131lar\u0131mda de\u011finmi\u015f olmam muhtemel, bu yaz\u0131larda, bu hususlara daha yak\u0131nda bak\u0131yor olaca\u011f\u0131z. \u0130lk bakaca\u011f\u0131m\u0131z husus, &#8220;Premature Optimization&#8221;, bir di\u011fer ifade ile, Vakitsiz\/Erken Optimizasyon durumu. Hemen, bu konu ile ilgili bir&#8230; <a class=\"more-link\" href=\"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/\">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":[188],"tags":[998,1002,999,1005,1004,1000,1001,997,1003],"class_list":["post-2542","post","type-post","status-publish","format-standard","hentry","category-yazilim-muhendisligi","tag-anti-pattern","tag-bikeshedding","tag-donald-knuth","tag-karsit-oruntu","tag-optimizasyon","tag-optimization","tag-performance","tag-premature-optimization","tag-profiling"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Vakitsiz\/Erken Optimizasyon (&quot;Premature Optimization&quot;) Kar\u015f\u0131t \u00d6r\u00fcnt\u00fcs\u00fc - 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\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Vakitsiz\/Erken Optimizasyon (&quot;Premature Optimization&quot;) Kar\u015f\u0131t \u00d6r\u00fcnt\u00fcs\u00fc - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\" \/>\n<meta property=\"og:description\" content=\"Evet sevgili yaz\u0131l\u0131mperver dostlar\u0131m bu ve sonraki birka\u00e7 yaz\u0131mda, fark\u0131nda olman\u0131z gereken kar\u015f\u0131t-\u00f6r\u00fcnt\u00fclerden (&#8220;anti-pattern&#8221;)&#8217;lerden bahsetmeye \u00e7al\u0131\u015faca\u011f\u0131m. K\u0131sacas\u0131, ka\u00e7\u0131nman\u0131z gereken hususlar. Bunlar\u0131n bir k\u0131sm\u0131na, daha \u00f6nceki yaz\u0131lar\u0131mda de\u011finmi\u015f olmam muhtemel, bu yaz\u0131larda, bu hususlara daha yak\u0131nda bak\u0131yor olaca\u011f\u0131z. \u0130lk bakaca\u011f\u0131m\u0131z husus, &#8220;Premature Optimization&#8221;, bir di\u011fer ifade ile, Vakitsiz\/Erken Optimizasyon durumu. Hemen, bu konu ile ilgili bir... Continue reading &#8594;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/\" \/>\n<meta property=\"og:site_name\" content=\"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-03T20:33:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/miro.medium.com\/max\/1128\/1*QSCEdHtOtn34JIfLOvlsFg.jpeg\" \/>\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=\"6 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\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/\"},\"author\":{\"name\":\"yaz\u0131l\u0131mperver\",\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"headline\":\"Vakitsiz\/Erken Optimizasyon (&#8220;Premature Optimization&#8221;) Kar\u015f\u0131t \u00d6r\u00fcnt\u00fcs\u00fc\",\"datePublished\":\"2022-05-03T20:33:27+00:00\",\"dateModified\":\"2022-05-03T20:33:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/\"},\"wordCount\":1511,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb\"},\"keywords\":[\"anti-pattern\",\"bikeshedding\",\"donald knuth\",\"kar\u015f\u0131t \u00f6r\u00fcnt\u00fc\",\"optimizasyon\",\"optimization\",\"performance\",\"premature optimization\",\"profiling\"],\"articleSection\":[\"Yaz\u0131l\u0131m M\u00fchendisli\u011fi\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/\",\"url\":\"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/\",\"name\":\"Vakitsiz\/Erken Optimizasyon (\\\"Premature Optimization\\\") Kar\u015f\u0131t \u00d6r\u00fcnt\u00fcs\u00fc - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/www.yazilimperver.com\/#website\"},\"datePublished\":\"2022-05-03T20:33:27+00:00\",\"dateModified\":\"2022-05-03T20:33:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Ana sayfa\",\"item\":\"https:\/\/www.yazilimperver.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Vakitsiz\/Erken Optimizasyon (&#8220;Premature Optimization&#8221;) Kar\u015f\u0131t \u00d6r\u00fcnt\u00fcs\u00fc\"}]},{\"@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":"Vakitsiz\/Erken Optimizasyon (\"Premature Optimization\") Kar\u015f\u0131t \u00d6r\u00fcnt\u00fcs\u00fc - 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\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/","og_locale":"tr_TR","og_type":"article","og_title":"Vakitsiz\/Erken Optimizasyon (\"Premature Optimization\") Kar\u015f\u0131t \u00d6r\u00fcnt\u00fcs\u00fc - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","og_description":"Evet sevgili yaz\u0131l\u0131mperver dostlar\u0131m bu ve sonraki birka\u00e7 yaz\u0131mda, fark\u0131nda olman\u0131z gereken kar\u015f\u0131t-\u00f6r\u00fcnt\u00fclerden (&#8220;anti-pattern&#8221;)&#8217;lerden bahsetmeye \u00e7al\u0131\u015faca\u011f\u0131m. K\u0131sacas\u0131, ka\u00e7\u0131nman\u0131z gereken hususlar. Bunlar\u0131n bir k\u0131sm\u0131na, daha \u00f6nceki yaz\u0131lar\u0131mda de\u011finmi\u015f olmam muhtemel, bu yaz\u0131larda, bu hususlara daha yak\u0131nda bak\u0131yor olaca\u011f\u0131z. \u0130lk bakaca\u011f\u0131m\u0131z husus, &#8220;Premature Optimization&#8221;, bir di\u011fer ifade ile, Vakitsiz\/Erken Optimizasyon durumu. Hemen, bu konu ile ilgili bir... Continue reading &#8594;","og_url":"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/","og_site_name":"Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","article_published_time":"2022-05-03T20:33:27+00:00","og_image":[{"url":"https:\/\/miro.medium.com\/max\/1128\/1*QSCEdHtOtn34JIfLOvlsFg.jpeg"}],"author":"yaz\u0131l\u0131mperver","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"yaz\u0131l\u0131mperver","Tahmini okuma s\u00fcresi":"6 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/#article","isPartOf":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/"},"author":{"name":"yaz\u0131l\u0131mperver","@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"headline":"Vakitsiz\/Erken Optimizasyon (&#8220;Premature Optimization&#8221;) Kar\u015f\u0131t \u00d6r\u00fcnt\u00fcs\u00fc","datePublished":"2022-05-03T20:33:27+00:00","dateModified":"2022-05-03T20:33:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/"},"wordCount":1511,"commentCount":0,"publisher":{"@id":"https:\/\/www.yazilimperver.com\/#\/schema\/person\/6497f6de4df6ba469748b861a2b3fcdb"},"keywords":["anti-pattern","bikeshedding","donald knuth","kar\u015f\u0131t \u00f6r\u00fcnt\u00fc","optimizasyon","optimization","performance","premature optimization","profiling"],"articleSection":["Yaz\u0131l\u0131m M\u00fchendisli\u011fi"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/","url":"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/","name":"Vakitsiz\/Erken Optimizasyon (\"Premature Optimization\") Kar\u015f\u0131t \u00d6r\u00fcnt\u00fcs\u00fc - Yaz\u0131l\u0131mperver&#039;in D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/www.yazilimperver.com\/#website"},"datePublished":"2022-05-03T20:33:27+00:00","dateModified":"2022-05-03T20:33:27+00:00","breadcrumb":{"@id":"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.yazilimperver.com\/index.php\/2022\/05\/03\/vakitsiz-erken-optimizasyon-premature-optimization-karsit-oruntusu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Ana sayfa","item":"https:\/\/www.yazilimperver.com\/"},{"@type":"ListItem","position":2,"name":"Vakitsiz\/Erken Optimizasyon (&#8220;Premature Optimization&#8221;) Kar\u015f\u0131t \u00d6r\u00fcnt\u00fcs\u00fc"}]},{"@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\/2542","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=2542"}],"version-history":[{"count":4,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/2542\/revisions"}],"predecessor-version":[{"id":2547,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/posts\/2542\/revisions\/2547"}],"wp:attachment":[{"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/media?parent=2542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/categories?post=2542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yazilimperver.com\/index.php\/wp-json\/wp\/v2\/tags?post=2542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}