¿Existe un estándar para interpretar la sintaxis de las interfaces de función en la documentación de API y, en caso afirmativo, cómo se define?
Aquí hay un ejemplo sobre cómo cambiar el color de un elemento en la guía de secuencias de comandos de JavaScript para Photoshop para la función "fillColor":
fillPath
([fillColor]
[, mode]
[, opacity]
[, preserveTransparency] [, feather]
[, wholePath] [, antiAlias])
¿Cuál es el significado de los corchetes y por qué hay comas entre corchetes? ¿Cómo se relaciona esto con las siguientes llamadas de ejemplo?
myPath.fillPath(myNewColor)
myPath.fillPath(mynewColor, {
mode: RGB,
opacity: .5
})
api
documentation
dbonneville
fuente
fuente
Respuestas:
Entonces, ¿por qué la documentación de la API está escrita de tal manera que confunde a los novatos / hackers / aficionados al bricolaje perennes como yo?
Realmente no está destinado a estar escrito de esa manera. Estoy de acuerdo en que parece no haber facilidad de uso en todas las documentaciones de API. Sin embargo, hay mucho cruce de las
man
convenciones de sintaxis de estilo más antiguas a las convenciones modernas de API / espacio de nombres.Por lo general, el tipo de persona que trabaja con API tendrá alguna experiencia en desarrollo o al menos un 'usuario avanzado'. Estos tipos de usuarios están acostumbrados a tales convenciones de sintaxis y tiene más sentido seguir el documento API que intentar crear nuevos.
¿Hay algún documento misterioso en alguna parte que le diga a la gente cómo leer la documentación de la API?
Realmente no hay un supersekretsyntaxdoc estándar, o RFC, por ahí, sin embargo, hay un archivo de ~ 30 años para el formato de síntesis de página de manual de UNIX que es de uso generalizado.
Algunos ejemplos de esto (y responder a su pregunta) serían:
Casi toda la documentación relacionada con la programación utiliza este tipo de convención de sintaxis, desde Python , páginas de manual , bibliotecas de JavaScript ( Highcharts ), etc.
Desglosando su ejemplo de la API de Adobe
Vemos que
fillPath()
(una función) toma argumentos opcionalesfillColor, mode, opacity, preserveTransparency, feathe, wholePath
oantiAlias
. Al llamarfillPath()
, podría pasar desde ninguno, a todos, esos parámetros. Las comas dentro del opcional[]
significan que si este parámetro se usa además de otros, necesita la coma para separarlo. (El sentido común a veces, seguro, pero a veces algunos lenguajes como VB, ¡necesitan explícitamente esas comas para delinear correctamente qué parámetro falta!). Dado que no enlazó a la documentación (y no puedo encontrarla en la página de secuencias de comandos de Adobe ), realmente no hay forma de saber qué formato espera la API de Adobe. Sin embargo, debería haber una explicación en la parte superior de la mayoría documentación que explique las convenciones que se utilizan en ella.Entonces, esta función probablemente podría usarse de muchas maneras:
Nuevamente, generalmente hay algunos estándares en toda la documentación relacionada con API / programación. Sin embargo, en cada documento, podría haber diferencias sutiles. Como usuario avanzado o desarrollador, se espera que pueda leer y comprender los documentos / marcos / bibliotecas que está intentando utilizar.
fuente
Los documentos API para lenguajes escritos dinámicamente pueden no ser muy significativos si no se escriben con cuidado, así que no se sienta tan mal por ello, incluso el desarrollador más experimentado puede tener dificultades para entenderlos.
Acerca de los corchetes y demás, suele haber una sección de convenciones de código que debería explicar el uso exacto fuera de los ejemplos literales; aunque los diagramas EBNF , Regex y Railroad son casi omnipresentes, por lo que debe estar familiarizado con ellos para comprender la mayoría de las notaciones.
fuente
Los corchetes significan que la propiedad es opcional. Sin embargo, tenga en cuenta que si desea establecer alguna propiedad en el n-ésimo rango, debe declarar propiedades para el líder o declararlas como indefinidas:
fuente
fillPath (mode)
podría estar bien. Si un argumento opcional viene antes que uno no opcional, a menudo significa que la función es lo suficientemente inteligente como para detectar si el argumento opcional se proporcionó o no (por ejemplo, mirando su tipo)Hace un tiempo tuve la misma pregunta y alguien me indicó el formulario Extended Backus – Naur .
Tiene sentido porque la programación se puede utilizar para crear resultados potencialmente ilimitados. La documentación no puede mostrar un ejemplo para todos los casos posibles. Un buen ejemplo de uso común es útil, pero una vez que puede leer la sintaxis subyacente, puede crear su propio código.
fuente