this post was submitted on 21 Jul 2023
43 points (100.0% liked)

Programming

13368 readers
2 users here now

All things programming and coding related. Subcommunity of Technology.


This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

founded 1 year ago
MODERATORS
 

Why is it so in mobile development that 90% of projects does not have proper architecture, and when there is one, devs complain about it. I don't see it being a case for other technologies of development, only mobile. In mobile the project always has spaghetti code, barely any abstraction it is developed just to be finished as quickly as possible and that's it. And when there is clean architecture introduced, everyone complains. Why is it just a case in mobile development?

Just disclaimer: It is not like the architecture in project is completely new invention, it uses well known principles and approaches

you are viewing a single comment's thread
view the rest of the comments

A lot of the time its impatient management who want the fastest solution right now, demanding their jenga tower built from hollowing out the middle and never allowing time to fill in the gaps with any new blocks.

But i've also seen just plain inexperience from devs who have never seen a project become technically bankrupt. Some people just carry the expectations for a short lived app into a constantly iterated long lived app, not realizing that is the way to crunch and missed deadlines.

Compounding the inexperience issue is the use of bad architecture. Architecture is a bigger picture thing, not something to bang together a bunch of use cases and a bunch of factories. The purpose of architecture is to keep development easy and smooth for now and the future. If it doesnt feel nice to work in, it's not doing its job. If devs keep trying to cheat it, its time to add convienience tools to encourage them to do it right.

Clean Architecture for example is very nice, it really shines in projects intended to be iterated continuously on for over 5 years and many more. It mitigates the pain of replacing and upgrading old obsolete stuff. Using it for one marketing campaign app that's going to live for only 3 months is overkill though. For very short projects, you can see how its the wrong tool for the job.

Selecting the right architecture involves understanding the patterns used and knowing what problems those patterns were meant to solve. Thats the way to know if those problems are relevant to your project.