Design Checklist
Practices concerning the high-level design of functions that is not specific to React, Typescript, or Javascript.
DE-01: Can you refactor to reduce duplication?
Are there blocks of code with more than a few lines of code that look similar? Is it possible to refactor to reduce duplication?
DE-02: Avoid deeply nested conditionals.
Are there multiple, deeply nested if/else blocks?
DE-03: Eliminate dead code.
Is there unused/unreachable code?
DE-04: Eliminate large comment blocks.
Is there a large amount of commented out code? If so, move it to the archive/ directory.
DE-05: Ensure comments are appropriate.
Are there unnecessary comments? Comments that describe the how? If so, eliminate them.
Is there complex and/or unintuitive code? Please add a comment to explain the why.
If you see improvements that cannot be made immediately, add a comment prefaced by "TODO:".
DE-07: Ensure code is readable.
Is the code readable? Code should be self-explanatory. Do you get a feeling a reading a story as you go through the code?
DE-08: Ensure code is DRY.
Does the code conform to the Agile Maxim of "Do not Repeat Yourself"? The same code should not be repeated more than twice.
DE-09: Ensure reusable code is exported or made available in the appropriate place.
Are there reusable services, functions and components that are not made available for reuse?