Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15 Días
5 Hrs
19 Min
9 Seg

Código reutilizable

7/26
Recursos

Escribir código reutilizable nos va a ayudar a que en lugar de copiar y pegar una misma línea de código pero con diferentes parámetros lo hagamos a través de una función que retorne los valores que necesitamos y luego la podremos llamar en cualquier lugar del código que necesitemos pasándole los parámetros que deseamos.

Aportes 48

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Acá te dejo unos tips para hacer un buen código reutilizable:

  1. Mantén tu código DRY (O SECO, en español). Es decir “Don’t Repeat Yourself” (O “No te repitas”)
  2. Haz métodos o funciones que hagan solamente una cosa.
  3. Haz pruebas unitarias para tus métodos y que sean fáciles de testear
  4. Trata de pensar de forma abstracta, usa interfaces o clases abstractas
  5. Escribe código que se pueda extender fácilmente en un futuro (Básicamente que modificarlo no signifique prenderle fuego a medio código)
  6. No escribas código innecesario o que no hace falta en el momento.
  7. Reduce el acoplamiento (Acoplamiento hace referencia a que, el comportamiento de una función depende enteramente de lo que retorne otra función, y esta de otra, y otra, y otra…)
  8. Usa más código modular.
  9. Escribe tu código como si fuera una API externa (Que se pueda importar de otro código y sirva completamente)

Recién empiezo a programar y es bueno saber que estaba haciendo mal en utilizar “copy & paste” antes de que sea tarde y lo agarre como costumbre.

Esto lo explica Freddy en el curso de introducción a la programación, la premisa es simple:

“Si algo se repite mucho y los cambios son mínimos, lo mejor es meterlo en una función”

Hay casos que son excepción, donde el código se repite pero no siempre se puede meter en una función.

El copy & paste es nuestro peor enemigo, hay que tenerlo en cuenta.

Código reutilizable


La idea del código reusable nace de la necesidad de Don´t repeat yourself o mejor conocido como DRY. Este nos ayudará a prevenir bugs y también, encontrar los más fácil.

⚠ Copiar código será tu peor enemigo para tener un código fácil de mantener

De manera resumida, duplicar código no es bueno porque:
Aumenta innecesariamente el número de líneas de código, y está comprobado que a más líneas de código (no necesarias) más complejo es el mantenimiento y más rápidamente crece la entropía.
Implica que si hay que cambiar ese código repetido… hay que cambiarlo en muchos sitios. Hay que buscar todas las repeticiones. Y si se nos olvida cambiarlo en algún sitio… el software acaba siendo incoherente, “diciendo” cosas diferentes para la misma funcionalidad requerida. Por ello baja la productividad y aumenta la probabilidad de error.
Normalmente un problema de duplicación de código esconde un problema de, o de falta de, diseño software.

¿Por qué copy pastear código es malo?

Al escribir codigo reutilizable nos ayuda a eliminar el codigo repetido y a mejorar la calidad de codigo generado.

El ejemplo es muy claro. Normalizar los facilitaría realizar cambios al código de una forma mas optima y en menor tiempo.

eso de normalizar es muy importante, esta clase estuvo sencilla y de lujo.

Normalmente separa cada acción en una función pero tengo vario código que puedo reutilizar encapsulando las funciones, buen aporte, también leí que el numero de parámetros a pasar a una función de preferencia es 1 o 2, máximo tres, si se requieren mas, lo ideal es mandar un parámetro como arreglo.

Nota de la clase: poder escribir código posible de utilizar en diferentes ocasiones, se necesita que el código sea muy claro y aplicable en diferentes escenarios ya que puede recibe parámetros, evitar el copiar y pegar, pues se arrastran código erróneo o innecesario.

Si detectas en tu código, datos quemados o que se repitan, lo mejor es normalizarlos, en PHP lo mas común es crear funciones que reciban valores de parámetros y retornar la solución.

Un pequeño truco; podemos utilizar el argumento …args y un foreach para utilizar nuestra funcion sin importar el numero de argumentos que utilicemos:

		function sanitizarDatos(...$args){
				$datos = [];
				foreach($args as $arg){
						$datos[] = str_replace("?", 'Ñ', $arg);
				}
				return $datos;
		}

