Usability heuristics are a useful way to evaluate an interface. An often overlooked aspect of Django apps is they’re interfaces too, one that connects the developer with a reusable solution. In this talk, we’ll learn how to apply usability concepts to Django apps to make them better to (re)use.
Django docs say "Reusability is the way of life in Python. You only need to write the parts that make your project unique". The Django way to write reusable code is Django apps, which are straightforward to write. The vast quantity of apps available in PyPI and Django Packages proves that.
However, there is one overlooked aspect of apps: they are an interface between the developer and a reusable solution for a problem. Therefore, as any interface, Usability Heuristics should be used to evaluate Django apps efficacy. In this talk, we'll learn how to apply Usability Heuristics to Django apps to make them better to (re)use.
Unix Philosophy and Django apps concept
Aesthetic and minimalist design
How to design for the 90% use case
Progressive disclosure and Affordance
How to write beautiful app code with declarative programming
How to write simple app code by minimizing state
Consistency and Recognition rather than recall
How common Django idioms increase recognition
How existing Django abstractions help increase recognition
How separating concerns with Django abstractions increase recognition
Flexibility and efficiency of use
How making the other 10% use case possible with an extensible granular API
The concept of Integration Discontinuity
How to break Django abstractions to increase extensibility
How a granular API allows composition of apps
Error prevention and recovery
How to use Django system check framework to prevent errors and give tips
How to fail-fast if an error occurs, preventing some unexpected state
How the community can help define a good practices checklist
Web developer from Brazil. Loves beautiful high-quality products, from UX to code, and will defend them against unreasonable deadlines and crazy features. Partner at Vinta (https://www.vinta.com.br/), a web consultancy specialized in building products with React and Django.