Project Checklist
These checklists are designed to serve as reminders as you work on your two-week project and final project in CS222. The lists come from a combination of research, documented best practices, and experience with what kinds of things student programmers tend to overlook.
Commit Checklist
Have I removed all compiler warnings or documented the reason for suppressing them?Have I removed all compiler errors?Have I run all of my unit tests and do they pass?Do all of my fields, methods, and types have appropriate access control modifiers?Have I eliminated static members except for main, constants, and static factory methods?Have I used meaningful names?Have I used monads wherever possible?Have I refactored long methods and deeply-nested control structures?Have I replaced vertical whitespace within a method with appropriate abstractions?Have I formatted every source file and eliminated unnecessary vertical whitespace?Can I state the single responsibility of each class?Is my committer name specified according to git conventions, as “Real Name <username@bsu.edu>”?Is the first line of my commit comment a present-tense verb phrase giving the reason for the commit? If the one-line summary is insufficient, have I included a blank space and then written a more complete description?Iteration Checklist
Have I checked that all my dependencies are specified within the project?Will the project build properly when cloned to a clean machine?Is my domain model separate from my view?For anything I can do through the view, can I also test that behavior at the model layer?Is my domain model separate from my persistence layer? Can I populate my domain model independently of my persistence layer?Is my current test coverage justifiable?Have I tested this increment with representative end users?Do I have just one head in my repository?Is the increment tagged in the repository?