Cómo escribir programas Python de alta calidad
Para desarrollar el hábito de escribir código estandarizado, puedes instalar la herramienta flake8, que no sólo comprueba si el estilo del código cumple con las recomendaciones oficiales (PEP8), sino que también identifica posibles errores (usando Pyflakes para la sintaxis). análisis), Lo que es aún más escandaloso es que también puede detectar que algunas de sus funciones son demasiado complejas (complejidad ciclomática del código), y aún más escandaloso es que también puede configurar confirmaciones de git para pasar estas comprobaciones.
Por supuesto, la operación específica debe personalizarse de acuerdo con su propio proyecto; por ejemplo, puede ignorar E501 y W293.
Plantilla de proyecto en blanco
Comience a escribir código Python con pyempty. Un buen comienzo es la mitad de la batalla.
Mire los proyectos clásicos en github, web.py, flask, pep8, sus directorios de proyectos están muy estandarizados y, según las características de algunos proyectos, escribí este proyecto pyempty.
1. README.md es donde escribes la introducción de tu proyecto, el inicio rápido y otra información. Aunque distutils requiere que este archivo no tenga sufijo, si el sufijo es .md en github, sí. se puede convertir directamente a html para su visualización.
2.ChangeLog.txt Este archivo almacena la información de modificación de cada versión del programa y también tiene un formato determinado. Consulte ChangeLog.txt de web.py
3. .LICENES.txt se almacena aquí. Si conoce el protocolo utilizado por el proyecto, no escriba su propio protocolo.
4.requirements.txt Si su proyecto depende de otras bibliotecas de Python de terceros, escríbalas línea por línea aquí para que pip install pueda instalarlas automáticamente
5 Script de instalación .setup.py, que se describe más adelante
6.docs Aquí puede almacenar los documentos de su proyecto, como el diseño del esquema, el diseño detallado, los documentos de mantenimiento, los documentos generados automáticamente por pydoc, etc. recomendado Utilice el formato MarkDown para escribir documentos
7.src Este directorio almacena el código principal del módulo del proyecto. Intente no colocar el directorio del módulo directamente en el directorio raíz. Puede especificar el directorio del código del módulo en la configuración. .py
8.test Este directorio almacena todos los scripts de pruebas unitarias y de rendimiento. Asegúrese de anteponer test_ a los archivos de prueba unitaria para que distutils los empaquete automáticamente y use python -m unittest discover -s ./ -p 'test_*.py' -v para ejecutar estas pruebas directamente
Pruebas unitarias
Martin Fowler: "No debes escribir un programa hasta que sepas cómo probar el código. Una vez que hayas completado el programa, el código de prueba también debe completarse. No puedes considerar el programa que tienes escrito para ser válido a menos que las pruebas tengan éxito
Hay muchas razones para no escribir pruebas unitarias, y todo se reduce a pereza, a pesar de que el libro de códigos dice:
La mayoría de los estudios encuentran que Las pruebas son más baratas que las pruebas de la NASA. Un estudio realizado por el Laboratorio de Ingeniería de Software encontró que la lectura de código encontró alrededor de 80 defectos más por hora que las pruebas (Basili y Selby, 1987). Más tarde, un estudio de IBM encontró que solo se necesitaban 3,5 para encontrar un defecto. a través de la inspección.
Bien, continúa leyendo:
Deep python 3.0: unit testing-2.x también se aplica
El marco de pruebas unitarias no está completo en chino
Documentación
El desarrollo ágil no recomienda no escribir documentos en absoluto. Sin documentos, no habrá herencia ni acumulación. Los recién llegados encontrarán muchos problemas al rotar trabajos o asumir tareas. También habrá muchos problemas al asumir la tarea, por lo que decidí escribir al menos los siguientes documentos para cada proyecto:
1. el archivo README.md. Este documento debe incluirse en el proyecto Antes del desarrollo, escriba qué funciones tiene el proyecto, divídalo aproximadamente en varios módulos, etc., y escriba la información resumida general del proyecto.
2. design.model.md es un documento de diseño detallado. No necesita ser demasiado detallado. Al menos debe escribir de qué depende el proyecto, quién depende de este proyecto y las descripciones de los procesos. algoritmos importantes y la estructura general del código.
3. Documento de mantenimiento de keep.md, creo que esto es lo más importante, en qué registros se registran sus servicios, qué indicadores comerciales deben monitorearse, cómo reiniciar, qué configuraciones existen, etc. Sin estos componentes, su proyecto será difícil de ejecutar y mantener.
Los documentos anteriores son documentos globales del proyecto y no son adecuados para escribirse en cadenas de documentos o comentarios, por lo que se requiere un documento separado.
Empaquetado
Python tiene un sistema de empaquetado de módulos dedicado llamado distutils. Puedes usarlo para empaquetar tu código y luego publicarlo en Pypi para que cualquiera pueda usar pip o easy_install para instalar tu módulo. .
Si está desarrollando un proyecto interno, también puede usar mypypi para configurar un pypi privado y luego publicar actualizaciones de versiones importantes del proyecto en el pypi interno para que los administradores y operadores de configuración puedan descargarlas fácilmente desde pypi Extraiga el código e instálelo en un entorno de prueba o producción.
Cuando lanzas una versión principal, le asignas un nombre y escribes una lista de cambios. Puede consultar los capítulos relevantes de Git Pro y recordar los siguientes comandos.
git tag -a v0.1 -m 'my test tag' #Nombra la versión principal, ingresa la etiqueta
git describe master #Nombra la versión secundaria, Git devolverá un tres -part Cadena compuesta por: el número de la última versión verificada, más el número de confirmaciones después de la verificación, más un valor SHA -1
git shortlog --no-merges master --not v0.1 #Generar lanzamiento notas, ChangeList
Python tiene su propio mecanismo de empaquetado, por lo que generalmente no es necesario utilizar el comando git archive.
Por supuesto, pypi es más adecuado para lanzamientos a gran escala, pero para pequeñas correcciones de errores, lanzamientos de emergencia, etc., muchas empresas usarán git para extraer código directamente del entorno de producción para actualizaciones, porque git , svn, etc. pueden deshacer fácilmente una actualización y revertirla a una ubicación determinada.
Aún no tengo una idea clara sobre cómo gestionar la versión grande en línea y las emergencias pequeñas en línea. Todos son bienvenidos a participar en la discusión.
Para empaquetar, lea el siguiente enlace:
Guía de empaquetado de Python
Python 3.0 en profundidad: Biblioteca de clases de Python de empaquetado
Empaquetado de Python: distribuir el archivo especificado
De: /art/201209/356603.htm.