Esto puede ser util para nuestra logica en diversos lugares, como aca:

list($empl_num,$nombre, $apaterno, $amaterno,$fecha) = sanitizarDatos($empl_num,$nombre, $apaterno, $amaterno, $fecha); 

Y aca:

list($horae,$horas,$horario) = sanitizarDatos($horae,$horas,$horario);

TIP:
Para tener un codigo mas reutilizables es importante no escribir funciones enormes que implementen toda la lógica de la aplicación, sino programar funciones pequeñas que se centren en problemas concretos, lo mismo con el diseño, seguramente en u futuro nos pediran cambio y es mejor tener 5 funciones de 10 lines que tener una sola de 100.

Concuerdo mucho con lo del copy&paste, ademas de que muchas veces no entendemos al 100% como funciona

Evita repetir código y crea una función que capture y retorne un parámetro

Excelente grandisimo contenido, siempre repasar conceptos de clean code, calistenia, standares, buenas practicas, solid de veras esto junto con POO permiten el cambio de paradigma de un dev de jr a encaminarse a senior, felicidades tio @platzi no me sentia tan representado como PHP Developer, muuuuy contento

El escribir codigo reutilizables sin duda es mejor para comprender bien el código y que este mejor documentado. Pero en el caso especial de trabajar con un pic que tiene un stack limitado ¿no hay existe una forma de modularidad que solo la haga virtual pero en el código máquina la escriba las n veces que se llamó?

Hola profesor Mauro (@mchojrin).

Tengo una pregunta de estilo. He notado que se usan comillas simples y/o dobles en el código (igual ocurre con los tabs y los espacios). Por estilo pienso que se debería definir usar una o la otra. ¿Qué opina al respecto?

Repetir código empeora la mantenibilidad. Cuándo repites el código y tienes que cambiar algo debes ir a todas y cada una de las secciones dónde tu código está repetido para cambiarlo y que no se pierda la nueva funcionalidad que estas trabajando. Evitar reinventar la rueda es primordial para asegurar la mantenibilidad. La reutilización también mejora las posibilidades de testear, entonces la reutilización ayuda a mantener y probar nuestro código.

```js = $workTime, $time); } function validateTime($condition, $time) { return $condition ? $time : '00:00:00'; } function rowNormalize($row) { return array_map(function ($value) { return str_replace("?", 'Ñ', $value); }, $row); } ```

En lo poco que llevo del curso, me alegra saber que aún estos conceptos es posible utilizarlos hoy en día, puesto que son principios de un buen código.

<?php

    // Movimos las funciones abajo
    for ($i = 0; $i < $total; $i++) 
    {
        imprimir_registro();
    }

    // Hicimos una función imprima el registro para modularizar
    function imprimir_registro()
    {
        $rows = oci_fetch_array($rss, OCI_NUM);
        $empl_num = $rows[0];
        $nombre = $rows[1];
        $apaterno = $rows[2];
        $amaterno = $rows[3];
        $fecha = $rows[4];
        $hora = $rows[5];
        $horario = $rows[6];

        // Instancias de la función que hicimos para tener más control y no copy pastear lo mismo
        $empl_num = normalizar($empl_num);
        $nombre = normalizar($nombre);
        $apaterno = normalizar($apaterno);
        $amaterno = normalizar($amaterno);
        $fecha = normalizar($fecha);

        $trabajo = '14:00:00';

        // Asignación rápida de variables con la nueva función que hicimos
        list($horae, $horas) = calcular_horario($hora, $trabajo);

        $horae = normalizar($horae);
        $horas = normalizar($horas);
        $horario = normalizar($horario);

        echo "$empl_num, $nombre, $apaterno, $amaterno, $fecha, $horae, $horas, $horario".PHP_EOL;
    }

    // Función que evita que hagamos mucho copy paste (reutilizar)
    function normalizar($campo)
    {
        return str_replace("?", "Ñ", $campo);
    }

    // Función que nos permite tener el código más estructurado (modularizar)
    function calcular_horario($hora, $trabajo) : array
    {
        if ($hora < $trabajo) 
        {
            $horaentrada = $hora;
            $horae = $horaentrada;
            $horas = '00:00:00';
        } 
        else 
        {
            $horasalida = $hora;
            $horae = '00:00:00';
            $horas = $horasalida;
        }

        return [$horae, $horas];
    }
