Python – шаблон проекта (часть – 1)
Источник: https://github.com/hassanfarid/python-template
Различные исследования показывают, что код (часть функциональности) читается много раз, чем написано или обновлено. Который подчеркивает важность написания хорошего кода качества, следуя последовательным стилям кода и руководствами стилей документации. Письменные тесты для кусочка кода улучшают читаемость кода, а также улучшает стабильность кодовой базы.
Знание о важности кода качества письма – это общие знания и согласовано всеми.
Этот проект пытается обеспечить проект шаблона, который можно использовать для того, чтобы получить борту со всеми известными хорошими практиками, используя индустриальный стандартный набор инструментов для новых и существующих проектов.
Как структурировать вашу базу кода
Это может быть субъективным вопросом, и там нет единой пули для этого. Вот мои рекомендации для горячего для структурирования вашего исходного кода,
| component-code-repository (example: fantastic-app-backend) | ci/ # all scripts helpful for CI process | scripts/ # all short hand scripts for testing and running application in local env | src/ # may contain all the source code specific to this repository | tests/ # contains test suite for your code base | CODEOWNERS | CONTRIBUTION.md | Dockerfile | docker-compose.yml | README.md
Как построить свой проект?
Проект может быть построен для нескольких целей, используя Single DockerFile. Цель одиночного Dockerfile состоит в том, чтобы упростить обслуживание кода развертывания.
Этот проект может быть построен как Docker Image со всеми целями, поддерживаемыми DockerFile,
- CI – для использования целевого изображения в процессе непрерывного интеграции
- Prod – для публикации целевого изображения в производстве
# You can set the target to either `ci` or `prod` based intention TARGET='ci' # Build image for $TARGET environment docker build --build-arg TARGET=$TARGET -t python-template:$TARGET -f Dockerfile . # The output image will be labelled `python-template:ci` or `python-template:prod`
Особенности для непрерывной интеграции
Проект предоставил шаблоны для обеспечения наилучшей практики и поддержания стабильности кодовой базы. Поддерживаются следующие функции,
Руководство по кодированию
Конкретные инструкции о Руководство по кодированию документируются отдельно.
Интегрированные инструменты помогают проектам Python поддерживать стандарты кодирования, в том числе,
Руководство по кодированию стиля
# This test will use pycodestyle to validate against PEP-8 standards docker run --rm python-template:ci bash ../ci/pycodestyle/script.sh # This test will use pydocstyle to validate against PEP-257 standards docker run --rm python-template:ci bash ../ci/pydocstyle/script.sh # This test will use mypy to validate against PEP-484 standards docker run --rm python-template:ci bash ../ci/mypy/script.sh # as an alternate pylint may also be used code advanced coding guidelines specific to your project # Note: to make it work as expected, you need to configure pylint configurations as desired # This test will use pylint to validate PEP-8, PEP-257, and others docker run --rm python-template:ci bash ../ci/pylint/script.sh
Тест устойчивости кода
# This test will use pytest to run all test suits defined in project # additionaly: this also geenrates test coverage report on console docker run --rm python-template:ci bash ../ci/pytest/script.sh # This will use coverage tool to generate test coverage, and run test if coverage is not generated yet # the coverage html report is generated at ./cov_html as configured in ../ci/coverage/.coveragerc.ini docker run --rm python-template:ci bash ../ci/coverage/script.sh
Кодовая документация
# This script will generate code documentation using code comments # the output html is generated in ../docs/_build/html docker run --rm python-template:ci bash ../ci/generate_code_documentation.sh
Источник: https://github.com/hassanfarid/python-template
Вы можете внести свой вклад в этот шаблон стартера,
- оставляя комментарий
- открыть проблему на github
- Отправить запрос на голосе на GitHub
Оригинал: “https://dev.to/hassanfarid/productivity-wings-for-python-project-4alg”