You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current codebase should be substantially simplified and clarified. There are a number of code smells (e.g. mega classes with no separation of concerns), and the codebase could benefit from following object oriented programming principles (e.g. composition over inheritance, dependency injection, etc.). The internals of PyLogit should undergo a large architectural refactor.
Things to do include:
reflect on and make use of most appropriate design patterns whenever possible. (Helpful tools here)
systematically search for and eliminate code smells
make use of more classes internally and less reliance on passing tons of arguments around
implement composition over inheritance
create custom exceptions
use python-valid8 for argument validation in functions
use attrs for class definition and validation of class initialization arguments
use marshmallow or cattr for serialization
use pydeps to generate dependency diagrams showing how modules relate to each other
use jupytext to version control notebooks
grappa for assertions in tests
behavioral testing (in Gherkin / English) for user acceptance testing
hypothesis for property testing and finding limits to the code
papermill for testing that the example notebooks run successfully
The text was updated successfully, but these errors were encountered:
Request
The current codebase should be substantially simplified and clarified. There are a number of code smells (e.g. mega classes with no separation of concerns), and the codebase could benefit from following object oriented programming principles (e.g. composition over inheritance, dependency injection, etc.). The internals of PyLogit should undergo a large architectural refactor.
Things to do include:
The text was updated successfully, but these errors were encountered: