Ayuda SAP

HardCode Vs funciones

Bienvenidos a la eterna lucha entre el hardcode y los códigos
funcionales.

Muchas personas tildan de malos programadores a aquellos que hacen
uso del hardcode cual si fuese un error en sí mismo, aun y cuando este trozo de
código es admitido por el lenguaje.

Programar con funciones parece ser un poco más factible para el
negocio mismo, aunque este tome más tiempo, puesto que serán necesario crear
mantenimientos y un mejor análisis de la nueva transacción.

Para el leguaje abap se han incluido un sin número de buenas
prácticas incluyendo la programación orientada a objetos, pero por su origen
estructurado aún está lejos de ser un lenguaje OO plenamente utilizable, y es
que a la hora de realizar consultas y reportes no es tan factible modelar las
informaciones cual si fuesen objetos porque aumenta el tiempo de desarrollo.

Entonces que es el hardcode? Es escribir código en cadena de
caracteres que se tomaran tal cual fueron escritos.

Como punto a favor de esta práctica está el factor prisa, en
ocasiones el negocio requiere un cambio drástico pero para de inmediato, y como
se puede ser eficiente si empezamos a crear todo un caso de uso, los
programadores experimentados recurren al hardcode y entregan la solución en
menos de lo que canta un gallo.

Como punto en contra, está la idea de inmutabilidad que adquiere el
sistema al usar este método, por lo tanto cada detalle requerirá de una
intervención ABAP para poder ser efectuada y en el peor de los casos el
programador terminaría trabajando de la mano al usuario, entre modificaciones y
usabilidad.

En mi opinión no juzgo a quien use hardcode o a quien no lo haga, al
final el negocio no usa los códigos como tal, solo necesita que el sistema
funcione, y si este cumple con su propósito no importa el medio, entonces
estará más que perfecto.

Att: El escritor del limbo.

2 Me gusta

El escritor del limbo aporta muchas ideas salidas de su prodigiosa mente, así que te doy un aplauso :clap: :clap: :clap:

En mi día a día me voy encontrando con hardcode que se había ido poniendo en los desarrollos. Por mi parte, debe ser que nos enseñaron así y que algún cliente lo penalizaba, intento no escribir hardcode aunque en ocasiones, eliminar todo el hardcode resulta una labor extremadamente ardua y penosa.

Es cierto que para los mensajes y las salidas con write, si que creo los símbolos de texto correspondiente cuando comienzo un desarrollo y el hardcode que voy encontrando lo voy sustituyendo por dichos símbolos.

Pero ¿voy a cambiar todo el hardcode de los campos de un batchinput ? Pues me da una pereza indescriptible.

2 Me gusta

Muy buen tema para debatir !!!

Oye no se, yo nunca he visto con buenos ojos los hardcode pero yo creo que aqui en abap por ser un tema de negocios creo que a veces es mas pasable aplicarlos…por lo menos mi experiencia y comentarios, sap en venezuela lo configuran y hacen cada cosa loca (aqui todo es una trampa) que el configurador y el abap, terminamos haciendo cada loquera jajajajaja y a veces aplicamos el hard code durisimoooooooo por que ?? por lo mismo que comenta @smota, si hacemos alguna otra solución, poniendo una tabla de configuración o algo que el usuario tenga que hacer mantenimiento, eso se pierde en el tiempo así que terminamos haciendo el harcode…porque es tan “trampa” es el beneficio tal es lo admisible para tal área o tal sociedad o si el supervisor autoriza y ustedes se imaginaran jajajajajaja.

Lo de los símbolos de texto es una hardcode mas decente a mi forma de ver igual que las constantes, es mas admisible ver ese tipo de hardcode porque son uso de las “buenas practicas” pero a mi forma de ver igual hacemos hardcode

1 me gusta

Para mí, es tan hardcode una constante como una cadena de caracteres directa en el código. Hay que saber diferenciar también entre qué tipo de cadenas son realmente hardcode y cuales no. Yo considero hardcodes todas las cadenas de caracteres que tengan una relevancia externa dentro del código: tipos de documento, unidades organizacionales (centros, sociedades, organizaciones de venta y compra,…), códigos de cliente y proveedor… Es decir, todo lo que sea transparente para el usuario final. Pero luego hay otra clase de cadenas de caracteres que podemos implementar, que son más internas de SAP. Se me ocurre, por ejemplo, códigos de status, valores que identifican tipos de documento (como los de la tabla VBFA para identificar cada documento del flujo), códigos de tipo de interlocutor… Este último tipo de cadenas de caracteres, yo las mantendría tal cual en el código, mientras que la primera siempre trato de llevarlo a tabla de hardcodes, a pesar del esfuerzo adicional que supone.

Otra cosa son las exigencias del cliente. Hay clientes que penalizan todo tipo de cadenas de caracteres, y los hay que dejan “barra libre” de hardcodes. Personalmente pienso, como he explicado, que hay cosas que son hardcodes y otras no, dependiendo del tipo de valor que se necesite usar en el código.

El mayor beneficio de un buen uso del hardcode es una mejora en la mantenibilidad y limpieza de los programas.

2 Me gusta