Crea una cuenta o inicia sesi贸n

隆Contin煤a aprendiendo sin ning煤n costo! 脷nete y comienza a potenciar tu carrera

C贸digo modular

6/26
Recursos

El c贸digo modular son pedazos de c贸digos divididos que pueden ser utilizados en cualquier lugar para evitar tener un solo archivo con un bloque de c贸digo gigante.

Aportes 58

Preguntas 5

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

A帽os trabajando en PHP y no sabia como asignar de manera rapida una o mas variables, sobretodo si una funci贸n returna un conjunto de valores.

list( $variable1, $variable2 ) = nombre_funcion_retorna_array( $variable );

Recuerdo cuando empec茅 a estudiar programaci贸n, lo primero que le铆 en el libro de Fundamentos de Algoritmo fue DIVIDE AND CONQUER, si divides tu c贸digo en peque帽os programas, primero tendr谩s una forma m谩s f谩cil de solucionar y mejorar tu c贸digo. Eso no tiene precio.

C贸digo modular


Este se trata de hacer c贸digo que este organizado de forma en peque帽os bloques que se unan mediante c贸digo.

鈿 A mayor cantidad de c贸digo menos visible los bugs.

El tipo de c贸digo que con frecuencia vamos a modularizar son:

  • Los bloques que est谩n dentro de un Ciclo for o while
  • Los bloques dentro de un condicional
  • C贸digo que hace calculos complejos

脡sto es la evoluci贸n de la programaci贸n estructurada un paradigma que hablaba de dividir un programa en 3 subrutinas (bloques, condicionales y bucles)
Lo que vimos es la programaci贸n modular, que habla de separar un problema grande en problemas m谩s peque帽os, f谩ciles de solucionar.
Divide y vencer谩s

Creo que esto lo deber铆a ver toda persona que empieza a programar.

Una 煤til estrategia para modular el c贸digo es categorizar y generalizar. Crea categorias de comportamientos y coloca el c贸digo seg煤n su funcionalidad primordial. En programaci贸n orientada a objetos tenemos el concepto de separaci贸n de responsabilidades, cada objeto debe ser responsable de 煤nicamente lo que le corresponde, un cliente no deber铆a registrar compras, un cliente deber铆a manejar solo atributos y comportamientos del propio cliente y las compras deber铆a gestionarse a trav茅s de otro tipo de objeto encargado de este mismo comportamiento. Un objeto de orden superior puede y de hecho estar谩 compuesto por objetos de orden m谩s primitivo, de manera que venta podr谩 componerse de cliente, productos, vendedor y venta.

Tambi茅n es importante anotar que existen dos situaciones por las cu谩les es important铆simo modular. La primera es para mejorar la legibilidad, si tengo un procedimiento demasiado extenso, es posible que necesite separarlo en piezas m谩s manejables. La segunda es para facilitar el futuro, es decir, si conozco un comportamiento com煤n que va a ser utilizado por otros componentes, probablemente deba crear una funci贸n p煤blica para ello, por ejemplo validaci贸n de colecciones o veriicaci贸n de ciertos tipos particulares de grafos, o extracci贸n de patrones comunes de atributos en una colecci贸n de elementos.

Que c贸digo se puede modular : Bloques dentro de un condicional, bloques dentro de una repetitiva un for o while, las propias expresiones de las condiciones, en general codigos de c谩lculos complejos.

list( $var1, var2) 馃槷

TIP: Si alguna vez te encuentras copiando y pegando fragmentos de codigo, muy probablemente lo que deberias estar haciendo es modularizarlo en una funcion

Modularizar = Divide y vencer谩s

Codigo modular:
Es necesario particionar los metodos en otros metodos, para evitar tener metodos gigantescos y dificiles de leer, manejando un estandar de cierta cantidad de lineas, por ejemplo 15 lineas maximo por metodo.

Candidatos para hacer codigo modular
-Los bloques que tienen ciclos, condicionales y calculos complejos

Yo creo que tambi茅n depende del c贸digo. Hacerlo modular nos permite hacer el c贸digo reutilizable pero tambi茅n dependiendo del caso (como es el caso del video) en mi opini贸n se hace m谩s complicado.

Modularizar es una de las t茅cnicas que me gustan m谩s, yo lo suelo poner en clases, y usualmente alg煤n m茅todo de esa clase llama a otro y as铆 sucesivamente, es m谩s f谩cil leer el nombre del m茅todo y saber qu茅 es lo que hace en lugar de ver un pedazo de c贸digo entero, b谩sicamente meter el c贸digo en una funci贸n sirve para ponerle nombre a tu bloque de c贸digo

resumen patatero , el concepto de modularidad se puede resumir en que hay que dividir el c贸digo en funciones con nombres claros y acciones o funcionalidades 煤nicas y claras

Nota: c贸digo modular es una t茅cnica para c贸digos de alta Mantenibilidad. Se trata de realizar un c贸digo que este compuesto de pedazos mas peque帽os que formar al c贸digo total. Al dividir solo nos enfocamos en la parte donde tenemos problemas y no necesitamos revisar todo el c贸digo.

Codigo modular, fragmentar el codigo a bloques mas peque帽os.

Nadie piensa en las llaves!!!

Indagando un poco encontr茅 estos ejemplos sobre 鈥榙estructuring of objects鈥

<?php
#Metodo para hacer 'Destructuring assignment' de un array simple*/
#Destructuring
$arr = [1, 5, "ar"];
[$a, $b, $c] = $arr;
echo $a; //1
echo $b; //5
echo $c; //ar

#Destructuring - list() de array simple
$info = array('coffee', 'brown', 'caffeine');
list($drink, $color, $power) = $info;

/////////////////////////////////////////
#way to destructure objects or associative arrays in PHP

