Backlog: What Needs To Change, Or We Will All Die

Bugs

While establishing the project, there were a number of occasions where we though to ourselves, “WTF?”, but continued to hack at high speed. This is ok, as long as we gather refactoring records into our backlog.

See Bugs for a number of records from that time.

Refactoring After Featuritis

The first feature that was implemented is UserDB: Alternative Output Format - CSV. Wreaking havoc on the code base, we shoehorned that in, violating nearly every principle that defines our craft (see Design Principles: SOLID). Anyway, this gives us a chance to deliciously and fearlessly clean up the code base after the fact.

cluster_clean_code Is Software A Craft? Software Is A Craft! ⟶ Clean Code cluster_clean_code_features Features cluster_clean_code_bugs Bugs cluster_clean_code_refactoring Refactoring clean_code_features_csv UserDB: Alternative Output Format - CSV clean_code_features_other_indexes Search By Other Indexes clean_code_bugs_find_error UserDB::find() Crashes If User Not Found clean_code_bugs_overwrite_store_content_on_read UserDB::read(): What If Done Twice? clean_code_bugs_overwrite_existing_files Existing Files Are Overwritten clean_code_refactoring_backingstore_monolithic UserDB Has Too Many Responsibilities ⟶ BackingStore clean_code_refactoring_backingstore_monolithic->clean_code_bugs_overwrite_store_content_on_read clean_code_refactoring_backingstore_monolithic->clean_code_bugs_overwrite_existing_files clean_code_refactoring_store_enum_switch UserDB::{read,write}(): bool, Really? clean_code_refactoring_backingstore_monolithic->clean_code_refactoring_store_enum_switch clean_code_refactoring_store_enum_switch->clean_code_features_csv clean_code_refactoring_pass_store_in_ctor Load From BackingStore in Constructor clean_code_refactoring_pass_store_in_ctor->clean_code_bugs_overwrite_store_content_on_read clean_code_refactoring_pass_store_in_ctor->clean_code_bugs_overwrite_existing_files clean_code_refactoring_pass_store_in_ctor->clean_code_refactoring_backingstore_monolithic clean_code_refactoring_backingstore_interface BackingStore Has Too Many Responsibilities ⟶ Interface clean_code_refactoring_backingstore_interface->clean_code_refactoring_backingstore_monolithic