You are on page 1of 5

CARRERA

INGENIERÍA EN TECNOLOGÍA DE LA INFORMACIÓN

TEMA

“ESTÁNDARES DE IMPLEMENTACIÓN, BUENAS PRACTICAS DE


PROGRAMACIÓN.”

ASIGNATURA

“PROGRAMACIÓN ORIENTADA A OBJETOS”

AUTOR(ES)

BARRAGÁN INTRIAGO JONATHAN ALEXANDER

FECHA

05 – 07 – 2018
1. Tema: Estándares de implementación, buenas prácticas de programación.

2. Introducción:
Cuando se codifica una aplicación software, existe un número
potencialmente infinito de programas que satisfacen los mismos requisitos. Sin
embargo, no todos estos programas comparten los mismos atributos de calidad.
Es decir, no todos son iguales de eficientes tanto en consumo de procesador como
de memoria; no todos son igual de legibles; no todos son igual de fáciles de
modificar; no todos son igual de fáciles de probar y verificar que funcionan
correctamente, etc.
La labor de un Ingeniero Informático o Ingeniero Software no es solamente
crear aplicaciones software que funcionen correctamente, sino que además debe
crear aplicaciones software robustas, eficientes, fáciles de mantener y un largo
etcétera de propiedades extras. Muchas personas están capacitadas para codificar
aplicaciones software pero un número bastante más reducido de ellas están
capacitadas para hacerlo conforme a los parámetros de calidad que se espera de
un titulado superior en Informática. Hoy en día es muy fácil aprender a programar
por cuenta propia, dado la amplia cantidad de información disponible a través de
internet y la multitud de cursos que se ofertan.
El presente documento de investigación tiene como objetivo dar a conocer
las buenas prácticas de programación y el código limpio para poder así
implementarlas y tener una mejor estética de nuestro código de programación para
que así sea entendible y en caso de algún tipo de problema podamos llegar
encontrar el fallo de una manera más ágil y así poder ser más productivo al
momento de realizar nuestros códigos de programación.

3. Objetivos
3.1. General: Conocer las buenas prácticas de investigación, atributos de calidad
de código y código limpio mediante la investigación correspondiente para
obtener un mejor conocimiento y poder ponerlo en práctica.

4. Contenido/Desarrollo:

CÓDIGO LIMPIO
Todo código debe revelar de forma clara su intención, y si el método
constructor es en el que nos basamos para construir la clase, entonces el mismo
debe revelar la intención de la clase, si no de manera específica, debe darnos ideas
a groso modo que luego podemos explorar a detalle. De esta forma, debemos
tomar en consideración que nuestro código esta hecho no solo para ser ejecutado
sino también para ser leído e interpretado, y cada método/procedimiento/función
sirve un propósito que varía según el tipo de orientación pero que igual debe
expresarse de forma clara. (González, 2015).
De esta forma cuando un código, sin importar el lenguaje en el que se
escriba o la orientación que reciba (objeto, procedimental o funcional), expresa
claramente sus propósito e intenciones recibe el nombre de Código Limpio, y a la
práctica de desarrollar el mismo se le conoce como Programación Limpia.
ESTÁNDARES DE IMPLEMENTACIÓN, BUENAS PRÁCTICAS
DE PROGRAMACIÓN.
 Declaración de clases e interfaces empleando la nomenclatura de camel-case.
 Declaración de paquetes con todas las letras en minúsculas.
 Declaración de métodos y variables empleando la nomenclatura camel-case, con
la excepción de ser la primera letra de la primera palabra en minúscula.
 Declaración de constantes con todas las en mayúsculas separando cada palabra
con guiones bajos.
 Empleo de variables, métodos y clases descriptivas y significativas, en lugar de
emplear comentarios en todos lados.
 Las clases y funciones deben de ser pequeñas y hacer una sola cosa, evitar duplicar
código.
 Los métodos no debes de consumir paramentos a diestra y siniestra, siempre tratar
en enviar objetos que contengan los datos con los cuales va a trabajar el método.
 Uso de una plantilla como formato de codificación, todo el equipo debe tener
