Código prolijo

4/26
Recursos
Transcripción

El código fuente lo escribimos para personas como tú y yo, para las computadoras tenemos las versiones compiladas.

Debemos seguir un estándar de codificación, el cual nos ayuda a:

  • Generar código claro y consistente.
  • Evitar perder tiempo en decisiones triviales.

Tips para mejorar la legibilidad de nuestro código:

  • Define un estándar: Piénsalo una vez y déjalo por escrito.
  • Respétalo: Haz un esfuerzo por adherir al estándar durante tu día a día.
  • Apóyate en algún linter: Esta sencilla herramienta te ayudará a incorporar buenas prácticas.

Aportes 72

Preguntas 9

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

les comparto el Zen de Python, creo que si uno lo sigue termina codificando muy bien

  1. Lindo es mejor que feo.
  2. Explícito es mejor que implícito.
  3. Simple es mejor que complejo.
  4. Complejo es mejor que complicado.
  5. Plano es mejor que anidado.
  6. Espaciado es mejor que denso.
  7. La legibilidad es importante.
  8. Los casos especiales no son lo suficientemente especiales como para romper las reglas.
  9. Sin embargo la practicidad le gana a la pureza.
  10. Los errores nunca deberían pasar silenciosamente.
  11. A menos que se silencien explícitamente.
  12. Frente a la ambigüedad, evitá la tentación de adivinar.
  13. Debería haber una, y solamente una, manera obvia de hacerlo.
  14. A pesar de que no sea obvio a menos que seas Holandés (como GvR)
  15. Ahora es mejor que nunca.
  16. A pesar de que nunca es muchas veces mejor que justo ahora.
  17. Si la implementación es dificil de explicar, es una mala idea.
  18. Si la implementación es fácil de explicar, quizás sea una buena idea.
  19. Los espacios de nombres son una gran idea, ¡tengamos más de esas!

si no lo sabias
Prolijo: Que se lleva a cabo con detenimiento en los más
pequeños detalles

Nunca está de más saber escribir código sin ayuda de terceros.
Por otro lado, hay herramientas que nos ayudan a tener convenciones entre los programadores de un equipo. Tales son prettier o ESLint (ambas inclusive), con las que se puede compartir un archivo de configuración y así estandarizar cómo quedará escrito el código (por lo menos en formato: si llevará punto y coma al final de cada instrucción, si se tabula o serán 2 o 4 espacios, etc.). Para mí es muy importante conocer y utilizar estas herramientas que agilizan un poco el proceso. ¿Qué opinan ustedes, compañeros?

Desarrollo en Python, busqué una herramienta de Lint para ese lenguaje se llama ‘PyLint’, veo que es muy útil porque menciona consejos sobre el código analizado, buenas prácticas y si tienes problemas de indentación
https://www.pylint.org/

Mi cabeza estalla cuando encuentro llaves debajo de los if (en mi opinión es mejor ponerlo e el if) y no se si seguir con es estructura (aunque mi yo no me lo permite) o acomodar como el estandar?

No olviden que cada lenguaje tiene sus propias convenciones y que hay linters para todos

Aquí es donde entran los linters de los IDEs o editores de texto para ayudar en eso, ademas estudiar patrones de diseño.

Libro: Code Clean

El estandar de código más popular para PHP es PSR-2

Para la legibilidad en visual studio code utilizo Prettier.
Esta extensión se encarga de identar y agregar otras cosas para que el código sea mucho mas legible.
Si alguien quiere checarla les comparto su sitio web.
Prettier

En el caso de JavaScript, un buen linter es ESLint.
Si usas Visual Studio Code, lo puedes instalar como una extensión directamente.
Hay muchos más, unos que pueden ser de una IDE para todos los lenguajes, como el de Atom, o uno para cada lenguaje, como puedes ver en esta colección de repos

En VSCode le das Format Document y ya los arregla todo el desmadre que hago… XD no es necesario estar arreglando uno por uno,…

  1. Codigo Prolijio
    El codigo debe ser claro y debe ser entendible para humanos
    Usar standars, todo el codigo debe tener la misma sintaxis

Metodos de mejorar codigo:
Definir estandar
respetalo
apoyate en algun linter

La legibilidad del codigo es importante, defnir la variable y que sea lo mas claro posible respetar el tipo de uso que se le dara dia a dia.

ojala todo pusieran las llaves en los if … siempre es molesto eso .!! >:v … bien bien!!

Control+Alt+f en cualquier ide de jetbrains

