Parçacık (programlama) - Snippet (programming)

Bir kod parçacığı örneği.

Snippet , yeniden kullanılabilir kaynak kodu , makine kodu veya metinden oluşan küçük bir bölge için kullanılan bir programlama terimidir . Normalde bunlar, daha büyük programlama modüllerine dahil edilecek resmi olarak tanımlanmış operasyonel birimlerdir . Parçacık yönetimi , bazı metin düzenleyicilerin , program kaynak kodu düzenleyicilerinin , IDE'lerin ve ilgili yazılımların bir özelliğidir . Kullanıcının rutin düzenleme işlemleri sırasında tekrarlayan yazı yazmaktan kaçınmasını sağlar.

Tanım

Programlama pratiğinde, "snippet", bir editör programı tarafından bir dosyaya tam anlamıyla dahil edilen kaynak kodun bir bölümünü dar bir şekilde ifade eder ve bir kopyala ve yapıştır programlama biçimidir . Bu somut içerme, dil içinde soyutlama olan işlevler veya makrolar gibi soyutlama yöntemlerinin aksinedir . Snippet'ler, bu nedenle, soyutlamadan yoksun dillerde olduğu gibi, bu soyutlamalar mevcut olmadığında veya istenmediğinde veya netlik ve ek yükün olmaması için öncelikle kullanılır.

Parçacıklar, düzenleyicide bulunan statik ön işlemeye benzer ve bir derleyici tarafından desteklenmeyi gerektirmez. Diğer taraftan, bu, snippet'lerin olaydan sonra değişmez bir şekilde değiştirilemeyeceği ve bu nedenle kopyalama ve yapıştırma programlamasının tüm sorunlarına karşı savunmasız olduğu anlamına gelir. Bu nedenle, snippet'ler öncelikle basit kod bölümleri için (çok az mantıkla) veya telif hakkı bildirimleri, işlev prototipleri, ortak kontrol yapıları veya standart kitaplık içe aktarmaları gibi genel bilgiler için kullanılır.

genel bakış

Snippet yönetimi, yazılım geliştiriciler veya sürekli olarak tekrar tekrar girilen metin kataloğundan ( kaynak kodu veya standart metin gibi ) içerik gerektiren diğerleri arasında popüler olan bir metin düzenleyici özelliğidir . Genellikle bu özellik, içerik her girildiğinde çok az değişiklik gösterdiği (veya hiç değişmediği) için haklıdır.

Metin düzenleyicilerdeki snippet'ler

Bu özelliği içeren metin düzenleyicileri, genellikle kataloğu yönetmek için bir mekanizma sağlar ve metin düzenleyici ve işletim sisteminin ayrı dosyaların yönetimine izin vermesiyle aynı şekilde "parçacıkları" ayırır. Bu temel yönetim yetenekleri , görüntüleme, ekleme, düzenleme, silme, sıralama, filtreleme, gruplama, yeniden adlandırma ve snippet'leri bir havuzda , katalogda veya veritabanında saklama gibi işlemleri içerir . Bazı düzenleyiciler, standart bir şablona dayalı olarak işlev prototiplerinin ve değişken kontrol yapılarının oluşturulmasına izin veren parçacıklar için bir makro yeteneği sağlar.

IDE'lerdeki snippet'ler

Eclipse , NetBeans ve Microsoft'un Visual Studio gibi bazı programcı uygulamaları ve diğer IDE'ler , kodlama kolaylığı için yerleşik yapı parçalarını içerir.

Macromedia Dreamweaver gibi diğer uygulamalar bu kod parçacıklarını Web geliştirme için de kullanır .

JIT derleyicilerindeki parçacıklar

Tam zamanında ( JIT ) derleyiciler, önceden derlenmiş kod bölümlerini daha uzun nesne kodu / makine kodu bölümleri olarak "bir araya getirebilir" . Bu, yorumlama süresini önemli ölçüde azaltır ve eş zamanlı olarak yürütmeyi hızlandırır.

Örnek

İki değişkenin, x ve y'nin değerlerini değiştirme sürecini düşünün . Yazmanın zayıf olduğu ve ad çakışmasından endişe edilmediği varsayıldığında , bu kodla temsil edilir:

temp = x
x = y
y = temp

Parçacık eklendiğinde, programcıdan iki parametrenin değerleri istenir. Değiştirmek istedikleri değişkenlerin gerçek adları olan type foove olduklarını varsayarsak bar, bu şu kodu verecektir:

temp = foo
foo = bar
bar = temp

Parçacık sonradan değiştirilirse, __tempyerine kullan deyin temp, önceden eklenmiş olan kodu değiştirmez, ancak parçacığın sonraki eklemelerinde kullanılır.

Bunun için bir pasaj şu şekilde temsil edilebilir:

temp = $1
$1 = $2
$2 = temp

Sözleşmeler

Daha önce açıklanan temel yönetim yeteneklerine ek olarak, snippet yönetimi özellikleri, snippet'ler ile bunları barındıran metin düzenleyici veya uygulama arasındaki etkileşimin kapsamına göre sınıflandırılabilir.

Bu snippet özellik grupları şunları içerir:

  • düz metin veya "statik" snippet'ler
  • etkileşimli veya "dinamik" snippet'ler
  • kodlanabilir snippet'ler

Statik snippet'ler, öncelikle kullanıcının geçerli belgeye eklemeyi seçebileceği sabit metinlerden oluşur. Kullanıcı, yeni eklenen metne göre imleç konumu dışında başka bir şey belirtemez. Statik snippet'ler basit makrolara benzer .

Dinamik snippet'ler, düzenleyici veya kullanıcı tarafından değiştirilmesine izin verilen dinamik öğelerle (yer tutucular) birleştirilmiş sabit metinlerden oluşur. Kullanıcı, geçerli belgeye ne ekleyeceğini seçmenin bir parçası olarak hem dinamik öğelerin içeriğini hem de sabit metne göre konumlarını belirtebilir. Dinamik öğelerin örnekleri, geçerli tarih veya sistem saati gibi değişkenler veya bir GUI aracılığıyla sağlanan kullanıcıdan gelen girdi veya başka bir uygulamadan girdi olabilir. (ayrıca bakınız: programlanabilir makro ).

Komut dosyası oluşturulabilir snippet'ler, bir makro dilinde veya bir komut dosyası dilinde çalıştırılabilir kod bölümlerinden oluşur . Bu, metin düzenleyici tarafından desteklenen programlama dillerine ve programlama dilinin iyi bilinip bilinmemesine veya söz konusu düzenleyiciye özel ve benzersiz olup olmadığına bağlı olsa da, komut dosyası yazılabilir parçacıklar kullanıcıya en yüksek düzeyde esneklik sağlar.

Komut dosyası oluşturma desteğinin türü değişir, ancak kabuk komutlarını çalıştırma , bir GUI iletişim kutusu sağlama veya işletim sistemiyle kullanıcı etkileşiminin diğer yöntemleri gibi özellikleri içerebilir ; diğer uygulamalar; veya barındırma uygulamasının kendisinin diğer alt bileşenleri.

Snippet yer tutucuları

Yer tutucular, kullanıcı veya diğer harici işlemler tarafından sağlanmak üzere bırakılan bir snippet içindeki öğelerdir. Yer tutucuların değerleri, bir düzenleme oturumu sırasında snippet'in metni eklenene kadar belirlenmez.

Yer tutucular, düzenleyicinin geçerli düzenleme arabelleğindeki diğer metne göre yer tutucuların sınırlarını belirlemesine olanak tanıyan özel biçimlendirme sözdizimine sahip olabilir .

Diğer uygulamalar , kullanıcının yer tutucular için sağlanacak bir veya daha fazla değeri girmesine izin veren grafik kullanıcı arabirimleri ve kalıcı iletişim kutuları kullanır.

Yer tutucu tanımlayıcıları

Yer tutucular genellikle bazı özel karakterler veya karakter dizileriyle belirtilir ve onları snippet metninin geri kalanından ayırt eder. Bazı sistemler, snippet yer tutucularının tanımlayıcı olarak adlandırılmasına izin verir . Tanımlayıcılar, yer tutucu çoğaltma veya yer tutucu dönüştürme gibi özellikleri desteklemek için faydalı olabilir.

Aşağıdaki örnek first_name, last_name, ve tanımlayıcılarını kullanır item:

Hello {%first_name%} {%last_name%},

Your shipment of {%item%} is now ready to pick up.

Thanks {%first_name%}!

Yer tutucu çoğaltma

Bu, kullanıcının bir yer tutucu için sağlanan değerin, programlanabilir parçacığın tüm metnine göre birden çok yerde çoğaltılması gerektiğini belirtmesine olanak tanır. Önceki örnekte, adlandırılmış yer tutucu first_namebu kullanıma bir örnektir.