acceso a dicha plantilla.
 Declarar variables con el menor nivel de acceso posible (solo en dentro del método
que trabaja con la variable).
 Evitar la declaración de variables que solo se emplean una vez en el código.
 Eliminar código innecesario, obsoleto y/o comentado por completo.
 No usar System.out.println (""); para la "creación" de logs, siempre usar un 😀
Framework adecuado para el logback.
 Hacer clases finales y de objetos inmutables para el uso seguro de hilos.
 Restringir el acceso a paquetes, clases y miembros de clase cuando sea posible,
empleando los modificadores de acceso private, protected, (default), public.
 Uso de interfaces para la implementación de clases.
 Uso correcto de los tipos de datos.
 Implementar de manera correcta la sobre escritura de los métodos equals,
hashCode, toString.
 Evitar la aparición de nullPointerException dentro del código, devolviendo
colecciones vacías o empleando excepciones cuando el resultado sea nulo (null).
 Siempre manejar las excepciones, emplear las excepciones en lugar de regresar
códigos de respuesta.
 No presentar en los logs información sensible.
 Liberar recursos siempre que no sean requeridos.
 No mostrar información sensible al momento que ocurra una excepción.
 Reusar objetos como se recomienda en el patrón de diseño "flyweight".
ATRIBUTOS DE CALIDAD DE CÓDIGO.
Disponibilidad: Es el tiempo que el sistema estará disponible para los usuarios.
Eficiencia: es el atributo que dice cómo el sistema utiliza el equipo (procesador,
espacio en disco, memoria, ancho de banda, etc.). Si un sistema consume muchos
recursos su rendimiento de ve afectado y por ende el usuario.
Flexibilidad: es la medida que dice cuan fácil es agregar nuevas capacidades al
sistema.
Integridad: Es el atributo que habla de la seguridad de datos y sistema, accesos
no autorizados, pérdida de información, protección contra virus, privacidad y
seguridad de los datos.
Interoperabilidad: mide cuan fácil el sistema puede intercambiar datos o
servicios con otros sistemas.
Confiabilidad: Mide la probabilidad de que el software se ejecute sin errores por
un periodo de tiempo.
Robustez: Es la medida que dice el grado en el cual el sistema continua operando
con propiedad luego de una entrada inválida, defectos en la conexión o
condiciones inesperadas.
Usable: Mide el esfuerzo requerido para preparar entradas, operaciones o para
interpretar salidas del producto. Se refiere a que tanto el sistema es “amigable”
con el usuario.
Mantenimiento: Indica cuan fácil es corregir un defecto o realizar una
modificación al sistema.
Portabilidad: Mide el esfuerzo requerido para migrar una parte del software de
un ambiente operacional a otro.
Reusabilidad: Indica el esfuerzo para reutilizar un componente de un sistema en
otro.
Comprobable: se refiere al esfuerzo que se hace para buscar errores.

5. Conclusiones:

El código limpio trata de construir un programa o aplicación de la mejor manera


posible de forma que pueda ser fácil de entender, modificable y escalable. Que
un programa funcione o haga que lo tenga que hacer no quiere decir que esté
bien construido. Si no tenemos un código limpio tendríamos que hacer algo
rápidamente para solucionarlo ya que los problemas serán mayores a medida que
pase el tiempo. Básicamente nos encontraremos con problemas de productividad
y costes más elevados a la hora de modificar y mantener el software.
6. Referencias:

González, J. (2015). Qué es el Código Limpio? Obtenido de:


https://mondongorongo.wordpress.com/2015/01/21/que-es-el-codigo-
limpio/
Samperio Gómez, P. (2017). Buenas prácticas para un código limpio en Java.
Obtenido de: http://javaconfigmx.blogspot.com/2017/12/buenas-
practicas-para-un-codigo-limpio.html
Ortiz, G. sophia.javeriana. Obtenido de:
https://sophia.javeriana.edu.co/~cbustaca/docencia/DEAS-2017-
01/exposiciones/portabilidad.pdf

You might also like