Architecture Homicide: Red Alert

Architecture Homicide: Red Alert

Ahmed Ramy
·Feb 23, 2022·

2 min read

Subscribe to my newsletter and never miss my upcoming articles

Play this article

Table of contents

  • Why asking for people that know MVVM is a red flag in job posts and what should be written instead from my humble POV?

I’d spend a couple of hours studying, planning, and understanding a problem, just to solve it in minutes.

Why asking for people that know MVVM is a red flag in job posts and what should be written instead from my humble POV?

Sure in a team of people who work with a specific stack is logical to invite people who are good at it, but MVVM shouldn’t be your main concern, you want to invite people who are dependable in that stack or any other, so where the red flag might be u say?

It’s in how revered MVVM is around the whole project if the project is big and may contain different combined features like Social media and e-commerce (This is famous btw since u want to build a community around what u r selling)

Using MVVM with a reactive paradigm would be very great in Social media since you’ll need streams and real-time logic in place

However, the same might not be the case with e-commerce unless u r doing Auctions that includes real-time changes for example

But if u notice, we haven’t really talked about anything but presentation up till now, which is…. A design pattern to solve an issue ;)

So what issues do MVC, MVP, MVVM, or whatever u may find suitable?

Start with the class diagrams

Understand the flow

Understand the communication

Learn the slightest details and understand why we do this, that way

Why for instance, must not, under any circumstances, a ViewModel be directly linked with the previous layer? (May it the view, or an intermediary layer between them)

Why do we have dotted lines that represent a weak or an indirect reference to the previous layer?

Why the flow must be unidirectional?

Why implementing an offline-first is tricky and how your design might foresee future issues?

In the next section, we will learn those

 
Share this