#Destructuring - extract()
const JSONserializado = '{ "name": "Pablo",  "age": 12}';
#$json_des_serializado= json_decode(JSONserializado); //pero NO ES UN ARRAY es un OBJETO stdClass, por tanto:
$arrayAsociativo = json_decode(JSONserializado, true); //como ARRAY //array(2) { ["name"]=> string(5) "Pablo" ["age"]=> int(12) }
extract($arrayAsociativo);
var_dump($name); // string(5) "Pablo"
var_dump($age); // int(12)

#Destructuring - list()
$test_arr = ['a' => 9, 'b' => 'dc'];
list('a' => $a, 'b' => $b) = $test_arr;
var_dump($a); //int(9)
var_dump($b); // string(2) "dc

馃槈

En el caso de tener condicionales muy complejos (o largos) 驴me recomienda hacer una funci贸n por cada condicional complejo o una funci贸n que englobe todo?

Aunque entiendo que el curso es para personas que ya saben POO considero que antes de esta clase deber铆a colocar como est谩ndar la utilizaci贸n de type hint que es indicar tipos de valores que ingresa o retorna una function en PHP

Una funci贸n puede ser dividida en funciones m谩s peque帽as que permitan la testeabilidad, escalabilidad y legilibilidad etc.,

Los ejemplos ayudan a entender y clarificar el concepto. Buen curso!

He visto caso que todo esta modulado de forma que darle seguimiento a un proceso, se hace tedioso. hay un limite.

Considero que es una buena practica definir las function y luego llamarlas

Este m茅todo es bastante 煤til para aquellas personas que como yo, estamos aprendiendo a programar, por que existen casos que cuando no sabes hacerlo de forma modular, tienes que buscar la forma en la que se comporta tu c贸digo para poder hacerlo modular.

Programaci贸n funcional

Copiar y pegar, no es reutilizar 馃槃

Hasta ahora todo muy bien

hola, darle orden a un c贸digo ya escrito es bien, pero cuando se escribe desde cero es importante hacerlo y luego organizar si no, nunca se hace nada

Es buena pr谩ctica modularizar el c贸digo!

Creo que se podr铆a aplicar ese mismo concepto de desestructuraci贸n al primer bloque de asignaci贸n de variables y reducir un poco el c贸digo.

resumen: c贸digo modular para bloques que est谩n dentro de una repetitiva, o de un condicional, las expresiones de condiciones (si son complejas)

Excelente es la mejor forma de entender el c贸digo, ademas estar铆a bien que se modificara el nombre de la variable $hora_entrada y $hora_salida

existe diferencia entre poner las funciones al principio o al final?

A mayor cantidad de c贸digo los bugs quedan ocultos.

Conceptos claros, a ponerlos en practica.

Muy bueno tener en cuenta esto antes de avanzar con muchos proyectos.

Me cuesta todav铆a dividir por funciones

Si, se hace m谩s legible en definitiva

Falto el archivo del c贸digo solucionado, es engorroso ponerse a ver el c贸digo en el v铆deo y hacerlo. Estar铆a bueno si lo agregan a los archivos y enlaces, como en los v铆deos anteriores.

  1. Codigo Modular
    Modularizar, dividir el codigo en partes donde se realize unicamente la funcion o el calculo necesario, para poder identificarlas por partes

Excelente

Muy buen tip, me cuesta un poco dividir el c贸digo. Trabajar茅 en esto.

Vi estos conceptos en la universidad pero realmente nunca los aplicaba, me doy cuenta que son bastante importantes

Todo clar铆simo. Gracias

La programaci贸n modular es un paradigma de programaci贸n que consiste en dividir un programa en m贸dulos o subprogramas con el fin de hacerlo m谩s legible y manejable

En Python asignar 2 o mas valores que retornan de una funci贸n a una lista se llama unpacking y funciona de la siguiente manera:

def function(p1, p2):
   
    n1 = p1
    n2 = p2

    return n1, n2

if __name__ == "__main__":
    
    for j in range(n):
        posicion_1[j], posicion_2[j+1] = function(p1, p2]) #Unpacking```

La mejor forma de programar mediante funciones

Modularidad

Cosa incre铆ble que vino a hacernos felices jeje

Es increible la cantidad de beneficios al usar esta manera

C贸digo Modular

`Hacer c贸digo que este organizado en peque帽os bloques

El c贸digo modular son pedazos de c贸digos divididos que pueden ser utilizados en cualquier lugar para evitar tener un solo archivo con un bloque de c贸digo gigante.`

No conoc铆a esto de php :0

ok, tengo una duda, este curso est谩 al inicio de la carrera de Desarrollo con WordPress, donde no sabes nada de c贸digo pero 驴Debes saber ya PHP para verlo?

De todos los lenguajes鈥 porque PHP!!!

Codigo modular:
Se trata de hacer c贸digo que est茅 organizado en forma de peque帽os bloques que puedan ser compuestos en vez de un 煤nico bloque muy grande.

Un bloque 煤nico grande hace que cuando hay un bug(error), sea tedioso encontrar.
Debido que a mayor cantidad de c贸digo, m谩s ocultos est谩n los bugs. Hay m谩s c贸digo para hacer Debug, m谩s variables a tener en cuenta, m谩s condicionales.

Codigo modular:

Hacer codigo organizado de varios bloques que puedan ser compuestos en un bloque m谩s grande.

Evitar incluir una gran cantidad de codigo en un solo bloque de codigo ya que hace mas dificl hacer debug o entender todas las variables encontradas. Es mejor dividirlo y usar algunas funciones que sean llamadas dentro del bloque de codigo donde se necesiten.

Excelente clase, asi deberian ser todas, mostrar el codigo mal hecho e ir mejorandolo segun las buenas practicas!