Yo tengo la identación en visual estudio personalizada, es muy bueno ya que al programar, digamos para Unity, la identación no pega el primer { a la línea con código

Estandar de codificación o convención de código: Es un término que describe convenciones para escribir código fuente en ciertos lenguajes de programación.
Mas info en wikipedia: https://es.wikipedia.org/wiki/Estilo_de_programación

Código prolijo


Aquí tenemos un código con un problema de legibilidad. Y esto hace difícil entender las estructuras que corresponde cada bloque de código. Además, tenemos el problema de cómo posicionar las llaves.

<?php
if(isset($_POST['txtFechainicial']) && $_POST['txtFechainicial']!="")
{
$where[] = "fecha_recibo > ".$_POST['txtFechainicial']."";
}
if(isset($_POST['txtFechafinal']) && $_POST['txtFechafinal']!="")
{
$where[] = "fecha_recibo < ".$_POST['txtFechafinal']."";
}
if(isset($_POST['txtTrabajador']) && $_POST['txtTrabajador']!="")
{
$where[] = "trab_recibo = ".$_POST['txtTrabajador']."";
}
if(isset($_POST['txtSerie']) && $_POST['txtSerie']!="")
{
$where[] = "serie1 = ".$_POST['txtSerie']."";
}

La solución a este problema es agregar tabulaciones. La convención sobre las llaves que la llave de apertura debería estar al lado del paréntesis que cierra la condición de if

<?php
    if (isset($_POST['txtFechainicial']) && $_POST['txtFechainicial'] != "") {
        $where[] = "fecha_recibo > " . $_POST['txtFechainicial'] . "";
    }
    if (isset($_POST['txtFechafinal']) && $_POST['txtFechafinal'] != "") {
        $where[] = "fecha_recibo < " . $_POST['txtFechafinal'] . "";
    }
    if (isset($_POST['txtTrabajador']) && $_POST['txtTrabajador'] != "") {
        $where[] = "trab_recibo = " . $_POST['txtTrabajador'] . "";
    }
    if (isset($_POST['txtSerie']) && $_POST['txtSerie'] != "") {
        $where[] = "serie1 = " . $_POST['txtSerie'] . "";
    }

Recuerda: El código fuente se escribe para humanos.

Otro problema que podemos encontrarnos es el siguiente, aquí hay una falta de criterio en común, algunas de las líneas utilizan llaves y otras no. Esto significa que tenemos una Falta de estándar de codificación.

<?php
    if (isset($_GET['p']))
        $p = $_GET['p'];
    else
        $p = 1;

    $t = '';
    if (isset($_GET['t']))
        $t = $_GET['t'];
    else if(isset($_GET['codigo']))
        $t = $_GET['codigo'];
    else if(isset($_POST['TxtBuscar']))
        $t = $_POST['TxtBuscar'];

    if (!empty($_POST['TxtBuscar'])) {

        $cadena = $valor[0];
    }

Este el problema resuelto, en nuestro caso decidimos que lo mejor es utilizar las llaves.

<?php
    if (isset($_GET['p'])) {
        $p = $_GET['p'];
    } else {
        $p = 1;
    }
    $t = '';
    if (isset($_GET['t'])) {
        $t = $_GET['t'];
    } else if(isset($_GET['codigo'])) {
        $t = $_GET['codigo'];
    } else if(isset($_POST['TxtBuscar'])) {
        $t = $_POST['TxtBuscar'];
    }
    if (!empty($_POST['TxtBuscar'])) {
        $cadena = $valor[0];
    }

Estándar de codificación

Es una serie de reglas que nos dice como escribir nuestro código. Esto nos ayuda generar un código claro y consistente. También, nos evita que pierdas tiempo en decisiones triviales.

<h3>Cómo mejorar la legibilidad de nuestro código</h3>
  • Define un estándar
  • Respétalo
  • Apóyate en algún linter (es una herramienta)
El codigo fuente se debe escribir para humanos.

ufff que super esta el curso.
Contenido claro, preciso y macizo!

Por ejemplo escribir procedimientos con escritura de camello:
nombreProcedimiento

Codigo prolijo
Estandar de codificacion
-Generar codigo claro y consistente
-Evitar perder tiempo en decisiones triviales
Mejorar la identacion y acomodo de las llaves

-Definir un estandar: piensalo una vez y dejalo por escrito
-Respetalo: haz un fuerzo por adherir al estandar durante tu dia a dia
-Apoyate en algun linter: esta sencilla herramienta te ayudara a incorporar buenas practicas

Ahorrar tiempo y evitar pensar en tantas trivialidades. Excelente curso.

if (readableCode()) { 
  beHappy(); 
} else {
  refactor();
}

La clave es ahorrar tiempo, es necesario para agilizar todos los proyectos

Nota: la primera cosa que afecta el código es le legibilidad, por ejemplo todas las linaes empiezan en la misma columna o están en el mismo renglón, el acomodo de las llaves van al final del nombre de la función y se cierra al final de la función. Acuérdate que escribes código para gente no para computadoras. Tenemos que tener o seguir un estándar de codificación ya que nos dice tratar varios caos.
Los estándares de codificación son un conjunto de reglas para generar código claro y consistente. Evita que pierdas el tiempo en decisiones triviales.
Tips.
Define un estándar de codificación, Respetar el estándar y por ultimo apoyate en linter, son sencillas herramientas que te ayudaran a incorporar buenas práticas de programación.

Estandar de codificacion = Codigo claro y consistente

puede que esto sea de otro curso pero, cuando el se hace Build por parte de algunos frameworks web, todo el código lo pasan a una solo linea de código, siempre pensé que era un modo “encriptado” para hacer que al programador le duelan los ojos al tratar de leer el código y no pueda “hackearlo” tan fácilmente, pero realmente para que se hace eso?

Importante por lo menos en PHP existen los PSR para seguir estandares y si bien no es taaan comodo encontrar estos estandares en la pagina oficial, hay un libro muy bueno que muestra estos estandares y gratis :

Otro nivel, el segundo código jaja

Yo personalmente no me siento bien trabajando sin indentación. Lo primero que hago cuando abro el código es asegurarme de que está organizado y se ve 😍- Hay que sentirse cómodo con el trabajo.

Una de las cosas que me gusta de Python es que nos obliga a indentar el codigo.

Minuto 3:59, el código es un desastre.

Yo sangre en ese momento.

Cuando trabajamos en un proyecto de desarrollo en equipo, es muy importante establecer unos estándares de codificación para todo el equipo. Para hablar en el mismo idioma.

El código fuente lo escribimos para humanos, por ende debe ser bien legible.

ESlint rules! ❤️

aunque tu código funciones de esta manera
if(variable == true) console.log(“correcto”);
debes agregarles espacios y llaves, puede que vos lo entiendas así pero los demás no puedan…

Es bueno contar con un estándar el mas comun para el caso e JS es el de airBnB el cual lo puedes configurar por defecto con los plugins que te da eslint, pero yo siempre e creído que es bueno manejar un estándar sin la necesidad de configurar los linters mas que nada esto para procurar tener un código de calidad.

Nota: No estoy diciendo que no se use un llinter solo que si es bueno tener un estandar propio

Utilizaré un linter, nunca había escuchado de ellos, espero sea de ayuda

Tips para un código limpio

  • Define un estandar de codificación.
  • Respeta el estándar elegido.
  • Apóyate en alguna herramienta linter para revisar la legibilidad de tu código.

Aquí les dejo los estanadres de php(psr-1) para realizar codigo legible y con buenas practicas.

En el codigó que nos muestra el profesor mauro,veo que no se donde termina los if,para mi es dificil de mantener.

¿Cuál es el estandar de codificación en javascript más Recomendable ?

La mayoría de cursos son de hace 3 o 4 años sin una actualización que preocupante.

Llevo mucho tiempo escribiendo código php combinado con html y no se hace sencillo hacerlo prolijo. Ahora bien, soy el que hace el mantenimiento de la mayoría de esos desarrollos y no veía la importancia de hacerlos más legibles para la interpretación de otras personas. Después de atender esta sesión, me comprometo solemnemente conmigo mismo, a seguir las sugerencias descritas.

Siempre es importante escribir código funcional pero también legible. Haciendo una comparación, la escritura de código se parece a escribir un libro, pues se redacta para que otros lo puedan leer y sea sencillo de entender.

Es una buena práctica revisar el código escrito una vez que se ha terminado para ver si es entendible.

Usar la misma forma de escritura para todo el archivo, si es para todo el proyecto aun mejor, si es la guía de desarrollo de la compañía espectacular

<h3>Consejero para todo programador</h3>
  1. Tabular
  2. Seguir estandares
  3. Usar llaves
  4. Usar separaciones de bloques

En VSCode puedes encontrar varios linter a usar

Código más estucturado

Para PHP existen las PSR https://www.php-fig.org/psr/
Que son las recomendaciones estándar para el código, muchos proyectos de código abierto las usan, e incluso son requerimiento para trabajo en empresas.

Para los que estan trabajando con VSCode, Atom, SublimeText pueden descargarse el plugin PRETTIER o instalarlo mediante su pagina oficial https://prettier.io y leer su documentacion. Prettier es un formateador de código por lo que tu codigo sera mas bello y legible.

Todo clarísimo. Gracias

Me gusta como explica. Muy dinamica su clase.

Es horrible tratar con código espagueti y reacondicionarlo es parte del seniority

SonarLint para PHP me saco del paco.

Las versiones minificadas vienen así en una sola línea. Una locura eso pero muy útil

me parece mejor colocar siempre las {} porque luego uno puedo requerir colocar más instrucciones en ese bloque de código

Para quien se escribe codigo: para los Humanos, es mejor que todos lo entiendan.
Importante :

  • Homogeneidad
  • Adherir a los estándares
  • Respeta el estandar
  • Usar Linters

Yo tengo definido mi estándar de codificación, en definitiva prefiero poner la llave de apertura en la misma linea que la condicional, ponerla abajo me dificulta la legibilidad.

Para los if’s de una sola línea siempre los pongo sin llave (Por ser fancy) pero siempre trato de que sea legible el if, de igual manera trato de dejar espacios entre bloques para definir en donde hay un bloque y en dónde otro.

En HTML es donde más se me dificulta mantener un estándar, pero siempre trato de dejar un grupo de elementos agrupados y separados por un espacio de otro grupo de elementos, y los contenedores padre igual dejarlos a un espacio de sus hijos, el problema es cuando son muchos contenedores padres, esos espacios hacen que pierda la legibilidad D:

He usado linters pero no me suele gustar cómo formatean el código xD Prefiero seguir mi estándar porque siento que es legible

La diferencia esta en los detalles una muy buena frase.

Define un estándar: Piénsalo una vez y déjalo por escrito.

Respétalo: Haz un esfuerzo por adherir al estándar durante tu día a día.

Apóyate en algún linter: esta sencilla herramienta te ayudara a incorporar buenas practicas.

PROLIJO
Prolijo, del latín prolixus, es algo esmerado o cuidadoso. De acuerdo al diccionario de la Real Academia Española (RAE), el adjetivo también puede referirse a lo dilatado con exceso, lo impertinente o lo molesto.

El descuido y la falta de atención son cuestiones que atentan contra lo prolijo. Un cuaderno escolar prolijo es aquel que presenta todas sus hojas en buen estado, es legible, está bien organizado, etc. En cambio, si el niño rompe y arruga las hojas y deja manchas de tinta, su cuaderno será desprolijo.

Apertura de las llaves al final de la linea de inicio del bloque

Siempre es bueno tener en claro las buenas prácticas de código, yo siempre supe algunas cosas que cuenta el curso, pero es interesante conocer más detalles a fondo.

¿Cómo posicionar las llaves?:
La convención establece que las llaves de apertura deberían estar justo pegada al paréntesis que cierra la condición del IF.
Esto nos facilita entender donde esta la llave de apertura del IF y la que cierra.
Nos ayuda entender rápidamente cuáles son las líneas que pertenecen a los bloques y cuáles no?.

“El código fuente se escribe para humanos. Para las computadoras tenemos las versiones compiladas.”

Falta de criterio:
Por ejemplo cuando hay muchos IF y en algunos se utiliza llave y otros no.

Estándar de codificación:
Serie de reglas que te dicen, cómo debes escribir tu código.
Por ejemplo: debo poner llaves o no?

Para que sirven?:
-Genera Código claro y consistente.
-Evita que pierdas tiempo en decisiones triviales.

Algunos TIPS:
-Define un estándar, o elige uno ya definido.
-Haz un esfuerzo para cumplirlo.
-Apóyate en algún Linter: Sencilla herramienta que te ayudará a incorporar buenas prácticas.

(PRESTAR ATENCIÓN A QUE USÉ CURSIVA PARA LOS TÍTULOS, NEGRITA PARA LA FRASE Y SUBRAYADO-MAYÚSCULAS PARA ESTO)

A esto le podemos llamar un estándar de código para los aportes de los cursos de PLATZI jaja. Saludos!!

Estandar de codificacion

. Genera codigo claro y consistente (llaves, tabuladores, espacios, entre otros)
. Evita perder tiempo tomando decisiones triviales

Tips:

  1. Definir un estandar de codificacion o usar uno existente
  2. Hacer un esfuerzo por respetar el estandar establecido
  3. Apoyarse en algun linter. Es una herramienta que sirve para verificar si el uso de un estandar es correcto o si hay cosas que se pueden mejorar.

tener siempre un standar de codificación hace que escribas código prolijo

El código fuente lo escribimos para personas como tú y yo, para las computadoras tenemos las versiones compiladas.