[#] [Перевод] Идиоматичный Redux: Дао Redux'а, Часть 1 — Реализация и Замысел
habrabot(difrex,1) — All
2017-06-12 04:00:05


Мысли о том, какие требования выдвигает Redux, как задумано использование Redux и что возможно с Redux.



## Введение



Я потратил много времени, обсуждая онлайн паттерны использования Redux, была ли это помощь тем, кто изучает Redux в [Reactiflux каналах][1], дискуссии о возможных изменениях в API библиотеки Redux на Github'е, или обсуждение различных аспектов Redux'а в комментариях к тредам на [Reddit'е][2] или [HN (HackerNews)][3]. С течением времени, я выработал свое собственное мнение о том, что представляет собой хороший, идиоматичный Redux код, и я хотел бы поделиться некоторыми из этих мыслей. Несмотря на мой статус [мейнтейнера][4] Redux'а, **это всего лишь мнения**, но я предпочитаю думать, что они являются достаточно хорошими подходами.



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



Несмотря на эту простоту, или, возможно, вследствие ее, существует широкий спектр походов, мнений и взглядов о том, как использовать Redux. Многие из этих подходов широко расходятся с концепциями и примерами из документации.



В то же время, [продолжаются жалобы][5] на то, как Redux «заставляет» вас делать вещи определенными способами. Многие из этих жалоб на самом деле включают концепции связанные с тем, как Redux обычно используется, а не фактическими ограничениями наложенными самой библиотекой Redux. (Например, только в одном недавнем HN треде я видел жалобы: «слишком много шаблонного кода», «константы action'ов и action creator'ы не нужны», «я вынужден редактировать слишком много файлов чтобы добавить одну фичу», «почему я должен переключаться между файлами чтобы добраться до своей логики?», «термины и названия слишком сложны для изучения или запутанны», и _слишком_ много других.)

[Читать дальше →][6]

[1]: https://www.reactiflux.com/
[2]: https://www.reddit.com/r/reactjs/
[3]: https://news.ycombinator.com/
[4]: https://github.com/markerikson
[5]: https://habrahabr.ru/post/330072/
[6]: https://habrahabr.ru/post/330692/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut