Pull to refresh
@Druuread⁠-⁠only

User

Send message
А, решили поторговаться?

О чем? Я с самого начала сформулировал некую гипотезу, четко и ясно обозначив, что это лишь гипотеза. И потом я неоднократно это повторял (и повторяю, лол).
То, что я говорил, будто это какой-то достоверный факт — ваша выдумка от начала и до конца.


Я процитировал ваши слова.

И где в них написано, что рассматриваемая гипотеза — это достоверный факт, в котором я на 100% уверен?
Вы просто это выдумали и теперь раз за разом продолжаете врать, не обращая внимания на факты. В точности как с ковидом кстати, лол. Видимо, это такое характерное отклонение психики — если уж человек игнорирует реальность, то он ее игнорирует по полной.


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

Эта гипотетичность была очевидна из контекста (см. "косвенные данные"), но даже если не так — абсолютно любое утверждение автоматически считается гипотезой, если ясно не сказано иное (что-то вроде "уверен на 100%", "это непреложный факт", "верно на столько же, на сколько 2*2=4" и др.). Вы ее не поняли — что ж, бывает, это вполне нормальная ситуация, когда при общении какие-то моменты могут оказаться не вполне понятными собеседнику. Поэтому, как только я обнаружил ваше непонимание — то сразу его устранил, четко и однозначно прояснив свой пост. Адекватный собеседник в таких случаях говорит: "а, ок, неверно тебя понял" и потом продолжает разговор в рамках нового контекста. А вы продолжаете уперто воевать с ветряными мельницами и спорить с вещами, которых никто никогда не говорил.


Wesha


А что буратина такая ("люби себя, чихай на всех; если от моего чиха умрёт чей-то отец — ну и Цой с ним") выросла — не жалко?

Нет, не жалко. Это же приличный человек (нет причин полагать иное), который спокойно себе живет, никому не мешает, никому не вредит.


Я всего лишь собираюь вернуть ей её же монету.

Какую монету? Он же ничего вашему отцу не сделал. Зачем вообще вы отца из дома выпустили, если опасались за его жизнь? Зачем вы перекладываете ответственность за смерть своего отца с себя на другого человека? Если ваши действия в итоге привели к смерти родственника — примите это.


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

Я внимательно изучил коммент, никакой фразы про «это моя гипотеза» в нём нет.

Верно, зато там есть:


у меня есть косвенные свидетельства

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


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

А Вы задумались о том, КАК ИМЕННО пенсионер — божий одуванчик, сидевший себе дома и никого не трогаший, вдруг оказался заражённым болезнью X, если "страшно-ужасной пандемии нет"?

Так же как и любой другой болезнью.


Ради бога, буратины имеют полное право болеть и умирать сколько их душе угодно, и мне даже по@#$й, что с ними случится — у нас личная свобода. Но эта буратина своим ра… здолбайством нарушила свободу моего отца

Нет, никто ничего не нарушал.


Если когда-нибудь найду ту буратину — нарушу её аналогичное право, пусть не обессудит.

Жалко, конечно, вашего отца. Не то, что он умер жалко — shit happens, как говорится, человек смертен, и, более того, внезапно смертен.
Жалко то, что у него сын таким вырос.


Am0ralist


А, вы тут только что переобулись и перестали выставлять как факт то ваше выдуманное число?

Так я ничего как факт и не выставлял, это ваша выдумка. Я неоднократно вам четко и ясно, вот прям в таких словах говорил: "это — гипотеза". Но ковидобесы — они же как сторонники всемирного заговора рептилоидов или члены общества плоской Земли. Живут в каком-то своем выдуманном мире.


да-да, вы уже перешли к стадии «торговля». изначально вы отрицали и верещали, что не хуже гриппа

Нет, это все исключительно ваши личные фантазии.
Продолжайте воевать с ветряными мельницами.

Нет, их таковыми пытаются рассматривать те, кто ищет их в физических объектах — таких, как мозг, например. Физикалисты.

Нет, физикализм с этим ничего общего не имеет.


Первый вопрос вполне осмысленный, это вопрос о существовании других субъектов.

Нет, это вопрос об обладании свойством.


И это действительно вопрос о самостоятельном объективном существовании квалиа

Квалиа, по определению, не существуют объективно и самостоятельно.


И ещё, мне странно читать такие заявления от платониста… С позиции платонизма цвета как раз существуют объективно — как и прочие многочисленные абстрактные объекты, к которым ум имеет особый когнитивный доступ.

Не цвета — а идеи цвета. Не объекты — а идеи объектов. Круг и идея круга — это принципиально разные вещи. Концепция круга, которую мы мыслим, не тождественна идее круга из платоновского мира идей — в той же мере как мыслимое мной изображение помидора не тождественно помидору.


И теперь вопрос к Вам — как такое возможно, если субъект принципиально не способен (как Вы утверждаете) знать, восприятие какого цвета он имеет в настоящее время?

Ну, он ошибается, вот и все.


Мой ответ, снова: явление сенсорного квейла в восприятии это пример знания при непосредственном знакомстве. Если человек имеет такой квейл — например, конкретный цвет — и в это же самое время задаётся вопросом "какой я сейчас вижу цвет", то ему не нужно вспоминать, потому что этот конкретный цвет доступен его вниманию в реальном времени.

Ну, как бы, нет. Мозг так не работает. То, что вы, например, видите — вообще ретроспективно записывается в кратковременную память. Подойдите к зеркалу и поочередно смотрите то в левый глаз, то в правый. Вы не увидите в зеркале, как ваши глаза двигаются — хотя вы это четко увидите, например, на записи. Почему? Потому что после того как ваш глаз совершил движение, картинка, которая была получена после окончания движения, ретроспективно записывается в ту область памяти, которая хранит информацию об ощущениях, полученных во время движения. В итоге вы ощущаете, что видели картинку, еще до того как эта картинка физически появилась (т.е. еще до того как вы могли бы в теории ее увидеть — вы видите себя, смотрящего в левый глаз, в тот момент, когда на самом деле ваш взгляд только переходит с правого глаза на левый).
Это то, как оно работает в реальности — а не теоретические мысленные эксперименты :)


Вроде, я ещё ни разу не спорил с тем, что знание по памяти на деле не является знанием

Но никакого другого у вас нет.


Конечно, не выходит, т.к. нет такого факта.

Как же нет? любой здоровый человек может чувствовать квалиа в других объектах.


Как бы там ни было, я не сенсопат, не эмпат и не телепат.

Я тоже. Но этого и не надо — достаточно наличия зеркальных нейронов. Ну или что там конкретно у человека отвечает за умение сопереживать.

У нас в одном районе РБ смертность за год выросла на 27%. Во Франции самая большая смертность со 2 мировой. Это не копеечная смерность

Я сейчас для многих открою страшное (кто-то, возможно, спать нормально теперь не сможет) — на самом деле, в зимний период каждый год смертность растет на 10-30%.
И ничего, никто не устраивает апокалиптических плясок по этому поводу.


Wesha


Расскажите, пожалуйста, моему отцу, что "страшно-ужасная пандемия не существует". А то он, бедняга, не в курсе.

Представьте себе, тот факт, что кто-то умер от болезни Х, не говорит о существовании "страшно-ужасной пандемии" болезни Х.


Am0ralist


Это вы про то, что как все сезонные ОРВИ, в летние периоды идёт значительный спад заболевания?

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


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

Ну, это была лишь гипотеза для того, чтобы объяснить, почему вирус в странах, где есть локдаун, ведет себя в точности так же, как в странах, где никакого локдауна нет. Она оказалась верной лишь частично — теперь мы уже знаем, что основной причиной была сезонность. На главный вывод это не влияет, впрочем — локдаун оказался бесполезен. Это было понятно весной (просто исходя из теоретических рассуждений), это было косвенно подтверждено к лету, ну и сейчас, когда началась вторая волна — это уже достоверно доказано на практике.


При этом панические крики про то как МЫ ВСЕ УМРЕМ так и остались просто паническими криками — за два сезона в сша 500к умерших, 250к на сезон. От гриппа при этом умирает 40-80к за сезон, вполне сравнимые числа.

Ну это уже смотря как считать — по людям или по вакансиям

Если мы хотим ответить на вопрос о реальных зарплатах — то считать следует, конечно, по людям. При чем тут вакансии?


«А джуны на медиану вообще не оказывают существенного влияния, т.к. сколько вообще вакансий для джунов?»

Ну, большинство. Мы же понимаем, что если в вакансии сказано: "требуется сениор, зп 80к", то на самом деле требуется не сениор, правда? :)

З/п 130к для Питера — это в принципе нормальная зарплата для strong middle'а, и очень скромная для синьора, так что медиана в статье, как по мне, реально больше.

Так числа не для сениоров указаны, а для всех грейдов. На одного strong middle'а приходится с полдесятка+ джунов и мидлов классом жиже с зп существенно меньшей, с-но медианная зп — это зп джуна или начинающего мидла. Просто потому что таких большинство.
А сениоры на медиану вообще не оказывают существенного влияния, т.к. сколько тех сениоров? Сениорская зп — это, собственно, тот самый 90%+ квантиль, т.е. 220к+ — и это с учетом регионов, а не Москва/Питер.

Вы еще забыли упомянуть уникальную квантово-механическую природу вируса, когда он одновременно и есть и его нет — в зависимости от текущей политической ситуации ;)

Но для справочки скажу вам свой бакалавр я закончил в сфере Corporate Finance / Investment and Portfolio Managеment, так что я прекрасно понимаю как работает стоп лосс и обязательства брокера.

Ну, тогда вы еще должны знать, что первое правило трейдера — не позволять себе рассуждений вида: "вот если бы я тогда позицию (не) открыл/(не) закрыл!" :)

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

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

Есть относительно релевантная штука — compact regions — можно один раз заэвалюэйтить терм и собрать мусор в транзитивном замыкании

Да, про это в курсе, но не совсем то. Я говорю несколько о другом сценарии.


Пусть у нас есть перемещающий сборщик — тогда затраты на сбор мусора пропорционально количеству достижимых данных. Тогда идеально запускать сборщик ровно тогда, когда у нас минимум достижимых данных и максимум недостижимых.
Далее — допустим у нас есть некоторая ф-я, которая что-то вычисляет — при этом порождает данные в процессе вычисления. Пусть это будет например 11мб данных (числа просто условные). Возвращает ф-я просто одно число, допустим. При этом ф-я вызывается в лупе.
С-но у нас есть два крайних случая — в первом случае (худшем) сборщик вызывается по триггеру, например, при 21мб заполненной памяти. Это значит что на каждом вызове будет 11мб недоступных данных (на которые нам пофиг) и 10мб доступных (которые сборщик должен обработать).
Идеальный сценарий — это если сборщик будет вызван непосредственно после вычисления ф-и. Тогда у нас вообще нет достижимых данных, он отрабатывает "мгновенно".
Вот собственно мы могли бы на этот луп вырубить гц и дергать его непосредственно после каждого вызова ф-и — это бы и дало идеальный сценарий работы.

Локальные тоже могут писать плохо, так как они же локальные и "всем все равно, как они реализованы".

Локальные сторы писать плохо — трудно и лениво. Необходимость далеко прокидывать пропсы вынуждает думать об организации данных.
В случае же глобального стора — полная свобода.

и ты в модели, одним поиском находишь все места, в которых этот параметр использовался и мог изменяться, а не бегаешь по пропсам

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

Абстрактные примеры, боюсь, тут не к месту — все еще был бы рад увидеть, как вы в Реакте организуете доступ компонентов с локальными состояниями к данным друг друга

Не понял вопроса. Локальное состояние на то и локальное, что к нему доступа за пределами "локального пространства", в котором оно определено, нет. Иначе какое же оно локальное?


По поводу вашего примера — как раз так делают и это эффективней:

Серьезно? Ну покажите мне проект, в котором вместо локальных переменных в ф-ях используют глобальные. Такой код нигде ревью не пройдет.


Любой потребитель может подключиться к CountStore и использовать его данные

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


Вообще, откуда в голову приходит эта странная идея — подключать компонент к локальному стейту другого компонента? Вам же не приходит в голову "на всякий случай" вынести локальные переменные какой-то ф-и в глобальный стейт, потому что "вдруг в какой-то другой ф-и понадобится доступ к этой локальной переменной"? А почему не приходит? В чем разница?


С локальными состояниями все становится сложнее — сайд-эффекты придется описывать в самом компоненте, который хранит стейт

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


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

"очень плохо совать данные в глобальный стейт" — это старая истина, которая известна программистам уже много десятков лет (с тех пор как придумали понятие скоупа и модульную систему). Я вам выше привел пример того, как выглядит отказ от использования глобального стейта.
Любой перенос локального стейта в глобальный на порядок усложняет затраты на поддержку кода, т.к. вы не можете гарантировать потом корректность этого кода. Если ваш стейт глобален — то любые изменения в этом стейте могут совершенно случайным и непредсказуемым образом сломать что угодно в вашей программе. Если стейт локален — сломаться что-то может только в поддереве, при этом все зависимости данных явно обозначены.
Естественно, это предполагает определенной работы по грамотной декомпозиции — но в итоге вы получаете качественный код, который легко поддерживать. Только взглянув на данные (точнее — на их расположение) вы можете сразу сказать, кто и как их использует — что невозможно, когда данные лежат в глобальном стейте.
Если же все бездумно сгребать в глобальный стейт, как в мусорку — это и превращается в мусорку. И проект через несколько лет достигает фазы: "поддерживать невозможно, выкинуть — и переписать с нуля".


Экшены, про которые я говорил — обычные функции модификации стора aka методы, как в примере выше

Ну, так это не экшон, это и есть обычная функция.


а не то, что redux под ними подразумевает

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

"Точечный доступ" как раз увеличивает связность компонентов и добавляет лишние церемонии, это горизонтальное и parent-child общение между компонентами приводит к большой запутанности

Но ведь все ровно наоборот. Ограничение доступа к данным — это вообще основной метод борьбы со сложностью.


Перенос данных в глобальный стор — этот то же самое, что вместо:


function f(x, y) {
    const z = x + y;
    return z;
}
console.log(f(1, 2));

писать:


let x, y, z;
function f() {
    z = x + y;
}
x = 1;
y = 2;
f();
console.log(z);

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


Я описывал неудобства.

Где?


Почему формы должны быть на глобальных конфигах — отдельная большая тема

  1. Данные форм не должны быть глобальными
  2. Формы не должны быть на конфигах в принципе впрочем, я могу тут неверно интерпретировать, что вы подразумеваете под "на конфигах").

возможность легко получить доступ к данным формы из других частей приложения

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


Экшены — не события, а модификаторы стора с возможностью асинхронных вызовов.

Это не так. Если вы интерпретируете экшены как модификаторы стора, то вам не нужны экшены как таковые.
Смысл использования экшенов вместо обычных ф-й, которые напрямую апдейтят данные в сторе — в том, чтобы апи модели не зависело от, собственно, самой модели данных.


В описанном мной подходе вызываются лишь экшены — модификаторы стора, которые никак не зависят от view и не знают о нем, а просто меняют данные

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


(эти хаки нужны только при подходе с локальным состоянием)

Зачем?

Когда вы начнете приводить конкретные примеры, не исключено, что у меня появится повод объяснить, причем тут размер и организация игрового пространства. :)

Вообще ни при чем. Нелинейность — это логическое свойство.


И снова на вопрос о конкретике — категоричная декларация "я так сказал". Мне не сложно, я в третий раз задам вопрос — где, в чем конкретно в BG "безусловно" содержится "на порядок большая нелинейность", которой нет в Киберпанке?

Эм, я же объяснил. В бг игрок может выбирать, в киберпанке — не может, все опции уже в явном виде обозначены. Это совсем другой принцип построения геймплея, т.к. разный жанр. Глупо в принципе рассматривать бг и киберпанк в рамках одного контекста. Можно тогда до кучи добавить в контекст еще need for speed и сапера.


Попытка подмены контекста — "отдельные РПГ-модули", где не происходит игромеханического роста персонажа, существуют в настолках, а для классических CRPG это понятие, полностью лишенное смысла

CRPG — это и есть, исторически, эмуляция настолок. Безусловно, в ходе развития появились некоторые специфичные именно для "C" особенности, но привязка к прогрессии не среди них.


А уж в во времена "золотого века" и в помине никаких "отдельных РПГ-модулей" не было.

Это, конечно, совсем смешно, учитывая, что как раз во время "золотого века" крпг и были максимально близко к традиционным настольным рпг и варгеймам. Расхождения стали появляться впоследствии, по мере развития жанра (и того — и другого), когда стало понятно, что, с одной стороны, на компуктере есть те возможности, которых принципиально нет ирл, но, с другой стороны — верно и обратное. В итоге каждый из сабжанров начал приобретать свои специфические особенности, число которых со временем только нарастало.


Опять же, тот факт, что в большинстве крпг прогрессия есть, не говорит о том, что это какой-то важный признак. Точно так же можно было бы объявить "критерием жанра" какую-нибудь наиболее распространенную особенность интерфейса или т.п. вещь. Так, скажем, принято, в силу определенных причин, что по мере прохождения герой тем или иным способом прогрессирует. Но это совсем не обязательно. Более того — прогрессия вызывает проблемы, и постоянно изобретаются методы, чтобы с этими проблемами бороться. Что в крпг, что в настолках :)


С какой стати точки совпадают, при сюжетных-то развилках?

Эм, а с какой стати они должны отличаться?


Я прямо из КП пример дам — вы можете принять сюжетное решение помочь Панам с клановыми квестами или ограничиться только тем, что касается вас лично. В результате у вас либо появится, либо нет не только отдельная сюжетная ветка, но и отдельная концовка игры, приводящая к отдельной финальной миссии и к отдельному финалу, принципиально отличному от других. Что тут с чем "совпадает"?

Ну а на геймплей-то это как влияет? Чем мое прохождение при одном выборе будет отличаться от прохождения при другом? Я в итоге буду делать одно и то же. Сюжетная ветка Панам чем конкретно уникальна? Что и как я там буду делать, чего не буду делать в других сюжетных ветках? К какому уникальному контенту я получаю доступ, к которому иначе бы не получил?


Но мы говорим о сюжетных играх, центральной частью и одной из ключевых компонент является именно сюжет

Нет, мы говорим о НЕЛИНЕЙНЫХ играх, центральной частью которых является нелинейность.


Смысл рпг — в свободном разрешении энкаунтеров, в этом состоит игровой цикл рпг как таковой. Геракл с Иолаем были героями не потому, что могли гидре голову срубить, а потому, что догадались потом эти головы прижигать.
И рпг как жанр родилось за тем, чтобы дать игроку подобный опыт (именно это было концепцией, которая "отпочковала" настольные рпг от варгеймов). Дать ему возможность догадаться, как разрешить энкаунтер в рамках имеющихся ограничений (каковые и накладываются статами/скилами/етк.). Вокруг этого строится дизайн настольных приключений и ролевых систем. Вокруг этого строился дизайн крпг золотого века, и во многом — серебряного. Дать игроку ряд проблем и предложить самому найти способ с этими проблемами разобраться (нам нужен гекк. иди ищи, как хочешь). Игрок является субъектом действия, а игровой мир — объектом.
"Сюжетная игра" же, каковой является киберпанк — геймплейно совершенно не про то. Это интерактивное кино. В него не играют, его смотрят, игрок — объект, а не субъект.


А вы путаете нелинейность геймплея с нелинейностью сюжета. Это совершенно отдельные вещи. Сюжет в рпг в принципе не обязателен. В конце концов — вы можете в модуле проходить просто генерик подземелье (именно таковыми ранние рпг и были, к слову). И хорошее подземелье будет очень нелинейным. И да, бтв, "рпг без сюжета, в котором ты проходишь подземелье" !== "данжен-кроулер".


Квестов "приди и вальни" в КП единицы (исключая полицейские активности, но их я вообще не считаю, это такой аналог респауна в старых играх)

Вообще-то примерно 9 из 10 квестов (если даже не больше) именно такие. Это практически все побочки, т.е. я про те вещи, когда подходишь к локе и тебе говорящая голова звонит: "слышь, ви, реши проблемку...". Проблемка почти всегда сводится к тому, что либо надо кого-то (или всех) убить, либо что-то выкрасть (и, опционально, по пути кого-то, либо всех, убить), причем дизайн локи, в которой разворачивается действие, обычно имеет модный в последнее десятилетие тип "кишка".


И снова — что такое "геймплейные последствия"?

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

А вообще в хаскеле нет стека

Вот по-этому я и спросил :)
Вообще, можно стеком считать nurcery, с-но аналогом такой штуки как "аллоцировать на стеке" были бы аннотации для хинтов гц вида: "в этом блоке гц не запускаем", "в этом блоке из nurcery не двигаем" и т.д.

(и на неё в IF нужно проверять в первую очередь)

Реализации интерфейсов обычно вообще не проверяют через if.


как указать что объекты X,Y,Z обязательно должны быть на стеке?

Кстати, а как это сделать в хаскеле?

и локальные сторы во всем проигрывают глобальным

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


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

А локальные состояния в принципе не надо очищать и ресетить.


а вот с локальными — сплошные неудобства.

Например, какие? Писать меньше более простого кода для решения тех же задач при помощи глобального состояния? :)


Если на странице 5 форм — никто не заставляет их пихать в единый глобальный store.formData, разумеется тут будут store.forms.firstStep, store.forms.subscribeToNews и т.п.

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


С локальными состояниями это просто невозможно без системы доступа к ним — а она обычно корява либо как this.componentRef.querySelector('[data-tooltip]')[0] либо как доступ к innerState через разнообразные хаки

Как это невозможно? Точено так же и получаете доступ, как в случае глобального состояния — но только без лишних церемоний.


Любая работа с данными в глобальном состоянии всегда эквивалентна работе с данными в локальном + нечто дополнительное.


yield store.openTooltip(...)
yield store.highlightArea(store.tooltips[0])
yield store.closeTooltip(...)
yield store.openModal(...)

Экшены — это события. Нельзя делать экшены вроде "openTooltip", т.к. открытие тултипа — не событие. Если вы делаете как выше, то вы теряете весь смысл глобального стора как такового — отделение логики работы с данными от представления.

Странно, вроде, флаг понятно, где ставится и где сбрасывается, и вся логика "плоская".

Она не плоская, как раз и проблема в том, что вам надо проследить весь алгоритм, чтобы узнать, как он ведет себя в тех или иных условиях — т.к. надо видеть весь флоу изменений флага. В явном же виде — вы просто смотрите нужный кейз.


Ну, видимо, и тут "на вкус и цвет".

Это никакой не "вкус и цвет", в 2021 не надо экономить на байтах кода и по-этому так писать уже давно не обязательно.


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

Ну да. А остальные варианты просто уже зависят от конкретных реализаций в конкретном процессоре — потому на них и надеяться не стоит.


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

Удар по затылку спасет отца русской демократии.


Как-бы явно предполагалось и было указано, что это первый вариант для собеседования. Даже, если он не вполне корректный, о продакшне речи не шло.

Окей, окей, но я уверен, что в продакшене вы тоже пишите с эфками :)
Если нет — то сорян, конечно.

Information

Rating
Does not participate
Registered
Activity