Managing Python Projects

Managing Python Projects

48mAdvanced2019-12-06

Authors

Miki Tebeka

Miki Tebeka

CEO at 353Solutions

Course details

While the work of coding can be a solitary endeavor, software developers don't work in a vacuum. In order to successfully bring their projects to the finish line, they must spend their days coordinating effectively with other developers. In this course, join Miki Tebeka as he shares best practices and tips for efficiently managing Python projects. Miki covers the essential non-coding tasks around Python programming, including how to best approach the directory structure for a project, tackle challenges related to dependency management, and determine what (and how much) to test. Plus, get general strategies for handling the development process, including how to use source control and issue tracking systems effectively.

Learning objectives
Avoiding common mistakes by leveraging a process
How code reuse can save you time
The proper directory structure for a Python project
Efficient dependency management
Various tests and when to use them
How much to test
Strategies for using source control
Using an issue tracking system effectively

Skills covered

AdvancedPythonProgramming LanguagesOpen SourceSoftware Development

Concepts

Introduction

  • Managing Python day-to-day
  • What you should know
  • Using the exercise files

Why Management Is Important

  • Working together as a team
  • Avoid mistakes
  • Code reuse

Directory Structure

  • Overview
  • README.md
  • init .py
  • Tests
  • Makefile
  • setup.py
  • Challenge - Slowmath project
  • Solution - Slowmath project

Dependency Management

  • The problem
  • Package managers
  • virtualenvs
  • Production vs. development
  • Challenge - Create environment
  • Solution - Create environment

Testing

  • What to test
  • How much to test
  • Pytest overview
  • Fixtures
  • Skipping and marks
  • Checking for exceptions
  • Challenge - Test cases from file
  • Solution - Test cases from file

Development Process

  • Working together
  • Source control
  • Issue tracking
  • Feature branches
  • Code review
  • Retrospective
  • Challenge - Implement features
  • Solution - Implement features

Conclusion

  • Next steps
40,000 Toman