İçeriğe atla

Monkey patch

Bilgisayar programlamada, monkey patching, bir kod parçasının davranışını dinamik olarak çalışma zamanında güncellemek için kullanılan bir tekniktir.[1] Orijinal kaynak kodunu değiştirmeden dinamik dillerin (örneğin Smalltalk, JavaScript, Objective-C, Ruby, Perl, Python, Groovy) çalışma zamanı kodunu genişletmek veya değiştirmek için kullanılır.[2]

Kaynakça

  1. ^ "Glossary — Plone Documentation v5.2". 22 Ocak 2021. 22 Ocak 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Şubat 2024. 
  2. ^ "Monkey Patching in Python". 22 Ağustos 2012. 22 Ağustos 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Şubat 2024. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">C (programlama dili)</span> programlama dili

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

<span class="mw-page-title-main">Mozilla Firefox</span> yazılım

Mozilla Firefox, Mozilla Vakfı ve onun alt kuruluşu Mozilla Corporation tarafından geliştirilen, özgür ve açık kaynak kodlu bir web tarayıcısıdır. Firefox; Windows, macOS, Linux, Android ve iOS işletim sistemlerinde kullanabilir. Yazılımın Windows, macOS, Linux, Android sürümlerinde web sayfalarının oluşturulması için Gecko motoru kullanılır. Mozilla tarafından geliştirilen Gecko, mevcut ve planlanmış web standartlarıyla uyumludur. 2015'te çıkan iOS için Firefox uygulamasında ise Apple'ın getirdiği kısıtlamalar nedeniyle iOS'in bütünleşik WebKit motoru kullanılır.

<span class="mw-page-title-main">JavaScript</span> programlama dili

JavaScript, HTML ve CSS ile birlikte World Wide Web'in temel teknolojilerinden biri olan programlama dilidir. Web sitelerinin %97'sinden fazlası, web sayfası hareketleri için istemci tarafında JavaScript kullanırlar ve kullanılan kodlar genellikle üçüncü taraf kitaplıkları içerir. Tüm büyük web tarayıcılarında, kaynak kodunu kullanıcıların cihazlarında yürütebilmek için özel bir JavaScript motoru bulunur.

<span class="mw-page-title-main">C++</span> bir programlama dili

C++, Bjarne Stroustrup tarafından 1979 yılında Bell Laboratuvarları'nda geliştirilmeye başlanmış, C'yi kapsayan ve çok paradigmalı, yaygın olarak kullanılan, genel amaçlı bir programlama dilidir.

Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir.

<span class="mw-page-title-main">PHP</span> bir programlama dili

PHP: Hypertext Preprocessor, internet için üretilmiş, sunucu taraflı, çok geniş kullanımlı, genel amaçlı, içerisine HTML gömülebilen betik ve programlama dilidir. İlk kez 1995 yılında Rasmus Lerdorf tarafından yaratılan PHP'nin geliştirilmesi bugün PHP topluluğu tarafından sürdürülmektedir. Ocak 2013 itibarıyla 244 milyondan fazla web sitesi PHP ile çalışırken 2.1 milyon web sunucusunda PHP kurulumu bulunmaktadır.

<span class="mw-page-title-main">İnternet sitesi</span> tek bir web alanından sunulan ilgili web sayfaları kümesi

Web sitesi, Ortak bir alan adı ile tanımlanan ve en az bir web sunucusunda yayınlanan web sayfaları ve ilgili içeriklerden oluşan bir koleksiyondur. Web üzerindeki sayfalar; metin, görsel ve animasyon şeklinde ziyaretçisine bilgi aktaran veya hizmet sunan sayfaların tümünü kapsayan bir doküman topluluğudur. Ziyaretçiler bir web sitesine, HTTP veya HTTPS protokollerinde aşağıdaki bileşenlerden oluşan benzersiz bir adresi kullanarak erişirler:

<span class="mw-page-title-main">Ankara Metrosu</span> Ankarada hizmet veren metro sistemi

