Código organizado
Clase 8 de 26 • Curso de Patrones de Diseño y Buenas Prácticas en PHP
Contenido del curso
Clase 8 de 26 • Curso de Patrones de Diseño y Buenas Prácticas en PHP
Contenido del curso
Jherom Chacon
Bernardo Aguayo Ortega
María Sierra
Oscar Rene Palacios Joya
Carol Estefanny Masmela Escamilla
Bernardo Aguayo Ortega
Martin Calvento
Carlos Eduardo Gomez García
Erika Gabriela Villanueva Perez de Leon
Carlos Eduardo Gomez García
Jorge Luis Martínez Hernández
fredic yohany rojas
Jorge Alberto Middi
Antonio Luis Fernandez Dromundo
Luis fernando Valderrama Gastiaburu
Javier González de Lope
Jose Humberto Duque Castiblanco
Stanley Melgar
Giuliano De Leonardis
CASAREZ HINOSTROZA ANGEL ARIEL
jose.tapias.ext
Iris Valentina Barrios
Gastón Berruet
Carlos Daniel
Fabian Andres
José Alberto Ortiz Vargas
Carlos Javier Diaz Flores
Usuario anónimo
Christian Grimberg
Daniel Sánchez
Jesus Gallardo
Daniel Vidal
Federico Mendez
Esto es muy fácil cuándo trabajas con entornos de desarrollo sofisticados que agrupan los proyectos en librerías, de esta manera la programación en capas es más sencilla. Sin embargo, cuando trabajas con entornos que son mas libres, por ejemplo, si vas a desarrollar un proyecto con Python usando por ejemeplo Visual Studio Code, vas a tener que considerar crear una estructura de directorios que le de sentido a la organización de tu código. Para esto es importante crear categorías que nos permitan agrupar los ámbitos de nuestros archivos, es importante aquí la diagramación a través de herramientas que nos permitan organizar claramente cómo deberíamos construir nuestro proyecto, CMAP Tools es útil acá, y cualquier otro instrumento que permita crear mapas o diagramas como tal vez Visio. Es también importante tomar estas decisiones antes de comenzar a codificar el proyecto, esta es una decisión digamos de alto nivel.
vaya que complejo puede ser en algunos casos
Código organizado
Cuando hablamos de código organizado nos referimos a cómo está el código distribuido en nuestro sistema de archivos. Esto significa que necesitas organizar el código y que según cómo se llame el archivo, este adentro debe contener únicamente lo que su nombre indica.
Quiere decir, que agruparemos archivos que tengan un contenido similar en directorios.
⭐ Esto se trata de convención, no una imposición.
PHP ej:
Gracias
Mi codigo (No se mucho de php pero me gusto el reto)
<?php $numero = $_POST['Numero']; function calcularFactorial($factorial = 1, $numero) { for ($f = $numero; $f >= 1; $f--) { $factorial *= $f; } return $factorial; } function multiplicarIteracion($numero, $i) { return $numero * $i; } function imprimirIteracionNumeros($numero) { for ($i = 0; $i <= 10; $i++) { echo "<tr>" echo "<td>$numero * $i:></td>" echo "<td>" echo multiplicarIteracion($numero, $i) echo "</td>" echo "</tr>" } } function imprimirNumeroFactorial($numero) { echo "<tr>" echo "<td>" echo calcularFactorial($numero) echo "</td>" echo "</tr>" } ?> <table border="1"> <?php imprimirIteracionNumeros($numero); imprimirNumeroFactorial($numero); ?> </table>
venga, esta genial
Hola fijate que en la funcion function calcularFactorial($numero) { $factorial = 1; sobraba un parametro y dentro del for faltaban los ";"
Va la modificacion
<?php $numero = $_POST['Numero']; function calcularFactorial($numero) { $factorial = 1; for ($f = $numero; $f >= 1; $f--) { $factorial *= $f; } return $factorial; } function multiplicarIteracion($numero, $i) { return $numero * $i; } function imprimirIteracionNumeros($numero) { for ($i = 0; $i <= 10; $i++) { echo "<tr>"; echo "<td>$numero * $i:></td>"; echo "<td>" ; echo multiplicarIteracion($numero, $i); echo "</td>"; echo "</tr>"; } } function imprimirNumeroFactorial($numero) { echo "<tr>"; echo "<td>"; echo calcularFactorial($numero); echo "</td>"; echo "</tr>"; } ?> <table border="1"> <?php imprimirIteracionNumeros($numero); imprimirNumeroFactorial($numero); ?> </table>```
Este es mi código:
<?php // Definición de funciones function multiplicar( $numero ) { $tabla = array(); for($multiplicacion = 1; $multiplicacion <= 10; $multiplicacion++) $tabla["$numero x $multiplicacion"] = $numero * $multiplicacion; return $tabla; } function factorial( $numero ) { $factorial = 1; for ($numero_dado = $numero; $numero_dado >= 1; $numero_dado--) $factorial *= $numero_dado; return $factorial; } // Preparo las variables $numero = $_POST['Numero']; $tabla = multiplicar( $numero ); $factorial = factorial( $numero ); ?> <table border="1"> <?php foreach($tabla as $descripcion => $resultado): ?> <tr> <td><?= $descripcion ?></td> <td><?= $resultado ?></td> </tr> <?php endforeach; ?> <tr> <td><?= $numero ?>!</td> <td><?= $factorial ?></td> </tr> </table>
No puedo descargar el archivo .html, se queda cargando la barra verde.
Hola! Será por tu conexión a internet, te los dejo aquí:
reto2.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="reto2.php" method="post"> <input name="Numero"/> <input type="submit"/> </form> </body> </html>
reto2.php
<?php $numero = $_POST['Numero']; ?> <table border="1"> <?php for ($i = 0; $i <= 10; $i++): ?> <tr> <td><?php echo "$numero x $i:"; ?></td> <td><?php echo $numero * $i; ?></td> </tr> <?php endfor; ?> <?php $factorial = 1; for ($f = $numero; $f >= 1; $f--) { $factorial *= $f; } ?> <tr> <td><?php echo "$numero!"; ?></td> <td><?php echo $factorial; ?></td> </tr> </table>
no se si es un bug, a mi igual me pasó prueba a recargar la pagina
No se nada de PHP.
hoy me pasa lo mismo, pero sigo el curso por la parte teórica de los conceptos
En este articulo pueden revisar algunas buenas practicas, convenciones y sigerencias para organizar su codigo en JS: https://medium.com/@davidenq/gu%C3%ADa-de-estilo-convenciones-y-buenas-pr%C3%A1cticas-de-desarrollo-con-javascript-d2e9ef80d63b
Gracias por la info, un artículo muy interesante
Dejo por aquí mi solución al reto
<?php $numero = $_POST['Numero']; imprimirTabla($numero); function tablaMultiplicar($numero) { for($i = 0; $i <= 10; $i++){ imprimirFila(array("$numero x $i: ", $numero*$i)); } } function factorial($numero) { $factorial = 1; for ($f = $numero; $f >= 1; $f--) { $factorial *= $f; } imprimirFila(array("$numero!", $factorial)); } function imprimirFila($datos) { echo "<tr>"; for($i = 0; $i < count($datos); $i++){ echo "<td>$datos[$i]</td>"; } echo "</tr>"; } function imprimirTabla($numero) { echo '<table border="1"'; tablaMultiplicar($numero); factorial($numero); echo '</table>'; } ?>
super complejo :o
Siempre tener en cuenta que cada framework o biblioteca tiene su propia organización de archivos recomendada. No es lo mismo una aplicación de frontend con React que una backend de FastAPI. Revisar la documentación del stack utilizado siempre es la mejor opción ~
/public
Archivos accesibles desde afuera del servidosr
/src
Archivos de nuestro proyecto
/test
Archivos de pruebas unitarias
/vendor
Archivos de librerías de terceros
Organizacion de codigo:
public/ reto2.html src/reto2.php
en el minuto 0:55 del video 8 (código organizado) el profe menciona que debería existir un directorio nombrado "pubic" donde se deberían alojar los archivos que son accesibles desde afuera del servidor, y otro directorio nombrado "src" donde están los archivos propios del proyecto, esto me confunde porque acaso los archivos que se acceden desde fuera del servidor tambien no hacen parte del proyecto???
Podrían dar un ejemplo de los archivos en cada directorio???
¡Hola Platzinauta 🤲! Con public nos referimos a los archivos que serán visibles para el usuario común, como lo podría ser una landing page. Con src podrías guardar tus APIs, archivos que no deberían ser visibles al público. :D
/public: contendra todos los archivos que son accesibles directamente desde afuera del servidor /src: contendrá todos los archivos propios de nuestro proyecto, es decir el código escrito por nosotros /tests: tendrá las pruebas unitarias /vendor: contendrá todos los archivos de librerías de terceros que este utilizando nuestro proyecto
Reto cumplido
Pude probar el código directamente en php, tiene razón el profesor un código así cuesta mucho entender, se nota la diferencia después de organizarlo, para quien se pregunta esto es lo que debe hacer el programa:
Código
<?php $numero =10; /** * Multiplica el numero ingresado por numeros del 1 al 10 * @param int Numero a calcular */ function multiplicacion($numero){ for ($i = 1; $i <= 10; $i++){ echo "<tr> <td> $numero x $i: </td> <td>".$numero * $i." </tb> </tr>"; } } /** * Deacuerdo al numero que se capturado se calcula su factorial * @param int NUmero a calcular */ function calcular_factorial($numero){ $factorial = 1; $num_factorial = $numero - ($numero - 1 ); for ($f = $numero; $f >= 1; $f--) { echo "<tr> <td>" . $num_factorial++ ."! = </td> <td>".$factorial *= $f."</td> </tr>"; } } ?> <table border="1"> <th>Multiplicación</th> <?php multiplicacion($numero); ?> <?php calcular_factorial($numero); ?> </table>
Código organizado de PHP (Agradezco su feedback):
<?php $numero = $_POST['Numero']; public function calcularFactorial($factorial = 1, $numero) { for ($numero; $numero >= 1; $numero--) { return $factorial *= $numero; } } public function multiplicarCiclo($numero) { for($i = 0; $i <= 10; $i++) { return $numero * $i; } } ?> <table border="1"> <tr> <td><?php echo "$numero x $i:"; ?></td> <td><?php echo multiplicarCiclo($numero); ?></td> </tr> <tr> <td><?php echo "$numero!"; ?></td> <td><?php echo calcularFactorial(1, $numero); ?></td> </tr> </table>
Convencion para proyectos de PHP moderno
Mejoro mucho.
Amo este curso, clarísimo, práctico y entretenido. Les aviso que faltan los archivos de la clase para hacer el desafío de la organización del código.
Los archivos de la clase ya están disponibles Christian :)
Ya estan disponibles
<?php $numero = $_POST['Numero']; ?> <table border="1"> <?php for ($i = 0; $i <= 10; $i++): ?> <tr> <td><?php echo "$numero x $i:"; ?></td> <td><?php echo $numero * $i; ?></td> </tr> <?php endfor; ?> <?php $factorial = 1; for ($factorial = $numero; $factorial >= 1; $factorial--){ $factorial *= $factorial; } ?> <tr> <td><?php echo "$numero!"; ?></td> <td><?php echo $factorial; ?></td> </tr> </table>```
Así quedó mi reto: