@reactnative_ru

Страница 281 из 878
Vladimir
27.08.2017
09:29:12
паттерн Command не вчера придумали

Nikita
27.08.2017
09:30:02
о! кидание паттернами началось

большая часть придуманных паттернов связана со специфическим подходом к ООП в C++ и Java

Pavel
27.08.2017
09:36:03
Если прикрутить поверх фунционального решения (React), штуку с императивным интерфейсом (MobX), то это конечно даст выигрышь в кратковременной перспективе. Не нужно ни с чем новым разбираться. Мутация данных делается привычными присваиваниями значений. Данные классами описываются. Только это все перпендикулярно подходу использованному в React. В нем не просто так избавились от императивных апдейтов DOM. Если кто-то думаю, что это для того что бы оптимизировать скорость рендеринга, то нет, это не так. Не скажу, что полностью доволен Redux, но он по крайней мере развивает идеи реакта, а не вводит обратно императивность. В итоге, многие задачи в Redux решаются маленькими middleware, которые даже можно написать самому. Попробуйте просто решить в MobX задачу менеджмента user history (undo, redo etc.), сериализации и десериализации данных. Сравните с тем, как это сделано в Redux.
React абсолютно не функциональное решнние, этот 100% императивное решение. Анду, реду это редкий кейс, который решается легко и без redux и без mobx.

Google
Nikita
27.08.2017
09:36:40
Это не так.

Vladimir
27.08.2017
09:37:08
ну чтобы сделать undo, тебе придется в любом случае сделать структуру данных, описывающую действие, функцию для действия и функцию, отменяющую действие.

Nikita
27.08.2017
09:37:26
зачем?

Vladimir
27.08.2017
09:38:38
затем, что иначе две трети твоего времени уйдет на то, чтобы отделить те данные, которые подвержены undo/redo от тех, которые не подвержены

Nikita
27.08.2017
09:39:31
это проще, чем команды писать

Vladimir
27.08.2017
09:39:39
нет

Nikita
27.08.2017
09:39:41
да

Pavel
27.08.2017
09:39:51
Это не так.
Я посмотрю как ты будешь с лёгкостью делать, анду реду в реальном мире на redux, когда тебе это все надо будет синхронизировать с сервером. Я думаю ты изменишь свои взгляды на редакс )

Nikita
27.08.2017
09:41:36
это легко делается с какой-то JS state management библиотекой?

Vladimir
27.08.2017
09:41:58
ты это делал?

Nikita
27.08.2017
09:42:21
это ответ на мой вопрос?

Pavel
27.08.2017
09:43:20
Nikita
27.08.2017
09:43:25
именно так

Google
Nikita
27.08.2017
09:43:36
но речь идет о сравнении редакса с мобиксом

я параллельно посмотрел, как кто делает хистори в mobX

пример от Formidable меня убедил

Pavel
27.08.2017
09:44:55
но речь идет о сравнении редакса с мобиксом
Все плюсы redux мне ни разу не пригодились в реальных проектах, твои минусы сильно портили жизнь

я параллельно посмотрел, как кто делает хистори в mobX
История с хистори это очень редкий кейс

Nikita
27.08.2017
09:46:09
в моем случае не редкий

но не важно я уже нашел пример на MobX, который меня устраивает

Pavel
27.08.2017
09:47:02
в моем случае не редкий
Твой случай это не показатель что редакс круто для всех )

Nikita
27.08.2017
09:47:17
так и ваши случаи не показатель, что MobX круче для всех :)

Nikita
27.08.2017
09:47:59
с тем, что какое-то отдельное решение не для всего и не для всех я полностью согласен

Pavel
27.08.2017
09:48:17
Nikita
27.08.2017
09:48:25
уважаю

я если ситуация позволит от JS откажусь

Pavel
27.08.2017
09:52:42
Mobx хорош и явно лучше чем redux, в качестве транспорта по доставке изменений в компонент

Nikita
27.08.2017
09:54:17
ты про количество кода, который надо писать и читать?

Denis
27.08.2017
09:55:03
Nikita
27.08.2017
09:55:11
я серьезно

Denis
27.08.2017
09:56:41
я серьезно
И на что заменить?

Nikita
27.08.2017
09:56:55
ClojureScript

Google
? animufag ?
27.08.2017
10:03:16
если все отменяемые действия описать в виде данных, то анду/реду изи же делается. просто список из действий и указатель на текущее действие. при том что в редаксе и так уже есть экшоны их просто нужно отфильтровать и поместить в стейт. как бы это базовое применение редакса это в принципе лучше ложится на фп, чем императивное

Pavel
27.08.2017
10:03:59
ты про количество кода, который надо писать и читать?
Да и про удобством и про производительность из коробки

Nikita
27.08.2017
10:04:17
Evgeny
27.08.2017
10:09:55
Всем доброго дня

https://stackoverflow.com/questions/44061155/react-native-npm-link-local-dependency-unable-to-resolve-module кто-нибудь знает как заюзать npm link в рамках https://github.com/react-community/create-react-native-app ? вот схожее ишью, но без ответа

Vadim
27.08.2017
11:28:17
Кто работал с геолокацией? getCurrentPosition возвращает неверные координаты (longitude: -122.08400000000002)

Алексей
27.08.2017
12:13:57
Всем привет. Мне тут нужно пробросить ObjC либу в рн и всё идёт вполне неплохо, но как я понимаю после детача/еджекта привычным экспо приложением пользоваться нельзя (что вполне ок) и указывать урл откуда берутся джс нельзя (что не ок). Надеюсь я чего то не понимаю и меня поправят. Крайне желательно чтобы пишущие на рн сотрудники не имели дело с икскодом (мосты пишутся один раз и обновляются в случае багов, то есть редко). И маки им были не обязательны, только айфоны. то есть кто-то собирает на маке дебажную сборку, заливает на айфон. разрабы запускают локальные серваки под любой ос, айфоны их находят. ну можно и релизную на устройство заливать, но всё равно там кажется жёстко указывается аккаунт в expo.io при сборке (не увеен само собой) Из текущей ситуации вижу только такой выход: писать ишью/пулреквест в экспо чтобы в дебажной сборке можно было указывать урл. или мб всё таки это как-то конфигурируется в ios проекте. демотивирующие ссылочки: https://forums.expo.io/t/change-development-url-of-detached-app/1049 https://dev.to/kayis/react-native-lessons-learned
Привет. Как раз после эджекта ты и сможешь указывать откуда брать js, это все в AppDelegate прописывается и в режимах сборки. Конечно у вас довольно специфичные требования, но в принципе думаю сделать можно. Нужны просто вопросы более предметные и конкретные, чем так ?

? animufag ?
27.08.2017
12:16:39
здорово, но в апделегате я и пытался найти что-нибудь похожее

ну и далее в сорцах экспо/рн

ну то есть мб ответ на поверхности но я не вижу

Pavel
27.08.2017
12:18:01
Алексей
27.08.2017
12:18:17
Во всем ) А в чем react функционален?
классно ты отвечаешь вопросом на вопрос

ты же вбросил что он не функционален

а теперь говоришь мне доказывать обратное

Pavel
27.08.2017
12:19:35
ты же вбросил что он не функционален
Да, потому что я не знаю ни одной причины что бы назвать реакт функциональным )

Алексей
27.08.2017
12:19:37
ну то есть мб ответ на поверхности но я не вижу
ну вот смотри мой AppDelegate, на этих строках и прописывается путь до бандла, думаю отсюда и надо начинать копать https://github.com/savelichalex/personal-bookkeeping/blob/master/ios/PersonalBookkeeping/AppDelegate.m#L36

? animufag ?
27.08.2017
12:19:47
Во всем ) А в чем react функционален?
ui функция от стейта, вместо вставок текста в лейауты, ты сразу описываешь весь лейаут

Google
Алексей
27.08.2017
12:19:57
Да, потому что я не знаю ни одной причины что бы назвать реакт функциональным )
я как бы попросил конкретные примеры где он императивен

а не где он функционален

Pavel
27.08.2017
12:20:03
? animufag ?
27.08.2017
12:20:41
ну то есть он ещё не иммутабельный но ближе к фп чем что бы там ни было раньше

ну или иммутабельный, но подозреваю там всё же есть хаки для производительности (речь о предоставляемом пользователю апи, а не о том как внутри устроено)

Pavel
27.08.2017
12:22:59
ui функция от стейта, вместо вставок текста в лейауты, ты сразу описываешь весь лейаут
Начнем с того что реакт компонент это класс, а не функция.

? animufag ?
27.08.2017
12:23:14
при чём тут фп?

Алексей
27.08.2017
12:23:36
Начнем с того что реакт компонент это класс, а не функция.
начнем с того что реакт компонент это объект а не класс

Pavel
27.08.2017
12:25:35
начнем с того что реакт компонент это объект а не класс
Ок, это объект косящий под ООП класс, но ни как не функция

? animufag ?
27.08.2017
12:25:50
классы по сути предоставляют полиморфизм по первому аргументу функции, что не противоречит фп. Хотя в современных фп-языках от этого отказываются в пользу тапйклассов/трейтов предоставляющих полиморфизм по всем аргументам/возвращаемым значениям

насколько понимаю в окамле есть те же классы/объекты

? animufag ?
27.08.2017
12:28:47
ну то есть у тебя есть class A { method foo(x) {} } class A extends B { override method foo(x) {} } и получается у тебя есть полиморфная функция foo с аргументом x и неявным аргументов this по которому она и выбирает конкретную реализацию

Алексей
27.08.2017
12:35:51
ясно, я понял что @pavelsilinw не хочет отвечать за свой вброс о 100% императивном реакте, а @vlastachu не в ту степь немного пошел) позвольте я поставлю точку тогда в этом не очень уместном по тематике чата споре. ФП можно понимать довольно широко, лично в моем понимании ФП это о композиции функций, именно поэтому в ФП превалируют чистые функции, которые легко композировать, собирать программу как из лего. Реакт очень хорошо под это определение подходит, так как результат рендера зависит от пропсов и он предсказуем. Компонентная система позволяет эти самые компоненты композировать и так же собирать view часть из них, как чистые функции в ФП. Но так же в React-е конечно есть императивные части (setState, refs, setNativeProps и т.д.) что тоже хорошо, так как не ограничивает тебя в рамках какой то парадигмы и позволяет просто решать задачи.

? animufag ?
27.08.2017
12:38:03
ну это просто банальная идея на поверхности что ооп не противоречит фп, но текущий ооп сильно навязывает императивщину тк каждый класс хранит в себе скрытый стейт и там где-то у себя его мутирует, что усложняет в перспективе тестирование программы

Алексей
27.08.2017
12:39:08
Google
? animufag ?
27.08.2017
12:40:56
ну инкапсуляция неймспейса ок, инкапсуляция стейта не ок (возможно неправильно употребля термины, проще говоря прайват/протектед не нужны)

Vladimir
27.08.2017
12:40:59
В реакте вполне мог быть rx и полная функциональщина. Без нее обошлись и это очень здорово

Потому что есть вещи, которые трудно описать функционально, без императивного кода

? animufag ?
27.08.2017
12:41:46
ну рх тоже такой двоякий

Stas
27.08.2017
12:45:35
reducer в редаксе, pure и functional components в реакте вполне себе функциональщина.

Nikita
27.08.2017
12:47:00
а так же HOC

Потому что есть вещи, которые трудно описать функционально, без императивного кода
number crunching алгоритмы я б точно не стал функционально писать

Andrey
27.08.2017
12:50:27
onResume

Алексей
27.08.2017
12:51:35
render и не должен срабатывать кмк. надо смотреть lifecycle андроида

Stas
27.08.2017
12:52:41
Зависит от того что случилось с приложением.

? animufag ?
27.08.2017
12:52:47
ну вот смотри мой AppDelegate, на этих строках и прописывается путь до бандла, думаю отсюда и надо начинать копать https://github.com/savelichalex/personal-bookkeeping/blob/master/ios/PersonalBookkeeping/AppDelegate.m#L36
видимо мне стоит отказаться от экспо, так как он внутри уже ставит делегат RCTBridgeDelegate и отнимать у него его опасно. но в то же время у экспо есть полезная фишка с раздачей бандлов по вайфаю, что терять не хотелось бы. возможно получится как-нибудь это совместить

Алексей
27.08.2017
12:53:25
в смысле раздача бандлов по вайфаю?

ты и на голом RN так можешь, может я чего то не понимаю?

? animufag ?
27.08.2017
12:54:08
я тут совсем новичок так что воспринимай мои слова с критикой

Алексей
27.08.2017
12:54:45
ну здорово в таком случае)
мне кажется что мы просто друг друга не поняли, расскажи лучше подробнее про какую ты фишку

Andrey
27.08.2017
12:54:52
как-то интересно было что получу с Expo и разобрал сбилденное приложение и решил от него отказаться

Алексей
27.08.2017
12:56:40
ну здорово в таком случае)
мне кажется что я начинаю понимать. ты про то что можно поставить проложение от экспо и в него просто бандл передавать?

чтобы не билдить нативную часть постоянно, так?

? animufag ?
27.08.2017
12:57:23
тип crna, потом npm start и он тебе пишет qr и с устройства читаешь этот qr сам я такого не проделывал и всё отлаживал на симуляторе, но я так понимаю он запускает локальный сервер и раздача с вайфая (мб конечно он просто загружает это на свой expo.io)

Страница 281 из 878