📜 ⬆️ ⬇️

Architectural pain manifesto

Hello! This will be an unusual article. This will be a manifest article! The architectural pain manifesto! Enough to endure, enough to keep it to yourself. Take and say whatever you think about architecture. Anything you think about "pure architecture"! Everything, everything, everything! From beginners to irrepressible geeks.

All under the cat!

image

If you looked here, it means that you and I are on the way, dear reader. One thing unites us all! Love! Love of beauty, love of order, love of extensibility and testability, love of flexibility and maintainability! Yes, this is a love of architecture.
')
Architecture. How much of this word. How unusual and multifaceted it is. For you and me, it means a lot.

You read a lot of articles, watched a video, tried and implemented the most diverse examples. You may forget to go for bread, but you always remember about architecture.

Or you are just at the beginning of the path. You learn, you try. And you want the people who continue your project not to want to burn in hell forever and ever.

But the enemy does not sleep! He created Android, invented the life cycle, activations and fragments, adapters and permishes. And the enemy gave us all to use it, lured us, but it did not say how to use it properly.

Enemies, they are.

And the architecture is such that the number of questions will always be greater than the number of answers. And the further, the more variations of answers. And not always these options work as intended.

A year ago, I spoke at Mobius 2016 with the report - “We write the code under test”. Even at the conference I was asked questions, the answers to which I could not give immediately. And I am sure that if you are an experienced developer, you will always find a task over which I will firmly think about it.

I'll give you a little secret. The forums often come across the same questions. If you read the code of developers who are trying to implement the "pure architecture" for the first time, then almost everyone stumbles upon the same rake. Don't you think this is all strange? Maybe you should streamline all these questions and rakes?

So let's combine our efforts, dear reader! Tell us about your problem that you or your colleague cannot solve, or about the problem that you managed to win and want to share a solution. Maybe you do not agree with such a "pure architecture", considering that the "mountain of abstraction" only confuses everything stronger. Maybe you have your own opinion, your opinion on all this. Or do you have a "killer task" that will destroy our idea of ​​an ideal world :) Most importantly, do not be silent! Tell me about your pain!

Any interaction should have a clear plan and a clear result. Therefore, I suggest that we agree with you on what we generally expect from each other.

Dear friend, I expect you to:

  1. Watching my video from the last conference .
  2. Read the blog Fernando Cejas .
  3. Read about RxJava. I highly recommend this book . For me, it was a real discovery, even though I considered myself to be versed in RxJava. Many thanks to Dmitry Polishchuk for the tip.
  4. Read about Dagger 2. Here I will give my articles ( 1 , 2 ). They contain links to other sources.
  5. Read and try different libraries that can make your life easier. This is Moxy , mosby and others.
  6. You can even see examples from Google :)
  7. Formulate problems, issues, disagreements. Write in the comments in a personal, on the mail. I would be very happy!

From myself, I promise the following:

  1. I will try to give reasoned, clear and clear answers to the most asked questions. As an example, these may be the following questions. Should there be a context in the presenter? Do I need getters in View or Presenter? How to deal with legacy code? What should be the package structure? A lot of questions :)

  2. I'll deal with you non-trivial tasks. How to deal with a loaded screen? Can we use several Presenters at once? Do we need an eventbus? How fast can your application translate into pure architecture rails? And if we have the entire application built on the “Observer” pattern, then what is there to do with that ??? I think you have an equally tricky question :)

We don’t have much time with you - until April 21-22, when Mobius 2017 ( announcement ) will take place. We must have time to carry out a huge preparatory work so that our final communication was the most productive!

I want to please you with another news! The well-known and aforementioned Fernando Cejas will also perform at Mobius. He plans to talk about the evolution of the project. About how the development and growth of the project to maintain its beauty and harmony, extensibility and maintainability.

And we with Fernando will try to make our reports complement and develop each other. After all, we both want you, dear reader, to leave the conference inspired by new ideas and solutions!

PS Thank you all very much for the feedback!
You can also write your questions in gitter , as well as in the telegraph group . I will gradually supplement the article with questions that arise. And before your eyes will always be a list of "grief and unhappiness" with which the developers courageously fight =)
In the comments, gitter and telegram, you can immediately discuss the difficulties encountered. Maybe someone has come across something similar and will share his decision with the community.
No question will not disappear and will not remain unanswered.

Source: https://habr.com/ru/post/319668/


All Articles