Öyleyse neden API belgeleri benim gibi çok yıllık yeni gelenleri / bilgisayar korsanlarını / Kendin Yapçıları karıştıracak şekilde yazılıyor?
Gerçekten bu şekilde yazılması gerekmiyor. API belgelerinde kullanım kolaylığı olmadığını kabul edeceğim. Bununla birlikte, eski man
stil sözdizimi kurallarından modern API / ad alanı kurallarına pek çok geçiş vardır.
Tipik olarak, API ile çalışan kişinin türü, geliştirme konusunda biraz geçmişe veya en azından bir 'uzman kullanıcı' olacaktır. Bu tür kullanıcılar, bu tür sözdizimi kurallarına alışkındır ve yenilerini oluşturmaya çalışmaktan ziyade API belgesinin izlemesi daha mantıklıdır.
Bir yerlerde insanlara API belgelerini nasıl okuyacaklarını söyleyen gizemli bir belge var mı?
Herhangi bir yerde herhangi bir standart veya RFC süperekretsyntaxdoc yoktur, ancak yaygın olarak kullanılan UNIX kılavuz sayfası sentez formatı için ~ 30 yıllık bir dosya vardır .
Bunun bazı örnekleri (ve sorunuzu yanıtlamak) şunlar olabilir:
Altı çizili sözcükler değişmez olarak kabul edilir ve göründükleri gibi yazılır.
Bir bağımsız değişkenin etrafındaki köşeli parantezler ([]), bağımsız değişkenin isteğe bağlı olduğunu gösterir.
Elipsler ... önceki argüman-prototipin tekrar edilebileceğini göstermek için kullanılır.
Eksi işaretiyle başlayan bir argüman, bir dosya adının görünebileceği bir konumda görünse bile, genellikle bir tür bayrak argümanı anlamına gelir.
Python'dan , kılavuz sayfalarından , javascript kitaplıklarından ( Highcharts ) vb. Programlama ile ilgili neredeyse tüm dokümantasyon bu tür sözdizimi kurallarını kullanır .
Örneğinizin Adobe API'den ayrılması
fillPath
([fillColor]
[, mode]
[, opacity]
[, preserveTransparency] [, feather]
[, wholePath] [, antiAlias])
Biz görüyoruz fillPath()
(bir işlevi) İsteğe bağlı argümanlar alır fillColor, mode, opacity, preserveTransparency, feathe, wholePath
veya antiAlias
. Çağırarak fillPath()
, bu parametrelerin hiçbirinden hiçbirine, hiçbirine geçemezsiniz. İsteğe bağlı içindeki virgül, []
bu parametrenin diğerlerine ek olarak kullanılması durumunda ayırmak için virgül kullanmanız gerektiği anlamına gelir. (Sağduyu bazen, elbette, ama bazen VB gibi bazı diller, hangi parametrenin eksik olduğunu doğru bir şekilde tanımlamak için bu virgüllere açıkça ihtiyaç duyar!). Belgelere bağlantı vermediğiniz için (ve bunu Adobe'nin komut dosyası oluşturma sayfasında bulamadığım için ) Adobe API'nin hangi formatı beklediğini bilmenin bir yolu yok. Ancak, belgelerin çoğunun üst kısmında, içinde kullanılan kuralları açıklayan bir açıklama bulunmalıdır .
Bu nedenle, bu işlev muhtemelen birçok şekilde kullanılabilir:
fillPath() //Nothing passed
fillPath(#000000,RGB) // Black, in RGB mode
fillPath(#000000,RGB,50) // Black, in RGB mode, half opacity
//Now it gets tricky, this might ALSO be acceptable:
fillPath(#000000,50) // Black, no mode, half opacity
//OR
fillPath(#000000,,50) // Black, no mode, half opacity
Yine, API / programlama ile ilgili tüm belgelerde genellikle bazı standartlar vardır. Ancak her belgede ince farklılıklar olabilir. Uzman bir kullanıcı veya geliştirici olarak, kullanmaya çalıştığınız belgeleri / çerçeveleri / kitaplıkları okuyup anlayabilmeniz beklenmektedir.