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:
- Oracle JDK 25 Documentation — Official Java SE reference
- Oracle JDK 25: BigDecimal — Precise decimal arithmetic
- Oracle JDK 25: Record Classes — Record class reference
- JEP 409: Sealed Classes — Sealed classes specification
- JEP 395: Records — Records specification
Testing Frameworks:
- JUnit 5 User Guide — Official JUnit 5 documentation
Git and GitHub:
- GitHub Pull Requests Documentation — Official GitHub PR guide
- Git Documentation — Official Git reference
Style Guides and Linting:
- Google Java Style Guide — Industry-standard style guide
- Checkstyle Documentation — Official Checkstyle documentation
Tooling:
- JetBrains IntelliJ IDEA Documentation — Official IDE reference
This page is part of TCSS 305 Programming Practicum, School of Engineering and Technology, University of Washington Tacoma.