Pull to refresh

Манифест архитектурной боли

JavaDevelopment of mobile applicationsDevelopment for Android
Всем привет! Это будет необычная статья. Это будет статья-манифест! Манифест архитектурной боли! Хватит это терпеть, хватит это держать в себе. Возьми и скажи все, что думаешь об архитектуре. Все, что думаешь о «чистой архитектуре»! Все, все, все! От начинающих до неудержимых гиков.

Все под кат!

image

Если ты заглянул сюда, значит нам с тобой по пути, дорогой читатель. Всех нас объединяет одно! Любовь! Любовь к красоте, любовь к порядку, любовь к расширяемости и к тестируемости, любовь к гибкости и поддерживаемости! Да, это любовь к архитектуре.

Архитектура. Как много в этом слове. Как необыкновенно и многогранно оно. Для нас с тобой оно много значит.

Ты прочитал много статей, просмотрел видео, попробовал и реализовал различнейшие примеры. Ты можешь забыть сходить за хлебом, но об архитектуре всегда помнишь.

Или ты только в самом начале пути. Ты учишься, ты стараешься. И ты хочешь, чтобы люди, которые продолжат твой проект, не желали тебе гореть в аду на веки вечные.

Но враг не дремлет! Он создал Android, придумал жизненный цикл, активити и фрагменты, адаптеры и пермишены. И враг дал нам всем этим пользоваться, заманил нас, но при этом не сказал, как правильно пользоваться.

Враги, они такие.

А архитектура она такая, что количество вопросов всегда будет больше количества ответов. И чем дальше, тем больше вариаций ответов. И далеко не всегда эти варианты срабатывают так, как задумывалось.

Год назад я выступал на Mobius 2016 с докладом — «Пишем тестируемый код». Еще на самой конференции мне задавали вопросы, ответы на которые я мог дать далеко не сразу. И я уверен, что, если ты опытный разработчик, у тебя всегда найдется задача, над которой я крепко призадумаюсь.

Еще открою тебе маленький секрет. На форумах часто попадаются одни и те же вопросы. Если почитать код разработчиков, которые пробуют первый раз реализовать «чистую архитектуру», то практически все натыкаются на одни и те же грабли. Тебе не кажется все это странным? Может, стоит упорядочить все эти вопросы и грабли?

Так давай объединим наши усилия, дорогой читатель! Расскажи о своей проблеме, которую не можешь решить ты или твой коллега, или о проблеме, которую удалось победить и решением которой хочется поделиться. Может ты не согласен с так таковой «чистой архитектурой», считая, что «горой абстракции» только все запутывается сильнее. Может у тебя есть свой взгляд, свое мнение на счет всего этого. Или у тебя есть «убийственная задача», которая разрушит наше представление об идеальном мире :) Самое главное не молчи! Расскажи о своей боли!

Любое взаимодействие должно иметь четкий план и четкий результат. Поэтому предлагаю нам с тобой договориться, что мы вообще ожидаем друг от друга.

Дорогой друг, я ожидаю от тебя, что ты:

  1. Просмотришь мое видео с прошлой конференции.
  2. Прочитаешь блог Fernando Cejas.
  3. Почитаешь про RxJava. Я настоятельно рекомендую вот эту книжку. Для меня она стала настоящим открытием, даже несмотря на то, что я себя считал разбирающимся в RxJava. Большое спасибо Дмитрию Полищуку за наводку.
  4. Почитаешь про Dagger 2. Тут я приведу свои статьи (1, 2). В них указаны ссылки и на другие источники.
  5. Почитаешь и попробуешь разные библиотеки, которые могут облегчить твою жизнь. Это Moxy, mosby и другие.
  6. Можешь даже посмотреть примеры от Гугла :)
  7. Сформулируешь проблемы, вопросы, несогласия. Пиши в комментарии, в личку, на почту. Буду очень рад!

От себя же я обещаю следующее:

  1. Постараюсь дать аргументированные, ясные и четкие ответы на наиболее задаваемые вопросы. Как пример, это могут быть следующие вопросы. Должен ли быть Context в Presenter? Нужны ли getterы в View или Presenter? Как бороться с legacy кодом? Какова должна быть структура пакетов? Вопросов очень много :)

  2. Разберу с тобой нетривиальные задачи. Как быть с нагруженным экраном? Можем ли мы заиспользовать сразу несколько Презентеров? Нужен ли EventBus нам? Как быстро ваше приложение перевести на рельсы чистой архитектуры? А если у нас все приложение было построено на паттерне «Наблюдатель», то, что вообще делать то с этим??? Я думаю, у тебя найдется не менее коварный вопрос :)

Времени у нас с тобой не так уж и много — до 21-22 апреля, когда пройдет Mobius 2017 (анонс). Мы должны успеть провести огромную подготовительную работу, чтобы наше финальное общение было наиболее продуктивным!

Хочу обрадовать тебя еще одной новостью! На Mobius будет еще выступать небезызвестный и вышеупомянутый Fernando Cejas. Он планирует рассказать про эволюцию проекта. Про то, как при развитии и росте проекта сохранить его красоту и стройность, расширяемость и поддерживаемость.

И мы с Fernando постараемся, чтобы наши доклады дополняли и развивали друг друга. Ведь мы оба хотим, чтобы ты, дорогой читатель, вышел с конференции вдохновленным новыми идеями и решениями!

P.S. Всем большое спасибо за обратную связь!
Свои вопросы можете также писать в gitter, а также в группе телеграма. Я буду постепенно дополнять статью вопросами, которые возникают. И у вас перед глазами всегда будет список «горя и несчастий», с которыми разработчики мужественно борятся =)
В комментах, gitter и телеграме можно будет сразу же обсуждать возникающие трудности. Может кто-то сталкивался с чем-то подобным и поделится с сообществом своим решением.
Ни один вопрос не пропадет и не останется без ответа.
Tags:androidandroid developmentdagger 2javaarchitecture designmobile developmentmobius2017
Hubs: Java Development of mobile applications Development for Android
Total votes 50: ↑26 and ↓24 +2
Views10.5K

Comments 18

Only those users with full accounts are able to leave comments. Log in, please.

Popular right now