trabajo programación open mega español ejemplos curso completo codificación sap abap

sap - programación - Vista en helicóptero de ABAP



sap abap programación-curso completo mega (2)

No sé nada de ABAP, aparte de que tiene un lado OO, y me gustaría tener algún tipo de vista en helicóptero antes de comenzar a verlo en detalle. Sé que puedo encontrar todo esto cuando lo estudio, pero como dije para empezar, me gusta saber a qué me refiero.

  • ¿Está (siempre) compilado?
  • Typestem: ¿Está fuertemente tipado? ¿Utiliza inferencia tipo?
  • Herencia: estructuras individuales / múltiples, similares a las interfaces
  • Colecciones: ¿tiene colecciones aparte de las matrices? ¿Tiene colecciones genéricas? ¿Utiliza la comprensión de la lista?
  • ¿Qué hay de la variación (con / contra / in) en arreglos, retornos, parámetros y sobrescrituras?
  • Cualquier Exceptionhandling?
  • ¿Alguna construcción en el diseño por contrato de soporte?
  • ¿Algo notable como opuesto a otros lenguajes bien conocidos?
  • ...

¡Cualquier información general sobre las características, básicamente, sería bienvenida!


¿Está (siempre) compilado?

ABAP se "compila" en una especie de código de bytes (llamado "carga" por razones históricas) que luego es ejecutado por una máquina virtual dentro del kernel. Puede comparar esto con Java, con una gran diferencia: la carga no es independiente de la máquina, sino que está optimizada para el tipo de máquina objetivo. Esto significa que en un entorno de sistema con varios tipos diferentes de servidores de aplicaciones, puede tener múltiples cargas precompiladas para un solo programa. No es que nunca veas nada de esto: todo el proceso de compilación se maneja automáticamente.

Typestem: ¿Está fuertemente tipado? ¿Utiliza inferencia tipo?

Fuertemente escrito con un sistema de tipos genéricos en la parte superior. Tenga en cuenta que hay un diccionario de datos completo que está integrado en el idioma, muy útil.

Herencia: ¿único / múltiple, estructuras tipo interfaz?

Herencia única. Las interfaces son compatibles, incluidas las interfaces compuestas y el cambio de nombre de componentes de implementación (dos interfaces IF_FOO e IF_BAR pueden definir un método BAZ, y una clase que implemente ambas interfaces tendrá dos métodos IF_FOO ~ BAZ e IF_BAR ~ BAZ).

Colecciones: ¿tiene colecciones aparte de las matrices? ¿Tiene colecciones genéricas? ¿Utiliza la comprensión de la lista?

Lo que usted conoce como "matriz" en otros lenguajes de programación realmente no existe en ABAP; generalmente usará las denominadas "tablas internas". Piensa en tablas estructuradas en memoria similares a las de una base de datos. Hay algunas ideas de clases de recopilación distribuidas a través de diferentes módulos, pero la forma canónica de hacerlo es usar tablas internas: defina un tipo de tabla llamado de líneas que representa referencias a instancias o estructuras que contienen dicha referencia.

¿Qué hay de la variación (con / contra / in) en arreglos, retornos, parámetros y sobrescrituras?

Arrays: ver arriba. Anulación: no puede cambiar la firma del método al implementar el método de interfaz o anular los métodos de superclase. En cuanto a los parámetros, eso depende de si transfiere datos (o referencias de datos) o referencias a objetos. En general, la revalorización puede ocurrir implícitamente mientras que usted debe realizar el downcasting explícitamente.

Cualquier Exceptionhandling?

Sí. Más de una forma: nuevamente por razones históricas (compatibilidad con versiones anteriores). Las excepciones basadas en clase son compatibles.

¿Alguna construcción en el diseño por contrato de soporte?

Ninguno de lo que sea consciente.

¿Algo notable como opuesto a otros lenguajes bien conocidos?

Un montón de cosas. Es posible que desee consultar http://www.volker-wegert.de/en/node/17 y http://www.volker-wegert.de/en/node/21 para obtener una visión claramente sesgada :-)


Trataré de proporcionar algunas cosas que la respuesta anterior no tiene, al omitir lo que mencionaron:

¿Está (siempre) compilado?
Bueno, la interfaz para el programador dice "Activar", no compilar, pero eso se debe a que está integrado en la administración de versiones. Cuando activa algo, lo compila y convierte las versiones fuente y binaria en la versión "activa". Si alguien intenta ejecutar una fuente que no está compilada, se compilará automáticamente a medida que la ejecute.

Typestem: ¿Está fuertemente tipado?
Básicamente sí. ABAP es como una extraña cruz entre Pascal y COBOL. Hay "Símbolos de campo", que son como punteros. También hay ahora tipos genéricos. (Y punteros de campo genéricos). Una de las mejores cosas es que no hay diferencia entre los tipos de ABAP y los tipos de bases de datos. Cualquier tabla que hagas se convertirá automáticamente en un tipo de estructura. Es decir, ABAP está integrado con la base de datos de una manera que casi no lo es en otros idiomas. También puede escribir SQL, que en realidad es parte de ABAP, en lugar de ser solo una cadena, como en otros idiomas.

Herencia: estructuras individuales / múltiples, similares a las interfaces
Hay estructuras de interfaz, generalmente no las uso. Si hicieras muchas clases reutilizables, sería una buena idea, sin embargo.

Colecciones: ¿tiene colecciones aparte de las matrices? ¿Tiene colecciones genéricas? ¿Utiliza la comprensión de la lista?
Mejor, tiene "Tablas internas", que son básicamente un tipo de matriz dinámica. Se pueden declarar de casi cualquier tipo, incluidos los que están en el diccionario de datos. Se pueden enlazar, clasificar, etc. Hay varios tipos, incluyendo variantes ordenadas y ordenadas.

¿Algún manejo de excepciones?
Ambos tipos de OOP y no OOP.

¿Algo notable como opuesto a otros lenguajes bien conocidos?
Como dijo el otro cartel, mucho. Es muy bueno en todo lo relacionado con las operaciones de la base de datos y la reutilización de estructuras complejas y tipos de datos. Por supuesto, es una base de datos cruzada y multiplataforma (sistema operativo y procesador). Tiene un muy buen sistema de gestión y transporte de versiones. Todo el sistema SAP tiene muy buen soporte en varios idiomas. Puede obtener pantallas simples con títulos apropiados y cuadros de selección automáticamente, lo que significa que puede hacer menos programación y más trabajo. No es necesario mapear entre tipos de DB y tipos de idiomas, etc.
Cosas en las que no es bueno:
1. Los números se almacenan típicamente como ASCII, esto hace que sea menos rápido en matemáticas en muchas aplicaciones.
2. La mayoría de las estructuras de datos están muy normalizadas, lo que significa que sus datos pueden distribuirse en 50 tablas a veces. Las consultas "estrella" son muy comunes. Las funciones integradas para recuperar datos (fe Logical Databases) son su amigo en esos casos.
3. SAP intentó ser todo para todos, por lo que hay muchas opciones de configuración, etc., y algunas veces una función no hace lo que usted esperaba en función del comportamiento anterior.
4. ABAP es a veces muy detallado. Intenta usar el botón "patrón" en algo simple como GUI_DOWNLOAD.
5.SAP fue muy ambicioso con lo que asumieron, y por lo tanto se topó con limitaciones de hardware, sistemas operativos y sistemas RDBM desde el principio. Por lo tanto, tienen kludges heredados para tratar con eso que no son bonitos. (Tablas de billar, tablas de grupos, etc.)
6. Cuando activa un programa, no realiza una comprobación de compatibilidad completa con los módulos de función utilizados. Hay situaciones en las que algo se activará sin problemas, pero luego se bloqueará en el tiempo de ejecución, incluso en los casos en que podría haber sido capturado en tiempo de compilación.