Skip to content

Latest commit

 

History

History
35 lines (28 loc) · 7.54 KB

Intro.md

File metadata and controls

35 lines (28 loc) · 7.54 KB

Всем привет!

В Андроид-мире архитектурой в общем и Чистой архитектурой в частности уже никого не удивишь. На практически любой конференции/митапе всегда будет доклад-другой об этом. И на самом деле это очень здорово, что разработчики все больше внимания уделяют данному вопросу. Ведь в итоге мы получаем работоспособное, стабильное и простое в сопровождении приложение. Я не беру в расчет героев-одиночек, которые пилят крутые приложения без каких-либо архитектур, и живут прекрасно. Дай Бог здоровья этим людям, ведь без них я даже не представляю, что будет с приложением потом.

Андроид-разработчикам больше приживается подход под названием "Clean Architecture". На самом деле, подход изначально презентовался Бобом Мартином, и на хабре можно найти несколько статей о том, как её видят разработчики Go и разработчики Python, например.
Основная идея подхода состоит в том, чтобы сделать приложение, которое:

  1. Не зависит от UI
  2. Не зависит от БД
  3. Не зависит от внешних фреймворков
  4. Является тестируемым

Таким образом, в хорошо спроектированном приложении можно "откладывать" решения до того момента, когда они действительно необходимы. Если разработка затянется, и вместо одной технологии хранения появится другая, или если ваше приложение вдруг станет хайповым, и хранилище "на файликах" перестанет справляться с нагрузкой - возможность лёгкой смены решения сыграет вам на руку. В итоге вы получаете слоистую и гибкую архитектуру. Вы получаете единый подход в осмыслении вашего приложения.

На текущий момент в интернете можно найти большое количество информации по этой теме. Как это часто бывает, местами она противоречит друг другу, местами она просто раскидана на множество частей. Но самое грустное заключается в том, что когда разработчик начинает использовать данный подход, он зачастую не знает с чего начать, и он спотыкается о множество деталей и нюансов.
В январе 2017 года был создан архитектурный чатик, призванный как раз помогать и приходить к чему-то единому в архитектуре. И в этом чатике мы в очередной раз убедились, что очень часто задаются одни и те же вопросы, и люди проходят по одним и тем же граблям. Не хватает просто хорошего практического рассмотрения определенных нюансов и примеров решения конкретных кейсов.
Именно поэтому мы решили попробовать создать некий "Clean Architecture CookBook" - ресурс, на котором можно будет посмотреть все элементы подхода "от А до Я", с теоретическим обоснованием и, что немаловажно, практическими примерами.
У нас за плечами большой опыт написания самых различных приложений с Чистой архитектурой, и мы уверенно можем сказать, что данный подход работает и делает нашу жизнь намного проще.

Итак, перед вами версия 0.1. Первый набросок, который состоит из трех частей:

  1. Теория. В этом разделе представлено краткое теоретическое введение в тему Чистой архитектуры.
  2. Практические вопросы. Обзор наиболее задаваемых вопросов в виде "Проблема - Решение".
  3. Практические кейсы. Самая сладкая часть. Реальные жизненные и нетривиальные кейсы, реализованные в парадигме Чистой архитектуры.
    Уже подробно рассмотрены Аутентификация и Визарды в Чистой архитектуре.
  4. Многомодульность в Android с точки зрения архитектуры. От А до Я
    Подробно рассмотрен переезд на многомодульность.

Сразу оговорюсь, представленное в CookBook мнение не является абсолютной истиной. Абсолютная истина не достижима, тем более в архитектуре. Но мы сделали попытку, и будем безмерно рады, если вы оставите свою обратную связь в виде звездочек и предложений/замечаний в виде issues и pull requests, которые можно обсудить либо в задачах, либо в чате.
Присоединяйтесь к проекту! Сделаем нашу программистскую жизнь проще и лучше! За Чистую архитектуру!

Авторы:
Евгений Мацюк(@eugene_matsyuk)
Артур Бадретдинов(@gaketo)
Александр Блинов(@xanderblinov)
Александр Жеребцов(@mansonheart)
и все-все-все в архитектурном чатике