Articulo de referencia

Código estándar

En programación informática, el código repetitivo , o simplemente código repetitivo , son secciones de código que se repiten en múltiples lugares con poca o ninguna variación. A...

En programación informática, el código repetitivo , o simplemente código repetitivo , son secciones de código que se repiten en múltiples lugares con poca o ninguna variación. Al usar lenguajes considerados verbosos , el programador debe escribir mucho código repetitivo para lograr solo funcionalidades menores. [ 1 ]

La necesidad de código repetitivo se puede reducir mediante mecanismos de alto nivel como la metaprogramación (que permite que el ordenador escriba automáticamente el código repetitivo necesario o lo inserte en tiempo de compilación ), la convención sobre configuración (que proporciona buenos valores predeterminados, reduciendo la necesidad de especificar los detalles del programa en cada proyecto) y la ingeniería dirigida por modelos (que utiliza modelos y generadores de modelos a código, eliminando la necesidad de código repetitivo manual).

También es posible trasladar el código repetitivo a una clase abstracta para que pueda ser heredado por cualquier número de clases concretas . Otra opción sería moverlo a una subrutina para que pueda ser llamada en lugar de ser duplicada.

Origen

El término surgió del negocio periodístico . Las columnas y otros artículos que distribuían las agencias de prensa se enviaban a los periódicos suscriptores en forma de planchas de impresión preparadas . Debido a su parecido con las planchas metálicas utilizadas en la fabricación de calderas , se las conoció como «planchas de caldera», y el texto resultante, como «texto de caldera». Como las historias que se distribuían mediante planchas de caldera solían ser « de relleno » en lugar de noticias «serias», el término se convirtió en sinónimo de texto repetitivo y poco original. [ 2 ] [ 3 ]

Un término relacionado es el código de contabilidad , que se refiere al código que no forma parte de la lógica de negocio , pero que se intercala con ella para mantener actualizadas las estructuras de datos o gestionar aspectos secundarios del programa.

Preámbulo

Un tipo de código repetitivo consiste en declaraciones que, si bien no forman parte de la lógica del programa ni de la sintaxis esencial del lenguaje , se añaden al inicio de un archivo fuente por costumbre. El siguiente ejemplo de Perl muestra código repetitivo:

#!/usr/bin/env perl use warnings ; use strict ;

La primera línea es un shebang , que identifica el archivo como un script de Perl que se puede ejecutar directamente en la línea de comandos en sistemas Unix/Linux. Las otras dos son pragmas que activan las advertencias y el modo estricto, que son obligatorios según el estilo de programación Perl vigente .

El siguiente ejemplo es una plantilla de lenguaje de programación C/C++ , #includeguard .

#ifndef MI_INTERFACE_H #define MI_INTERFACE_H...#finsi

Esto comprueba y configura una bandera global para indicarle al compilador si el archivo myinterface.h ya se ha incluido. Dado que en la compilación de un módulo pueden intervenir muchos archivos interdependientes, esto evita procesar el mismo archivo de cabecera varias veces (lo que provocaría errores debido a múltiples definiciones con el mismo nombre).

En Java y plataformas similares

En los programas Java , las clases DTO suelen incluir métodos para obtener y establecer variables de instancia. Las definiciones de estos métodos a menudo se consideran código repetitivo. Si bien el código varía de una clase a otra, su estructura es lo suficientemente estereotípica como para que sea mejor generarlo automáticamente que escribirlo manualmente. Por ejemplo, en la siguiente clase Java que representa una mascota, casi todo el código es repetitivo, excepto las declaraciones de Pet , name y owner :

Java

clase pública Mascota { cadena privada nombre ; persona privada propietario ;public Pet ( String name , Person owner ) { this . name = name ; this . owner = owner ; }public String getName () { return nombre ; }public void setName ( String name ) { this . name = name ; }public Person getOwner () { return owner ; }public void setOwner ( Person owner ) { this . owner = owner ; } }

La mayor parte del código repetitivo de este ejemplo existe para cumplir con los requisitos de JavaBeans . Si las variables `name` y `owner` se declararan como públicas , no serían necesarios los métodos de acceso y modificación .

En Java 14, se agregaron clases de registro para combatir este problema. [ 4 ] [ 5 ] [ 6 ]

Para reducir la cantidad de código repetitivo, se han desarrollado muchos frameworks, por ejemplo Lombok para Java. [ 7 ] El mismo código que el anterior es autogenerado por Lombok usando anotaciones de Java , lo cual es una forma de metaprogramación :

@AllArgsConstructor @Getter @Setter public class Pet { private String name ; private Person owner ; }

Scala

En otros lenguajes de programación, es posible lograr lo mismo con menos código repetitivo, cuando el lenguaje cuenta con soporte integrado para construcciones comunes. Por ejemplo, el equivalente del código Java anterior se puede expresar en Scala con una sola línea de código:

case class Pet ( var name : String , var owner : Person )

C / C++

Un guardia de inclusión :

#ifndef MI_INTERFACE_H #define MI_INTERFACE_H...#finsi

DO#

O en C# utilizando propiedades automáticas con campos de respaldo generados por el compilador:

clase pública Mascota { cadena pública Nombre { obtener ; establecer ; } propietario público { obtener ; establecer ; } }

A partir de C# 9.0 existe la posibilidad de utilizar registros que generan clases con propiedades automáticamente:

Registro público Mascota ( cadena Nombre , Persona Propietario );

HTML

En HTML , el siguiente código estándar se utiliza como plantilla básica vacía y está presente en la mayoría de las páginas web:

<!DOCTYPE html> < html lang = "en" > < head > < meta charset = "UTF-8" /> < title > Test </ title > </ head > < body ></body> </html>

El estándar HTML Living Standard de WHATWG define que las etiquetas , y pueden omitirse de forma segura en la mayoría de las circunstancias. [ 8 ] La etiqueta es técnicamente redundante cuando proviene directamente de un servidor web configurado para enviar la codificación de caracteres en un encabezado HTTP, aunque se vuelve útil cuando la respuesta HTML se guarda en un archivo, caché o archivo web. [ 9 ] La guía de estilo HTML/CSS de Google recomienda que se omitan todas las etiquetas opcionales, [ 10 ] lo que resulta en mucho menos código repetitivo. El Consorcio World Wide Web afirma que el elemento no debe estar vacío: [ 11 ]<html><head><body><metacharset="UTF-8">.html<title>

< ! DOCTYPE html > <title> Prueba </title>

Véase también

Referencias

  1. Lämmel, Ralf; Jones, Simon Peyton (2003). «Descarta tu código repetitivo: un patrón de diseño práctico para la programación genérica» . Actas del Taller Internacional ACM SIGPLAN de 2003 sobre Tipos en el Diseño e Implementación de Lenguajes . TLDI '03. Nueva York: ACM . págs. 26–37 . doi : 10.1145/604174.604179 . ISBN  9781581136494. S2CID 9472305 . 
  2. "Boilerplate" . Dictionary.com . Consultado el 27 de enero de 2018 .
  3. "Boilerplate" . Merriam-Webster . Consultado el 27 de enero de 2018 .
  4. "Clases de registro" . docs.oracle.com .
  5. «JEP 395: Récord» . openjdk.org .
  6. Evans, Ben (01/11/2020). "Los registros llegan a Java" . blogs.oracle.com .
  7. Frankel, Nicolas (2009-12-07). "Lombok reduce tu código repetitivo" . DZone.com . Consultado el 2017-08-02 .
  8. "Estándar HTML - La sintaxis HTML - Etiquetas opcionales" . WHATWG . 5 de mayo de 2017. Consultado el 5 de mayo de 2017 .
  9. "¿Es necesaria la etiqueta meta charset con HTML5?" . stackoverflow.com . Consultado el 5 de mayo de 2017 .
  10. "Guía de estilo HTML/CSS de Google" . google.github.io . Consultado el 5 de mayo de 2017 .
  11. "La página HTML tiene un título no vacío" . www.w3.org . Consultado el 22 de julio de 2021 .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Boilerplate_code&oldid=1345293748 "