speaker-page

Flávio Juvenal

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.

Speaker home page

Your Django app is a User Interface

All things web, Intermediate
8/12/2017 | 3:15 PM-4:15 PM | Fisher East

Description

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.

Abstract

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.

Talk outline:

  • Unix Philosophy and Django apps concept

  • Aesthetic and minimalist design

  • How to design for the 90% use case
    • Progressive disclosure and Affordance
    • Docs first
  • 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

  • djangoappschecklist.com

  • How the community can help define a good practices checklist