Skip to content

[REFACTOR] Enums from MijickCalendar and any other bad type names, add type alias if needed. #41

Description

@keetchcode

Code Refactoring Task: Implement SOLID Principles

Overview

The code for this project was intentionally written in a somewhat rushed and messy state. Your task for this ticket is to reorganize the codebase to make it cleaner, more easily readable, more scalable, and better adhering to SOLID design principles. Below is a list of minimum objectives for this task, but you should also improve the code beyond this point to make sure your team will be able to continue to improve on your project. Feel empowered during this process to rename files, functions, and properties to better reflect their purpose and behavior.

Objectives

  • Demonstrate understanding of and ability to implement SOLID principles
  • Practice making changes to a codebase without breaking major functionality
  • Improve code architecture to make future work and scalability easier and more efficient

Assigned Files

Minimum Tasks

Notes

  • While strictly speaking, refactoring would also require that you not make changes that break tests, the state of this code base may require you to bridge into some rewriting of code that goes beyond refactoring; that is okay.
  • Because this code was not well designed with SOLID principles in mind, the changes you make will likely break or require revisions to the code in the ViewControllers. Because your teammates are working on those files, this is likely to cause merge conflicts if not handled properly. Communication will be key to making this less of a headache.
  • Make sure to document your new code so it is easy for future developers to understand and maintain; see the requirements for the documentation tickets.

Acceptance Criteria

  • All files are refactored using SOLID principles
  • No changes are made to the user experience or functionality, except where required or justified

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

Status
Refactor

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions