Skip to content

A1c Guides

These guides support Assignment 1c. Read them as you work through the assignment.


Git Workflow

Guide When to Read
Git Branching and Pull Requests Before starting — A1c requires working on a dev branch and merging via PR

Object-Oriented Design

Guide When to Read
Inheritance Hierarchies Understanding the Item → AbstractItem → StoreItem/StoreBulkItem pattern
Sealed Types and Records Understanding the provided ItemOrder and CartSize records
Interface Contracts Review — implementing from interface specifications

Implementation Guides

Guide When to Read
Implementing equals, hashCode, and toString Implementing Object methods in your classes
BigDecimal and BigInteger Working with precise monetary calculations
Defensive Programming Validating constructor parameters, fail-fast principles

Testing

Guide When to Read
The equals and hashCode Contract Testing your equals/hashCode implementations
Writing JUnit 5 Tests Writing test classes for your implementations

Code Quality

Guide When to Read
Linters and Code Quality Keeping your code clean
Checkstyle Rules Reference Fixing Checkstyle violations
IntelliJ Inspections Reference Fixing IntelliJ warnings

References

This section consolidates references from all guides linked above.

Primary Texts:

  • Bloch, J. (2018). Effective Java (3rd ed.). Addison-Wesley.
  • Horstmann, C. S. (2022). Core Java, Volume I: Fundamentals (12th ed.). Oracle Press.
  • Chacon, S., & Straub, B. (2014). Pro Git (2nd ed.). Apress. Available free online

Language Documentation:

Testing Frameworks:

Git and GitHub:

Style Guides and Linting:

Tooling:


This page is part of TCSS 305 Programming Practicum, School of Engineering and Technology, University of Washington Tacoma.