les comparto el Zen de Python, creo que si uno lo sigue termina codificando muy bien
Lindo es mejor que feo.
Explícito es mejor que implícito.
Simple es mejor que complejo.
Complejo es mejor que complicado.
Plano es mejor que anidado.
Espaciado es mejor que denso.
La legibilidad es importante.
Los casos especiales no son lo suficientemente especiales como para romper las reglas.
Sin embargo la practicidad le gana a la pureza.
Los errores nunca deberían pasar silenciosamente.
A menos que se silencien explícitamente.
Frente a la ambigüedad, evitá la tentación de adivinar.
Debería haber una, y solamente una, manera obvia de hacerlo.
A pesar de que no sea obvio a menos que seas Holandés (como GvR)
Ahora es mejor que nunca.
A pesar de que nunca es muchas veces mejor que justo ahora.
Si la implementación es dificil de explicar, es una mala idea.
Si la implementación es fácil de explicar, quizás sea una buena idea.
Los espacios de nombres son una gran idea, ¡tengamos más de esas!
#Excelente
Si quieren ver directamente este mensaje en un programa basta con crear un archivo .py que contenga:
import this
si no lo sabias
Prolijo: Que se lleva a cabo con detenimiento en los más
pequeños detalles
Justo iba a preguntar está definición. Muchas gracias
gracias Dani, muy útil
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?
Super de acuerdo.
Es una parte fundamental cuando se trabaja en equipo.
Concuerdo contigo Maria Angelica, es muy importante tener un estándar a la hora de trabajar en un equipo ya que luego no se vera un código solido y unificado.
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/
Gracias por tu aporte. Lo tendre encuenta en mis inicios en Python
Pylint se integra con varios IDEs
Spyder
Editra
TextMate
Eclipse with PyDev
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.
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
✨ 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.
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.
Cómo mejorar la legibilidad de nuestro código
Define un estándar
Respétalo
Apóyate en algún linter (es una herramienta)
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
Also beautify
Muy bueno.
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
Ya se encuentra Deprecated
Puedes poner en donde se encuentra Deprecated aqui se muestran todos los estandares y aparece activo
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
Para trabajar con Python y VS Code que ayuda recomiendan para escribir código de la forma mas limpia?
La extensión de VSCode de Python que te sugiere al iniciar, igual hay muchas otras extensiones más. VSCode ya te autoidenta Python
Y unos consejos personles:
Separa todo con espacios, por ejemplo, muchas personas harían esto:
ifTrue:print("Algo")whileTrue:print("Otra cosa") a =1+2print("Finalizo el ciclo")else:print("Caso contrario")print("Otra linea")
En lo personal pienso que todo está pegado, así que a mi me gusta separar todo por espacios comunes:
ifTrue:print("Algo")whileTrue:print("Otra cosa") a =1+2print("Finalizo el ciclo")else:print("Caso contrario")print("Otra linea")
Es más legible, también separa la declaración de funciones y demás con doble espaciado:
def my_function():print("This is my function")def my_other_function():print("This is my other function")
Y usa... no recuerdo el nombre en Python, pero en JavaScript se llamarían strings literales jaja en lugar de concatenación:
nombre ="RetaxMaster"# Sí:print(f"¡Hola {nombre}!, bienvenido")# No:print("¡Hola "+ nombre +"!, bienvenido")
Apenas inicio con Python, pero son cosas que me ayudan a leer mejor el código:D
Yo también uso el espaciado y le separación que manejas. Muchas gracias por sus recomendaciones.
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
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
En VSCode le das Format Document y ya los arregla todo el desmadre que hago.. XD no es necesario estar arreglando uno por uno,..
alguien ya había escuchado la palabra ++prolijo++?
¡Hola!, se refiere a algo que es "impecable" por asi decirlo, en el sentido de que está bien hecho o que está bien escrito, que es algo de calidad
Prolijo es algo que se determina claramente, es muy claro en los detalles.
¿Qué es un linder?
Sirve para buscar errores en el codigo antes o despues de compilarlo, esto ayuda mucho a la hora de desarrollar, como variables que no fueron utilizadas, importaciones, puntos y coma, etc.
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%C3%B3n
#Interesante
ESlint rules! <3
Una de las cosas que me gusta de Python es que nos obliga a indentar el codigo.