История изменений
Исправление Nervous, (текущая версия) :
С таким подходом чистота есть везде, ведь «чистый компонент» можно написать где угодно.
Именно. Возможность нарулить чистоту есть практически везде. Просто где-то это можно сделать просто и изящно, а где-то придется страдать. Страдать никто не хочет.
Никакой функциональной чистоты там нигде нет.
Если ты сам к ней не стремишься и напихал состояние и побочные эффекты куда надо и не надо — то да. Нигде не будет. Я не про кишки реакта говорю, хрен с ними. Я о компонентах, которые пишу я сам.
Впрочем, чистота ведь не самоцель. Цель - уменьшение сложности и, следовательно, когнитивной нагрузки на программиста. Что (предположительно) позволит ему самому писать более качественный код, быстрее понимать написанное другими и делать меньше ошибок. Именно для этого нужна и чистота, и модульность, и понятные имена, и документация, и даже стандарты форматирования кода.
Чистота ради чистоты на хер никому не облокотилась. Если можно понять, что происходит с твоим компонентом, глядя только на его входные параметры — цель достигнута.
Если состояние нужно - оно будет. Ты не сможешь его избежать.
Конечно, будет. Но если подойти к управлению состоянием с умом, можно отделаться минимумом головняков типа «как мне получить данные от соседнего (не родительского) компонента??!!111??»
Компонент реагирует на действия пользователя, изменяя (строго определенным и контролируемым образом) общее состояние; внешний вид компонента является функцией от нужного ему куска состояния. Если компоненту понадобилось получить данные соседнего — он принимает на вход нужный кусок состояния и все.
Если у тебя там лежит инпут или что-то, что генерирует какие-то события - у тебя уже ломается логика.
С этим ничего не поделаешь, конечно — у такого компонента будет свое внутреннее состояние, влияющее на его внешний вид. По крайней мере, в текущей реализации обработки ввода в браузерах. Что, впрочем, не мешает тебе продублировать это внутреннее состояние в общем хранилище, где его смогут видеть другие компоненты.
Неважно где ты поменял значение - в локальном состоянии или глобальном. Даже наоборот - в лольном лучше, проще и надёжнее.
Пока твое состояние не потребуется другим компонентам, ага.
Если через пропсы пробрасывать куски состояния - всё превращается в адский ужас, ошибки и дыры дырявые
Я так понимаю, проблема здесь в использовании изменяемых структур данных для хранения состояния. Тогда действительно, любой компонент может неконтролируемым образом поковыряться грязным пальцем в любом месте общего состояния и устроить ад и израиль. Всего этого не произойдет, если твои структуры данных неизменяемы и все изменения состояния строго контролируемы.
Исправление Nervous, :
С таким подходом чистота есть везде, ведь «чистый компонент» можно написать где угодно.
Именно. Возможность нарулить чистоту есть практически везде. Просто где-то это можно сделать просто и изящно, а где-то придется страдать. Страдать никто не хочет.
Никакой функциональной чистоты там нигде нет.
Если ты сам к ней не стремишься и напихал состояние и побочные эффекты куда надо и не надо — то да. Нигде не будет. Я не про кишки реакта говорю, хрен с ними. Я о компонентах, которые пишу я сам.
Впрочем, чистота ведь не самоцель. Цель - уменьшение сложности и, следовательно, когнитивной нагрузки на программиста. Что (предположительно) позволит ему самому писать более качественный код, быстрее понимать написанное другими и делать меньше ошибок. Именно для этого нужна и чистота, и модульность, и понятные имена, и документация, и даже стандарты форматирования кода.
Чистота ради чистоты на хер никому не облокотилась. Если можно понять, что происходит с твоим компонентом, глядя только на его входные параметры — цель достигнута.
Если состояние нужно - оно будет. Ты не сможешь его избежать.
Конечно, будет. Но если подойти к управлению состоянием с умом, можно отделаться минимумом головняков типа «как мне получить данные от соседнего (не родительского) компонента??!!111??»
Компонент реагирует на действия пользователя, изменяя (строго определенным и контролируемым образом) общее состояние; внешний вид компонента является функцией от нужного ему куска состояния. Если компоненту понадобилось получить данные соседнего — он принимает на вход нужный кусок состояния и все.
Если у тебя там лежит инпут или что-то, что генерирует какие-то события - у тебя уже ломается логика.
С этим ничего не поделаешь, конечно — у такого компонента будет свое внутреннее состояние, влияющее на его внешний вид. По крайней мере, в текущей реализации обработки ввода в браузерах. Что, впрочем, не мешает тебе продублировать это внутреннее состояние в общем хранилище, где его смогут видеть другие компоненты.
Неважно где ты поменял значение - в локальном состоянии или глобальном. Даже наоборот - в лольном лучше, проще и надёжнее.
Пока твое состояние не потребуется другим компонентам, ага.
Если через пропсы пробрасывать куски состояния - всё превращается в адский ужас, ошибки и дыры дырявые
Я так понимаю, проблема здесь в использовании изменяемых структур данных для хранения состояния. Тогда действительно, любой компонент может неконтролируемым образом поковыряться грязным пальцем в любом месте общего состояния и устроить ад и израиль. Всего этого не произойдет, если твои структуры данных неизменяемы и все изменения состояния строго контролируемы.
Исправление Nervous, :
С таким подходом чистота есть везде, ведь «чистый компонент» можно написать где угодно.
Именно. Возможность нарулить чистоту есть практически везде. Просто где-то это можно сделать просто и изящно, а где-то придется страдать. Страдать никто не хочет.
Никакой функциональной чистоты там нигде нет.
Если ты сам к ней не стремишься и напихал состояние и побочные эффекты куда надо и не надо — то да. Нигде не будет. Я не про кишки реакта говорю, хрен с ними. Я о компонентах, которые пишу я сам.
Впрочем, чистота ведь не самоцель. Цель - уменьшение сложности и, следовательно, когнитивной нагрузки на программиста. Что (предположительно) позволит ему самому писать более качественный код, быстрее понимать написанное другими и делать меньше ошибок. Именно для этого нужна и чистота, и модульность, и понятные имена, и документация, и даже стандарты форматирования кода.
Чистота ради чистоты на хер никому не облокотилась. Если можно понять, что происходит с твоим компонентом, глядя только на его входные параметры — цель достигнута.
Если состояние нужно - оно будет. Ты не сможешь его избежать.
Конечно, будет. Но если подойти к управлению состоянием с умом, можно отделаться минимумом головняков типа «как мне получить данные от соседнего (не родительского) компонента??!!111??»
Компонент реагирует на действия пользователя, изменяя (строго определенным и контролируемым образом) общее состояние; внешний вид компонента является функцией от нужного ему куска состояния. Если компоненту понадобилось получить данные соседнего — он принимает на вход нужный кусок состояния и все.
Если у тебя там лежит инпут или что-то, что генерирует какие-то события - у тебя уже ломается логика.
С этим ничего не поделаешь, конечно — у такого компонента будет свое внутреннее состояние, влияющее на его внешний вид. По крайней мере, в текущей реализации обработки ввода в браузерах. Что, впрочем, не мешает тебе продублировать это внутреннее состояние в общем хранилище, где его смогут видеть другие компоненты.
Неважно где ты поменял значение - в локальном состоянии или глобальном. Даже наоборот - в лольном лучше, проще и надёжнее.
Пока твое состояние не потребуется другим компонентам, ага.
Если через пропсы пробрасывать куски состояния - всё превращается в адский ужас, ошибки и дыры дырявые
Я так понимаю, проблема здесь в использовании изменяемых структур данных для хранения состояния. Тогда действительно любой компонент может неконтролируемым образом поковыряться грязным пальцем в любом месте общего состояния и устроить ад и израиль. Всего этого не произойдет, если твои структуры данных неизменяемы и все изменения состояния строго контролируемы.
Исправление Nervous, :
С таким подходом чистота есть везде, ведь «чистый компонент» можно написать где угодно.
Именно. Возможность нарулить чистоту есть практически везде. Просто где-то это можно сделать просто и изящно, а где-то придется страдать. Страдать никто не хочет.
Никакой функциональной чистоты там нигде нет.
Если ты сам к ней не стремишься и напихал состояние и побочные эффекты куда надо и не надо — то да. Нигде не будет. Я не про кишки реакта говорю, хрен с ними. Я о компонентах, которые пишу я сам.
Впрочем, чистота ведь не самоцель. Цель - уменьшение сложности и, следовательно, когнитивной нагрузки на программиста. Что (предположительно) позволит ему самому писать более качественный код, быстрее понимать написанное другими и делать меньше ошибок. Именно для этого нужна и чистота, и модульность, и понятные имена, и документация, и даже стандарты форматирования кода.
Чистота ради чистоты на хер никому не облокотилась. Если можно понять, что происходит с твоим компонентом, глядя только на его входные параметры — цель достигнута.
Если состояние нужно - оно будет. Ты не сможешь его избежать.
Конечно, будет. Но если подойти к управлению состоянием с умом, можно отделаться минимумом головняков типа «как мне получить данные от соседнего (не родительского) компонента??!!111??»
Компонент реагирует на действия пользователя, изменяя (строго определенным и контролируемым образом) общее состояние; внешний вид компонента является функцией от нужного ему куска состояния. Если компоненту понадобилось получить данные соседнего — он принимает на вход нужный кусок состояния и все.
Если у тебя там лежит инпут или что-то, что генерирует какие-то события - у тебя уже ломается логика.
С этим ничего не поделаешь, конечно — у такого компонента будет свое внутреннее состояние, влияющее на его внешний вид. По крайней мере, в текущей реализации обработки ввода в браузерах. Что, впрочем, не мешает тебе продублировать это внутреннее состояние в общем хранилище, где его смогут видеть другие компоненты.
Неважно где ты поменял значение - в локальном состоянии или глобальном. Даже наоборот - в лольном лучше, проще и надёжнее.
Пока твое состояние не потребуется другим компонентам, ага.
Если через пропсы пробрасывать куски состояния - всё превращается в адский ужас, ошибки и дыры дырявые
Я так понимаю, проблема здесь в использовании изменяемых структур данных для хранения состояния. Тогда действительно любой компонент может неконтролируемым образом поковыряться грязным пальцем в любом месте состояния и устроить ад и израиль. Всего этого не произойдет, если твои структуры данных неизменяемы и все изменения состояния строго контролируемы.
Исправление Nervous, :
С таким подходом чистота есть везде, ведь «чистый компонент» можно написать где угодно.
Именно. Возможность нарулить чистоту есть практически везде. Просто где-то это можно сделать просто и изящно, а где-то придется страдать. Страдать никто не хочет.
Никакой функциональной чистоты там нигде нет.
Если ты сам к ней не стремишься и напихал состояние и побочные эффекты куда надо и не надо — то да. Нигде не будет. Я не про кишки реакта говорю, хрен с ними. Я о компонентах, которые пишу я сам.
Впрочем, чистота ведь не самоцель. Цель - уменьшение сложности и, следовательно, когнитивной нагрузки на программиста. Что (предположительно) позволит ему самому писать более качественный код, быстрее понимать написанное другими и делать меньше ошибок. Именно для этого нужна и чистота, и модульность, и понятные имена, и документация, и даже стандарты форматирования кода.
Чистота ради чистоты на хер никому не облокотилась. Если можно понять, что происходит с твоим компонентом, глядя только на его входные параметры — цель достигнута.
Если состояние нужно - оно будет. Ты не сможешь его избежать.
Конечно, будет. Но если подойти к управлению состоянием с умом, можно отделаться минимумом головняков типа «как мне получить данные от соседнего (не родительского) компонента??!!111??»
Компонент реагирует на действия пользователя, изменяя (строго определенным и контролируемым образом) общее состояние; внешний вид компонента является функцией от нужного ему куска состояния. Если компоненту понадобилось получить данные соседнего — он принимает на вход нужный кусок состояния и все.
Если у тебя там лежит инпут или что-то, что генерирует какие-то события - у тебя уже ломается логика.
С этим ничего не поделаешь, конечно — у такого компонента будет свое внутреннее состояние, влияющее на его внешний вид. По крайней мере, в текущей реализации обработки ввода в браузерах.
Неважно где ты поменял значение - в локальном состоянии или глобальном. Даже наоборот - в лольном лучше, проще и надёжнее.
Пока твое состояние не потребуется другим компонентам, ага.
Если через пропсы пробрасывать куски состояния - всё превращается в адский ужас, ошибки и дыры дырявые
Я так понимаю, проблема здесь в использовании изменяемых структур данных для хранения состояния. Тогда действительно любой компонент может неконтролируемым образом поковыряться грязным пальцем в любом месте состояния и устроить ад и израиль. Всего этого не произойдет, если твои структуры данных неизменяемы и все изменения состояния строго контролируемы.
Исходная версия Nervous, :
С таким подходом чистота есть везде, ведь «чистый компонент» можно написать где угодно.
Именно. Возможность нарулить чистоту есть практически везде. Просто где-то это можно сделать просто и изящно, а где-то придется страдать. Страдать никто не хочет.
Никакой функциональной чистоты там нигде нет.
Если ты сам к ней не стремишься и напихал состояние и побочные эффекты куда надо и не надо — то да. Нигде не будет. Я не про кишки реакта говорю, хрен с ними. Я о компонентах, которые пишу я сам.
Впрочем, чистота ведь не самоцель. Цель - уменьшение сложности и, следовательно, когнитивной нагрузки на программиста. Что (предположительно) позволит ему самому писать более качественный код, быстрее понимать написанное другими и делать меньше ошибок. Именно для этого нужна и чистота, и модульность, и понятные имена, и даже стандарты форматирования кода.
Чистота ради чистоты на хер никому не облокотилась. Если можно понять, что происходит с твоим компонентом, глядя только на его входные параметры — цель достигнута.
Если состояние нужно - оно будет. Ты не сможешь его избежать.
Конечно, будет. Но если подойти к управлению состоянием с умом, можно отделаться минимумом головняков типа «как мне получить данные от соседнего (не родительского) компонента??!!111??»
Компонент реагирует на действия пользователя, изменяя (строго определенным и контролируемым образом) общее состояние; внешний вид компонента является функцией от нужного ему куска состояния. Если компоненту понадобилось получить данные соседнего — он принимает на вход нужный кусок состояния и все.
Если у тебя там лежит инпут или что-то, что генерирует какие-то события - у тебя уже ломается логика.
С этим ничего не поделаешь, конечно — у такого компонента будет свое внутреннее состояние, влияющее на его внешний вид. По крайней мере, в текущей реализации обработки ввода в браузерах.
Неважно где ты поменял значение - в локальном состоянии или глобальном. Даже наоборот - в лольном лучше, проще и надёжнее.
Пока твое состояние не потребуется другим компонентам, ага.
Если через пропсы пробрасывать куски состояния - всё превращается в адский ужас, ошибки и дыры дырявые
Я так понимаю, проблема здесь в использовании изменяемых структур данных для хранения состояния. Тогда действительно любой компонент может неконтролируемым образом поковыряться грязным пальцем в любом месте состояния и устроить ад и израиль. Всего этого не произойдет, если твои структуры данных неизменяемы и все изменения состояния строго контролируемы.