Ankara Metrosu, Türkiye'nin başkenti Ankara'da hizmet veren hafif raylı ve metro sistemidir. EGO Genel Müdürlüğü tarafından işletilmektedir. 1996'da hizmete giren ilk hatla birlikte Ankara Metrosu, İstanbul'dan sonra Türkiye'de hizmete giren ikinci metro sistemi olmuştur. Hem toplam ağ uzunluğu olarak hem de yıllık yolcu sayısı bakımından Türkiye'nin en büyük ikinci metro sistemidir. İlk olarak 30 Ağustos 1996'da A1 Hafif Raylı Sistemi faaliyete geçmiştir. 28 Aralık 1997'de M1 Metro Hattı, 12 Şubat 2014'te M3 Metro Hattı, 13 Mart 2014'te M2 Metro Hattı, 5 Ocak 2017'de M4 Metro Hattı ve 12 Nisan 2023'te ise M4 Metro Hattı hizmete açılmıştır. Sistemde toplam 57 istasyon bulunmaktadır. A1 hattı 8,5 km, M1 hattı 14,6 km, M2 hattı 16,5 km, M3 hattı 15,3 km, M4 hattı ise 12,5 km uzunluğundadır. A1 uzatması inşa hâlindedir. A2 uzatması ihale aşamasındadır. M4 uzatmaları ile M2ᴀ, M2ʙ M5, M6 ve M7 hatlarının ise yapımı planlanmaktadır. Ankara Metrosu, hatların geçtiği halleriyle Altındağ, Çankaya, Etimesgut, Keçiören, Sincan ve Yenimahalle ilçelerinden geçmektedir. Gelecekte Pursaklar, Akyurt ve Çubuk ilçelerinden de geçecektir.

<span class="mw-page-title-main">SeaMonkey</span>

SeaMonkey, açık kaynaklı, çok platformlu bir genel ağ (internet) yazılımıdır. Mozilla Application Suite'in kaynak kodu kullanılarak geliştirilmiştir.

<span class="mw-page-title-main">Guido van Rossum</span>

Guido van Rossum, Hollandalı bir bilgisayar programcısıdır.

<span class="mw-page-title-main">Notepad++</span>

Notepad++, Windows işletim sistemi içerisine gömülü olarak gelen Notepad yazılımının yerine kullanılmak üzere C++ ile saf Win32 API ve STL ile geliştirilmiş GPL ile dağıtılan açık kaynak kodlu bir kaynak kod düzenleyicisidir. Scintilla düzenleyicisi temel alınarak geliştirilen Notepad++, birçok yazılımlama diline ait kodu görüntüleyip uygun olarak renklendirebilir. Türkçe dâhil birçok konuşma diline destek veren bir arabirimi vardır.

<span class="mw-page-title-main">Go (programlama dili)</span> programlama dili

Go, statik tipli, derlenen, yüksek seviyeli bir programlama dilidir. Robert Griesemer, Rob Pike ve Ken Thompson tarafından Google'da 2007 yılından itibaren geliştirilmeye başlanmıştır. Sözdizimi C'ye benzerdir fakat hafıza erişimi güvenlidir, kullanılmayan hafıza kaynakları sisteme otomatik olarak geri verilir, interface veri tipleri sayesinde yapısal tip sistemini destekler ve eşzamanlı (concurrent) çalışan işlemlerin (process) ortak hafıza kullanabilmelerinin yanında birbiriyle iletişim kurmalarını sağlayan ögelere sahiptir. Eski alan adı golang.org olduğundan sık sık golang ismiyle anılır ama asıl adı Go'dur.

<span class="mw-page-title-main">Sinop Havalimanı</span>

Sinop Havalimanı, 1993 yılında SIC kodu ile hizmete başlamıştır. Yıllık yolcu kapasitesi 150.000'dir. Şehre uzaklığı 8 km'dir. 05/23 Pisti 2000x45 boyutunda olup pist beton kaplamadır. Yolcuya açık alanlar 343m² olup, otopark kapasitesi 100 araçtır. IATA Kodu 2012 yılı itibarı ile NOP olarak değiştirilmiştir.

