Skip to content

LSSTDESC/Berkeley2019SWE

Repository files navigation

Collaborative software development in Python

Dark Energy school: session on Software Engineering

Course preparation

  1. Install Python version 3.5 or newer. Install the dependencies for this course using pip install -r requirements.txt. Run python check_setup.py to verify your installation.
  2. Install an editor, such as Atom or VS Code
  3. Ensure you can execute commands on the terminal / shell. E.g., commands such as python, git, and pytest should run.
  4. Read How To Write Good Scientific Software.

Schedule

15:15–17:00

End with 15 mins. Q&A, if time allows.

Outcomes

General

  • Discuss best practices for design & collaborative coding.
  • How do you best organize a remote collaboration? Meetings, PRs, sprints, chat?
  • Discuss classes vs functions; when is OOP needed in practice? Keep it simple—the truth about clever code. Premature optimization.
  • How to package your code (vs just keeping it in a notebook)

Students will be able to do the following:

Git/GitHub

  1. Make and navigate branches on Git
  2. Make a git commit to a project
  3. Submit your change as a pull request on GitHub
  4. Review someone else's pull request

Modular APIs, testing

  1. Write a function in Python
  2. Write a docstring for that function
  3. Write a test for that function + corner cases
  4. Execute those tests locally
  5. Have Travis-CI run these tests online
  6. Develop your own Python package, installed using pip install -e ..

Reading from last year

Pre-lesson readings & post-lesson resources:

Resources