Yer tutucu dönüşümü

Bu, kullanıcının bir yer tutucu için sağlanan bir veya daha fazla değerin programlanabilir snippet metni içinde başka yerlerde çoğaltılması ve dönüştürülmesi gerektiğini belirtmesine olanak tanır. Örneğin, kullanıcı, snippet'in bir bölümünde bir belge başlığı sağlayabilir ve ilk örnek tamamen büyük harf ve diğer tüm örnekler küçük harf olacak şekilde belge başlığının başka yerlerde tekrarlanması gerektiğini belirtebilir.

Snippet programlama özellikleri

Komut dosyası oluşturulabilir parçacıkları destekleyen uygulamalar için desteklenen programlama özellikleri değişir. Aşağıda, programlanabilir parçacıklar için yaygın olarak uygulanan bazı özellikler sıralanmaktadır.

düz metin

Düz metin, yalnızca programlanamayan "statik" snippet'leri destekleyen uygulamalarda bile bulunan temel bir özellik olsa da, düz metinle çalışmak için programlanabilir snippet'ler de kullanılır.

Bununla birlikte, yaygın bir komplikasyon, programlanabilir snippet'leri destekleyen ortamların genellikle neyin "düz metin" sayıldığı ve neyin "programlama talimatları" olarak sayıldığı arasında ayrım yapmak zorunda olmasıdır. Bu ayrımı daha da karmaşık hale getiren şey, programlanabilir parçacıkları destekleyen uygulamaların hemen hemen her zaman, temel sözdizimi vurgulama veya gömülü komutların yürütülmesi yoluyla birden çok programlama dilinin tanınması için destek içermesidir .

Bu ve diğer nedenlerle, programlanabilir snippet'lerden düz metin yaymak neredeyse her zaman sözdizimi ve sınırlayıcı çakışmalarıyla ilgili sorunlardan kaçınmak için dikkatli olmayı gerektirir .

Sabitler ve değişkenler

Programlanabilir snippet'ler genellikle , kullanıcının çeşitli sabitler veya değişkenlerden herhangi birini seçebileceği, mevcut bir değişken kapsamına veya ad alanına bir bağlama oluşturma yeteneğini içerir . Bunlar, belirli bir makinede oturum açmış olan kullanıcının e-posta adresi, geçerli sistem saati ve tarihi veya bir işlevin çıktı değeri gibi değerleri içerebilir.

Komut dosyası oluşturulabilir snippet'ler genellikle şu anda etkin olan bir veya daha fazla dosyayla ilişkilendirilir. Sonuç olarak, değişkenler ayrıca, geçerli bir düzenleme oturumunda dosyalarla ilgili diğer istatistiklerin yanı sıra dosya adını, imleç konumunu ve üst dizini belirten ortam değişkenlerini ve argümanları da içerebilir .

yorumlanan kod

Komut dosyası yazılabilir parçacıklar, bir veya daha fazla programlama dilinde kodun yürütülmesine izin verebilir . Bu, bir veya daha fazla bağımsız dili veya dilin barındırıldığı uygulamaya özel bir dili içerebilir.

alternatifler

Kod parçacıklarının en temel alternatifi kütüphanelerdeki alt rutinlerdir. Alt programlar , yeniden kullanılabilir bir yazılım kitaplığına dahil edilebilir ve birden çok programlama projesi arasında paylaşılabilir.

Nesne yönelimli programlamadaki tasarım kalıpları ve işlevsel programlama , programcıların her seferinde küçük değişikliklerle farklı kod parçalarına art arda snippet ekleme pratiğinden kaçınmalarına veya azaltmalarına olanak tanıyan tekniklerdir. C ailesindeki dillerde bazen bu amaç için önişlemciler kullanılır.

Ancak bu yaklaşımın dezavantajı, kalıbı veya belgeleri hatırlamanın daha zor olmasıdır.

Yazılım yardımı

2021 itibariyle, insan tarafından okunabilen bir metinden belirli işlevlerin çıkarılmasına ve ilgili kaynak kodu parçacıklarının oluşturulmasına yardımcı olabilecek bazı karmaşık derin öğrenme araçları ortaya çıktı (örn. GitHub Copilot ).

Ayrıca bakınız

Referanslar

Kod parçacıkları örnekleri