?>

Codigo Reutilizable

internalizar uno de los conceptos principales del desarrollo de software:

del copy and paste es tu peor enemigo

Que pasa si necesitamos un método que ya existe pero que funcione un poco diferente? Digamos que haga lo que siempre hace pero que valore otras condiciones adicionales? Lo modifico? Mejor No! Mejor lo extiendes, creas un nuevo procedimiento que invoque al anterior pero que además siga valorando otros elementos, así no pierdes la funcionalidad original que podría requerirse idéntica en otros sitios. A menos claro, que la modificación solicitada o recomendad sea exactamente cambiar el comportamiento que se estaba dando por uno nuevo para que todo el sistema se impacte.

Antes hablaste de poner nombre explicativos a las funciones. Aquí usaste una función ‘normalizar’ que reemplaza el ‘?’ por una ‘ñ’. Es muy amplio el nombre de la función ¿normalizar qué?. Lo que se escribe con la mano no se debe borrar con el codo

Hasta aquí llegó mi camino (por ahora), espero pronto pasar la barrera de los videos abiertos 😅😅😅
Me está encantando este curso.

😎👍🏻🦈

Super la explicacion yo usaba mucho copy y paste

Vengo del futuro 😃 para los que estan por primera vez en esta clase.Este tema es un apregunta del examen.

Este caso si me parece bastante útil; sobretodo por que después podríamos utilizar un “switch” y normalizar no solo las “ñ” sino también tildes u otros caracteres.

Un buen programador determina cuales son los problemas y cual es la solución más optima para resolverlos, utilizando librerias creadas por otros programadores para no volver a reinventar la rueda.

OJO, no copiar y pegar.

Si me han dicho que aveces puedo meter cosas que se repiten a funciones

Excelente clase! 😀😀

Que bacano que es reutilizar el codigo 😃

El código ordenado y reutilizable siempre ayuda!

Codigo reutilizable
-El copy paste es malo
-Crear funciones con los mismos parametros que retornen los valores que necesitas en 2 o mas lugares y solo llamar esa funcion, asi se evita el codigo repetido en todo el sistema

Codigo Reutilizable = Escribir solo una vez y llamarlo en todos lados

  1. Codigo reutilizable
    Reutilizar codigo para al momento de cambiar algo, se haga el cambio general y no tener que realizar estos cambios varias veces

Esto nos ayuda a evitarnos muchos dolores de cabeza

Todo muy claro. Gracias

Tener un concepto mas abstracto, clave para tener en cuenta en nuestro codigo

**Codigo reutilizable: **

Está muy relacionado con el concepto de código modular.
La idea es poder escribir código, que sea posible de utilizar en diferentes situaciones.
Para lograr eso hay que definir el objetivo del código y que pueda ser aplicable a esos diferentes escenarios.

En la práctica se logra desarrollando funciones que reciban parámetros y devuelvan resultados.

El COPY PASTE es tu peor enemigo.
Cuando el código se va copiando y pegando, sucede que un error se va arrastrando hacia otros lugares, y nunca vas a estar seguro de que lo solucionaste por completo.
Cómo sabés que ese error no está todavía en otro lugar?

Codigo reutilizable

  1. Que el coigo sea muy claro dentro de su objetivo
  2. Que pueda ser aplicado a diferentes escenarios

Por ejemplo creando una funcion, se puede facilitar realizar un solo cambio y afectar muchas lineas de codigo. Por otro lado,
tambien se puede asignar un codigo filar por fila; pero al necesitar hacer un cambio se requerira hacerlo linea por linea.

la función normalizar quedaría mejor si le indicas los caracteres a reemplazar, y te serviría para otros escenarios.

function normalizar($c1, $c2, $campo){

return str_replace($c1, $c2, $campo);

}

cuando copias y pegas código se va arrastrando código y errores de un lugar a otro

resumen patatero, la reuzabilidad hace referencia a hacer funciones que resuelvan problemas lo mas general posibles y que se puedan repetir en diferentes llamados cambiando los parametros o mejor aun si no necesita parametros