185 похожих чатов

Не очень понимаю про Store - это плохо всегда или

плохо, когда синглтон?

9 ответов

21 просмотр

Глобальный Store плохо.)

 Mak-Makoni Автор вопроса
葉戈爾 Егор Олегович
Глобальный Store плохо.)

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

 Mak Makoni
То есть создать один Store, который работает с дан...

Блин, Вы такие неудобные вопросы задаете) На них нет ответа. Ну скажем так, без явной необходимости плохо)

 Mak Makoni
То есть создать один Store, который работает с дан...

Как правило им лучше не пользоваться. Это для т.н. cross-cutting concerns - например если у вас локализация нужна ну вот просто во всех компонентах без исключения, м.б. и есть смысл ее так внедрить. А если геолокация и она нужна только в определенных каких-то местах - лучше явно передать.

 Mak-Makoni Автор вопроса
Andrey
Как правило им лучше не пользоваться. Это для т.н....

ну простой пример. Есть текущий аккаунт пользователя. Есть 2 экрана - просмотр профиля и редактирование профиля Логично иметь какой-то один объект, который и отдаст во вьюхи данные, и примет новые чтобы обновить и ещё на сервер отправить

 Mak Makoni
ну простой пример. Есть текущий аккаунт пользовате...

Только вьюхи лучше дизайнить под то, что они показывают и только это в них и передавать. А логику где-то сверху сделать. Этот уровень где логика аппы связывается с UI называется composition root.

Andrey
Только вьюхи лучше дизайнить под то, что они показ...

Помятуя Ваше сообщение про пятилетнюю разработку на реакт. Я писал приложения, когда swift еще небыло, на старом добром objC. И тогда это тоже использовалось и никак не называлось. Просто хороший код. Все было просто и понятно. Есть ОПП, есть SOLID и есть паттерны. И все работало и никто ничего не усложнял, ну и деревья были выше и трава зеленее.

葉戈爾 Егор Олегович
Помятуя Ваше сообщение про пятилетнюю разработку н...

Так я тоже с середины 90х пишу и на iOS с момента его появления. ) ООП тоже не панацея, как минимум наследование из ООП теперь почти не используется, его заменили интерфейсы с композицией. А наследование, если вдуматься - это интерфейс с дефолтной реализацией методов, который у наследующих классов делает их tightly coupled к реализации базового, и это создает доп.когнитивную нагрузку (с каждым уровнем наследования нужно держать в голове все предыдущие), поэтому от него и ушли. А Р.Мартин - это ранний инфобизнес, попридумывал другие названия уже существующим подходам. Типа Separation of Concerns у него стал Single Responsibility и "про людей". И он много странных вещей тоже наговорил, которые можно понимать как хочешь - например, что у хороших функций мало аргументов, а в идеале их нет вообще. Я бы это воспринял как совет не делать несвязанные вещи в одной функции (соответственно и аругентов мало будет), НО у него в примерах "чистого" кода в книжке - функции вместо аргументов используют сайд-эффекты (мембер переменные) для общения, а как по мне это хуже, чем если бы у них были аргументы и можно было разбирать каждую функцию в изоляции не держа в голове весь контекст. Мне еще странно было читать его критику Swift-а и стронг тайпинга, в духе (не дословно, но суть я понял так) - ответственность за отсутствие ошибок лежит на разработчике, зачем еще компилятору типы проверять? А если я решу поменять тип переменной мне что, во всех местах типы менять? http://blog.cleancoder.com/uncle-bob/2017/01/11/TheDarkPath.html SOLID неплохой набор принципов, только не затрагивает многие важные вещи (например про coupling и cohesion), подогнан под красивый акроним - S+I это по сути один принцип, название L за уши притянуто, для S придумано другое название создавшее доп.путаницу при вольных трактовках (если оно про "людей" - то нормально ли, что один модуль делают много задач, нужных одному 'актору'?), а D все путают с IoC контейнером описанным Fowler-ом. ))

Andrey
Так я тоже с середины 90х пишу и на iOS с момента ...

Ну я немного другое имел ввиду. Согласен со всем, но мысль другая. Общая концепция того, что происходит в рамках приложений/программ - не меняется, меняются инструменты создания. Apple молодцы, дали прикольный инструмент (я про SwiftUI), но все же знают как лучше и вместо того, чтобы погрузится в инструмент, понять как он работает и т.д. начинают изобретать решения несуществующих проблем. Писать код, ради кода и т.д. Но чисто с прикладной точки зрения, все эти «новомодные» штучки, создают больше проблем, чем приносят пользы. Я не про глобальные вещи, понятно, что развитие не стоит на месте. Скажем так - SwiftUI глобальная штука, очень сложная технически и очень мощная. Всякие там попытки исполнить архитектурный выкрутас НЕ вникнув, что происходит «новомодная» фигня)

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Карта сайта