python but python is already great
play

Python But Python is already great!!! Readability Massive - PowerPoint PPT Presentation

Writing Good Python But Python is already great!!! Readability Massive ecosystem Libraries, Frameworks and Tools Vibrant community Many other things 2 Writing Good Python Hello! I am Prashant Currently a


  1. Writing Good Python

  2. But Python is already great!!! ◆ Readability ◆ Massive ecosystem – Libraries, Frameworks and Tools ◆ Vibrant community ◆ Many other things … 2

  3. “Writing” Good Python

  4. Hello! I am Prashant Currently a Software Engineer at HubSpot 4

  5. Maintainability 𝟐 𝑵 ≈ 𝑼 ∗ (𝑺) ◆ M = Maintainability ◆ T = Amount of time it takes a developer to make a change ◆ R = Risk that change will break something. ◆ Cannot be strictly defined ◆ Can be judged by readability, coupling, consistency etc. 5

  6. Example 6

  7. Python Style Guide ◆ Batteries included principle ◆ PEP 8 - https://www.python.org/dev/peps/pep-0008/ ◆ PEP 257 - https://www.python.org/dev/peps/pep-0257/ 7

  8. Pylint ◆ pip install pylint ◆ Coding standards ◆ Error detection ◆ Refactoring – Duplicated code ◆ Customizable – Configure which errors/conventions are important using pylintrc file. Can write plugins to add a personal feature ◆ https://www.pylint.org/ 8

  9. 9

  10. ◆ List of pylint messages – https://github.com/janjur/readable- pylint-messages ◆ Alternatives – flake8, pyflakes etc. 10

  11. Example after Pylint fixes 11

  12. What about PEP 257? 12

  13. Pydocstyle ◆ pip install pydocstyle ◆ If we use consistent docstrings then there are several tools which can generate automatic documentation from code . 13

  14. 14

  15. Mypy ◆ pip install mypy ◆ Optional static typing for Python ◆ PEP 484 ◆ No runtime overload 15

  16. 16

  17. ◆ How to type hint types other than primitives? ◆ typing module – Any, Union, Tuple, Callable, List etc. ◆ Can create our own types ◆ typing.TYPE_CHECKING – A special constant that is assumed to be True by 3 rd party static type checkers. It is False at runtime. 17

  18. Bandit and Black Icing on the Cake 18

  19. Bandit ◆ pip install bandit ◆ Can detect security issues in the Python code ◆ https://github.com/PyCQA/bandit/tree/master/examples 19

  20. Black ◆ pip install black ◆ Code formatter 20

  21. Where to ensure? 21

  22. While Before After Push Writing Commit 22

  23. Pre-commit ◆ pip install pre-commit ◆ https://pre-commit.com/ ◆ It is a multi-language package manager for pre-commit hooks. You specify a list of hooks you want and it manages the installation and execution. ◆ Configured using .pre-commit-config.yaml ◆ List of available hooks – https://pre-commit.com/hooks.html 23

  24. Sample configuration ◆ pre-commit install ◆ pre-commit run 24

  25. The Zen of Python 25

  26. Thanks! Any questions? You can find me at https://linkedin.com/in/pc9795 26

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend