Bu sayfada, temel Blockly'de işlevleri çağırma ve mülklere erişmeyle ilgili en iyi uygulamalar açıklanmaktadır. Bu ilkeler, Blockly için eklentiler oluşturma ve Blockly'yi bağımsız bir uygulamaya entegre etme işlemleri için geçerlidir.
Görünürlük
Core kitaplığındaki görünürlüğü public
, private
veya protected
olarak işaretlemek için TypeScript erişim değiştiricilerini kullanırız.
Bazı mülkler, TsDoc yorumlarında @internal
ile eklenebilir.
Tüm public
ve protected
özellikleri, Blockly web sitesinin Referanslar bölümünde açıklanmıştır. Kodu okuyarak da görünürlüğü kontrol edebilirsiniz.
herkese açık
public
işaretli öğeler herkese açık API'mizin bir parçasıdır. Bir modüldeki görünürlük değiştiricisi olmayan tüm mülkler herkese açık olarak kabul edilir.
Herkese açık API'mizi sık sık veya geçerli bir neden ve uyarı olmadan değiştirmemeye çalışıyoruz. İstisna: Yeni bir API'yi bir sürümde herkese açık hale getirebilir ve erken geri bildirimlere yanıt olarak sonraki sürümde değiştirebiliriz. Bu sürenin ardından herkese açık işlev veya mülkü kararlı olarak kabul edebilirsiniz.
Herkese açık işlevler her yerden çağrılabilir ve imza değişmediği sürece alt sınıflarda geçersiz kılınabilir.
protected
Korunan işlevlere ve özelliklere yalnızca tanımlayan sınıf veya bir alt sınıf erişebilir.
Alt sınıfların, tür imzalarını değiştirmeden korunan işlevleri ve özellikleri geçersiz kılmasına izin verilir.
Örneğin, temel oluşturma sınıfını genişleten özel bir oluşturma aracı, sınıfın korumalı özelliklerine erişebilir.
Her durumda, işlevin veya özelliğin kodun geri kalanında nasıl kullanıldığını anladığınızdan emin olmalısınız.
gizli
Bunlara yalnızca tanımla aynı dosyada bulunan kod tarafından erişilebilir. Bu mülklere doğrudan erişmek, tanımlanmamış davranışlara neden olabilir.
Alt sınıfların gizli işlevleri ve özellikleri geçersiz kılmasına izin verilmez.
Gizli mülkler, Blockly'nin herkese açık API'sinin bir parçası olarak kabul edilmediğinden uyarı verilmeden değiştirilebilir.
Blockly'deki bazı işlevler, modüllerinden dışa aktarılmadıkları için görünürlük ek açıklamalarına sahip değildir. Bu işlevler temel olarak yerel değişkenlerdir ve tanımlayan modülleri dışında kullanılamaz. Bunlar, özel mülklerle eşdeğer kabul edilmelidir.
internal
Dahili işlevler ve mülkler, temel kitaplıkta kullanılmak üzere tasarlanmıştır ancak harici olarak kullanılamaz. Bunlar, TsDoc @internal
ek açıklamasıyla belirtilir.
Dahili mülkler, Blockly'nin herkese açık API'sinin bir parçası olarak kabul edilmediğinden uyarı yapılmadan değiştirilebilir.
Dahili özelliklere çekirdekteki herhangi bir yerden erişilebilir ve imza değişmediği sürece çekirdekteki alt sınıflarda geçersiz kılınabilir. Temel kitaplığın dışından erişilmemelidir.
desteği sonlandırıldı
@deprecated
işaretli öğeler kullanılmamalıdır. Desteği sonlandırılan özelliklerin çoğu, konsol uyarısında veya TSDoc'ta tercih edilen kodla ilgili talimatlar içerir.
Desteği sonlandırılan işlevler mümkün olduğunda, amaçlanan silme tarihini ve çağrılacak yeni işlev önerisini içeren bir uyarı günlüğe kaydeder.
SSS
Aşağıda, Blockly ekibinin karşılaştığı bazı sık sorulan sorular yer almaktadır.
Kullanmak istediğim işlev herkese açık değilse ne olur?
Temel Blockly'de özellik isteği gönderin. Kullanım alanınızı açıklayın ve herkese açık olarak yayınlamamızı istediğiniz bilgileri belirtin.
Bu özelliği, raporun herkese açık olup olmayacağını veya aynı bilgileri almanızı sağlayacak başka yöntemler olup olmadığını görüşmek için istekte bulunmak üzere kullanırız.
Bu özelliği herkese açık hale getirmeye karar verirsek siz veya Blockly ekibi gerekli değişikliği yapar ve bu özellik bir sonraki Blockly sürümünde kullanıma sunulur.
Bir eklentide herkese açık olmayan bir üye kullanmayı seçerseniz eklentinizi beta olarak işaretleyebilir ve bilgileri README
dosyanıza ekleyebilirsiniz.
Monkeypatching ne olacak?
Monkeypatching hakkında bilgi edinin.
Blockly API'nin herkese açık olmayan parçalarının kullanılması nedeniyle, yamalar bildirimde bulunulmadan çalışmayı durdurabileceğinden, kod değiştirme işlemi güvenli değildir. Kodunuz aynı kodu monkeypatch yapan diğer eklentilerle kötü bir şekilde etkileşime geçebileceğinden, eklentiye yamalar eklemek özellikle tehlikelidir. Bu nedenle, uygulamalarda ve üçüncü taraf eklentilerinde kod değiştirmeyi kesinlikle önermeyiz ve birinci taraf eklentilerinde bu yöntemi kabul etmeyiz.
Herkese açık işlevleri geçersiz kılabilir miyim?
Alt sınıf oluşturma işleminde: evet. Aksi takdirde: Hayır, bu bir monkeypatching işlemidir.
Korunan işlevleri geçersiz kılabilir miyim?
Alt sınıf oluşturma işleminde: evet. Aksi takdirde: Hayır, bu bir monkeypatching işlemidir.
Dahili veya özel işlevleri geçersiz kılabilir miyim?
Hayır, bu bir monkeypatching.
Mülklere ne zaman doğrudan erişebilirim? Ne zaman alıcı veya ayarlayıcı kullanmalıyım?
Bir alıcı veya ayarlayıcı yayınlarsak lütfen doğrudan mülke erişmek yerine bunu kullanın. Mülk herkese açık değilse kesinlikle alıcı ve ayarlayıcıları kullanın.
Bir mülkte ek açıklama yoksa ne olur?
Varsayılan olarak herkese açıktır ancak sizin için bir alıcı/ayarlayıcı çifti oluşturmak isteyebilirsek lütfen bize bildirin.
Bir işlevin ek açıklaması yoksa ne olur?
Bu sayfa varsayılan olarak herkese açıktır.
Hâlâ emin değilsem ne yapmalıyım?
Forumda soru sorduğunuzda birkaç gün içinde size dönüş yaparız.