$30 off During Our Annual Pro Sale. View Details »

It is but not an "architecture" talk

It is but not an "architecture" talk

#105 December Meetup - BlrDroid + BlrKotlin
https://www.meetup.com/blrdroid/events/256468726/

Ragunath Jawahar

December 01, 2018
Tweet

More Decks by Ragunath Jawahar

Other Decks in Programming

Transcript

  1. IT IS BUT NOT AN “ARCHITECTURE” TALK
    @RagunathJawahar | Uncommon

    View Slide

  2. TEAM SIZE
    • Lone wolf / she-wolf
    • 2 / 3 member team
    • 4 / 5 member team
    • 5 - 10 member team
    • Greater than 10

    View Slide

  3. EMOTIONS • Joy
    • Indifference
    • Annoyance
    • Frustration
    CODE BASE &

    View Slide

  4. TWO INFAMOUS STATEMENTS (EXCUSES)
    1. We don’t need an architecture.

    View Slide

  5. *Not drawn to scale
    Objects in front of you
    are closer than they appear
    Time
    Features
    Prototyping
    A/B Tests
    No architecture
    With architecture

    View Slide

  6. TWO INFAMOUS STATEMENTS (EXCUSES)
    1. We don’t need an architecture.
    2. They don’t give us enough time for
    architecture.

    View Slide

  7. WHAT’S REQUIRED
    Important Unimportant
    Urgent
    Not Urgent
    Structure
    Behavior
    Structure
    Behavior

    View Slide

  8. WHAT ENDS UP HAPPENING…
    Important Unimportant
    Urgent
    Not Urgent

    View Slide

  9. WHAT ENDS UP HAPPENING…
    Important Unimportant
    Urgent
    Not Urgent
    Structure
    Behavior
    Behavior

    View Slide

  10. Structure Behavior

    View Slide

  11. Structure Behavior

    View Slide

  12. Structure Behavior

    View Slide

  13. Structure Behavior

    View Slide


  14. The goal of software architecture is to minimise
    the human resources required to build and
    maintain the required system.
    -Robert C. Martin

    View Slide

  15. NO TIME FOR ARCHITECTURE?
    @rensvandenbergh

    View Slide

  16. SETTLING ON AN
    ARCHITECTURE

    View Slide

  17. View Slide

  18. FACTORS
    • Platform
    • Paradigm
    • Language
    • Tools & dev practices
    INFLUENTIAL

    View Slide

  19. FACTORS
    INFLUENTIAL • Platform
    • Paradigm
    • Language
    • Tools & dev practices

    View Slide

  20. IMPERATIVE FUNCTIONAL
    • MVC
    • MVP
    • MVVM
    • VIPER
    • MVI (One Way)
    • Redux
    *Not an exhaustive list

    View Slide

  21. IMPERATIVE FUNCTIONAL
    • Easy to learn
    • Mutability
    • Performance
    • Learning curve
    • Immutability
    • Predictability
    • Asynchrony
    *Not an exhaustive list

    View Slide

  22. DESIGN THINKING
    Explore
    Understand
    Evaluate Make

    View Slide

  23. MAKING & EVALUATING (ANDROID) ARCHITECTURES
    • Hello stranger
    • Counter
    • Login
    • BMI Calculator
    • Image chooser
    • Quiz with timer
    • Magnetometer

    View Slide

  24. QUALITY
    ATTRIBUTES

    View Slide

  25. UBER

    View Slide

  26. SOME COMMON QUALITY ATTRIBUTES
    • Testability
    • Adoptability
    • Adaptability
    • Availability
    • Reliability
    • Performance
    • Scalability
    *Not an exhaustive list
    • Security
    • Manageability
    • Buildability
    • Reusability
    • Maintainability
    • Simplicity
    • Efficiency

    View Slide

  27. WORKFLOW

    View Slide

  28. VISUALIZE

    View Slide

  29. VISUALIZE

    View Slide

  30. ESCAPE • Boilerplate
    • Slow down (feels like)
    VELOCITY

    View Slide

  31. QUESTIONS?
    @ragunathjawahar / GitHub / Twitter / Medium

    View Slide