<span class="mw-page-title-main">Can Bonomo</span> Türk şarkıcı

Can Bonomo, Türk şarkıcı-şarkı yazarı ve oyuncu.

<span class="mw-page-title-main">Yazılım iskeleti</span>

Bilgisayar programlamada yazılım iskeleti, yazılım çerçevesi ya da yazılım çatısı, standart fonksiyonların hazır olarak sunulduğu ancak programcı tarafından bu fonksiyonlardan arzu edilen kısımların ek kodlarla istenildiği şekilde güncellenebildiği sistemlerdir.

JIT ; bilgisayar kodunu çalıştırmanın bir yoludur. Yürütülmeden önce bir program yürütülürken çalışma zamanında derleyici içerir. Genellikle bu, kaynak kodu ve daha sonradan makine diline bytecode kod çevirisini içerir ve bu kod doğrudan doğruya çalıştırılır. Bir JIT derleyicisi uygulayan bir sistem genellikle yürütülen kodu sürekli olarak analiz eder, daha sonra derleme veya tekrar derlemeden elde edilen hızlanmanın bu kodun derlenmesinin yükünden daha ağır olacağı kod bölümlerini tanımlar.

TJIT, bir programın çalışma zamanında yürütülmesinin program optimizasyonunu yapmak için sanal makineler tarafından kullanılan bir tekniktir. Bu, sık yürütülen işlemlerin doğrusal bir sırasını kaydetmek, bunları yerel makine dili koduna derlemek ve yürütmek suretiyle yapılır. Bu yöntem bazında çalışan geleneksel just-in-time (JIT) derleyicilere karşıdır.

IronPython, Python programlama dilinin .NET Framework ve Mono'yu hedefleyen bir gerçeklemesidir. Proje Jim Hugunin tarafından başlatılmış, Hugunin 5 Eylül 2006'da yayınlanan 1.0 sürümüne kadar aktif olarak katkıda bulunmuştur. IronPython 2.0 10 Aralık 2008'de piyasaya sürüldü. 1.0 sürümünden sonra, 2.7 Beta 1 sürümüne kadar Microsoft'ta küçük bir ekip tarafından geliştirildi. Hugunin'in Google'da çalışmaya başlamasının ardından Microsoft, IronPython'u geliştirmeyi 2010 yılının sonlarında sonlandırdı. Proje şu anda GitHub'da bir grup gönüllü tarafından yürütülmektedir. Ücretsiz ve açık kaynaklı bir yazılımdır ve Microsoft Visual Studio IDE için ücretsiz ve açık kaynaklı bir uzantı olan Visual Studio için Python Tools (PTVS) ile uygulanabilir.

<span class="mw-page-title-main">Falkon</span>

Falkon, ücretsiz ve açık kaynaklı bir web tarayıcısıdır. Chromium tarayıcı çekirdeği için bir sarıcı olan Qt WebEngine üzerine inşa edilmiştir.

<span class="mw-page-title-main">Construct (oyun motoru)</span>

Construct, Scirra Ltd. tarafından geliştirilen HTML5 tabanlı bir 2D video oyun motorudur. Öncelikle programcı olmayanlara yöneliktir, görsel programlama yoluyla oyunların hızlı bir şekilde oluşturulmasına olanak tanır. İlk olarak 27 Ekim 2007'de Python programlama ile Microsoft Windows için GPL lisanslı DirectX 9 oyun motoru olarak piyasaya sürüldü, daha sonra Construct 2 ile tescilli yazılım haline geldi ve ayrıca API teknolojisini DirectX'ten NW.js ve HTML5'e geçirdi. 2012'de Python'u kaldırdı ve JavaScript desteğini ve eklenti SDK'sını eklemek gibi ve sonunda bir web uygulaması olarak abonelik tabanlı bir modele geçti.