LINUX.ORG.RU

История изменений

Исправление Nervous, (текущая версия) :

С таким подходом чистота есть везде, ведь «чистый компонент» можно написать где угодно.

Именно. Возможность нарулить чистоту есть практически везде. Просто где-то это можно сделать просто и изящно, а где-то придется страдать. Страдать никто не хочет.

Никакой функциональной чистоты там нигде нет.

Если ты сам к ней не стремишься и напихал состояние и побочные эффекты куда надо и не надо — то да. Нигде не будет. Я не про кишки реакта говорю, хрен с ними. Я о компонентах, которые пишу я сам.

Впрочем, чистота ведь не самоцель. Цель - уменьшение сложности и, следовательно, когнитивной нагрузки на программиста. Что (предположительно) позволит ему самому писать более качественный код, быстрее понимать написанное другими и делать меньше ошибок. Именно для этого нужна и чистота, и модульность, и понятные имена, и документация, и даже стандарты форматирования кода.

Чистота ради чистоты на хер никому не облокотилась. Если можно понять, что происходит с твоим компонентом, глядя только на его входные параметры — цель достигнута.

Если состояние нужно - оно будет. Ты не сможешь его избежать.

Конечно, будет. Но если подойти к управлению состоянием с умом, можно отделаться минимумом головняков типа «как мне получить данные от соседнего (не родительского) компонента??!!111??»

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

Если у тебя там лежит инпут или что-то, что генерирует какие-то события - у тебя уже ломается логика.

С этим ничего не поделаешь, конечно — у такого компонента будет свое внутреннее состояние, влияющее на его внешний вид. По крайней мере, в текущей реализации обработки ввода в браузерах. Что, впрочем, не мешает тебе продублировать это внутреннее состояние в общем хранилище, где его смогут видеть другие компоненты.

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

Пока твое состояние не потребуется другим компонентам, ага.

Если через пропсы пробрасывать куски состояния - всё превращается в адский ужас, ошибки и дыры дырявые

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

Исправление Nervous, :

С таким подходом чистота есть везде, ведь «чистый компонент» можно написать где угодно.

Именно. Возможность нарулить чистоту есть практически везде. Просто где-то это можно сделать просто и изящно, а где-то придется страдать. Страдать никто не хочет.

Никакой функциональной чистоты там нигде нет.

Если ты сам к ней не стремишься и напихал состояние и побочные эффекты куда надо и не надо — то да. Нигде не будет. Я не про кишки реакта говорю, хрен с ними. Я о компонентах, которые пишу я сам.

Впрочем, чистота ведь не самоцель. Цель - уменьшение сложности и, следовательно, когнитивной нагрузки на программиста. Что (предположительно) позволит ему самому писать более качественный код, быстрее понимать написанное другими и делать меньше ошибок. Именно для этого нужна и чистота, и модульность, и понятные имена, и документация, и даже стандарты форматирования кода.

Чистота ради чистоты на хер никому не облокотилась. Если можно понять, что происходит с твоим компонентом, глядя только на его входные параметры — цель достигнута.

Если состояние нужно - оно будет. Ты не сможешь его избежать.

Конечно, будет. Но если подойти к управлению состоянием с умом, можно отделаться минимумом головняков типа «как мне получить данные от соседнего (не родительского) компонента??!!111??»

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

Если у тебя там лежит инпут или что-то, что генерирует какие-то события - у тебя уже ломается логика.

С этим ничего не поделаешь, конечно — у такого компонента будет свое внутреннее состояние, влияющее на его внешний вид. По крайней мере, в текущей реализации обработки ввода в браузерах. Что, впрочем, не мешает тебе продублировать это внутреннее состояние в общем хранилище, где его смогут видеть другие компоненты.

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

Пока твое состояние не потребуется другим компонентам, ага.

Если через пропсы пробрасывать куски состояния - всё превращается в адский ужас, ошибки и дыры дырявые

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

Исправление Nervous, :

С таким подходом чистота есть везде, ведь «чистый компонент» можно написать где угодно.

Именно. Возможность нарулить чистоту есть практически везде. Просто где-то это можно сделать просто и изящно, а где-то придется страдать. Страдать никто не хочет.

Никакой функциональной чистоты там нигде нет.

Если ты сам к ней не стремишься и напихал состояние и побочные эффекты куда надо и не надо — то да. Нигде не будет. Я не про кишки реакта говорю, хрен с ними. Я о компонентах, которые пишу я сам.

Впрочем, чистота ведь не самоцель. Цель - уменьшение сложности и, следовательно, когнитивной нагрузки на программиста. Что (предположительно) позволит ему самому писать более качественный код, быстрее понимать написанное другими и делать меньше ошибок. Именно для этого нужна и чистота, и модульность, и понятные имена, и документация, и даже стандарты форматирования кода.

Чистота ради чистоты на хер никому не облокотилась. Если можно понять, что происходит с твоим компонентом, глядя только на его входные параметры — цель достигнута.

Если состояние нужно - оно будет. Ты не сможешь его избежать.

Конечно, будет. Но если подойти к управлению состоянием с умом, можно отделаться минимумом головняков типа «как мне получить данные от соседнего (не родительского) компонента??!!111??»

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

Если у тебя там лежит инпут или что-то, что генерирует какие-то события - у тебя уже ломается логика.

С этим ничего не поделаешь, конечно — у такого компонента будет свое внутреннее состояние, влияющее на его внешний вид. По крайней мере, в текущей реализации обработки ввода в браузерах. Что, впрочем, не мешает тебе продублировать это внутреннее состояние в общем хранилище, где его смогут видеть другие компоненты.

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

Пока твое состояние не потребуется другим компонентам, ага.

Если через пропсы пробрасывать куски состояния - всё превращается в адский ужас, ошибки и дыры дырявые

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

Исправление Nervous, :

С таким подходом чистота есть везде, ведь «чистый компонент» можно написать где угодно.

Именно. Возможность нарулить чистоту есть практически везде. Просто где-то это можно сделать просто и изящно, а где-то придется страдать. Страдать никто не хочет.

Никакой функциональной чистоты там нигде нет.

Если ты сам к ней не стремишься и напихал состояние и побочные эффекты куда надо и не надо — то да. Нигде не будет. Я не про кишки реакта говорю, хрен с ними. Я о компонентах, которые пишу я сам.

Впрочем, чистота ведь не самоцель. Цель - уменьшение сложности и, следовательно, когнитивной нагрузки на программиста. Что (предположительно) позволит ему самому писать более качественный код, быстрее понимать написанное другими и делать меньше ошибок. Именно для этого нужна и чистота, и модульность, и понятные имена, и документация, и даже стандарты форматирования кода.

Чистота ради чистоты на хер никому не облокотилась. Если можно понять, что происходит с твоим компонентом, глядя только на его входные параметры — цель достигнута.

Если состояние нужно - оно будет. Ты не сможешь его избежать.

Конечно, будет. Но если подойти к управлению состоянием с умом, можно отделаться минимумом головняков типа «как мне получить данные от соседнего (не родительского) компонента??!!111??»

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

Если у тебя там лежит инпут или что-то, что генерирует какие-то события - у тебя уже ломается логика.

С этим ничего не поделаешь, конечно — у такого компонента будет свое внутреннее состояние, влияющее на его внешний вид. По крайней мере, в текущей реализации обработки ввода в браузерах. Что, впрочем, не мешает тебе продублировать это внутреннее состояние в общем хранилище, где его смогут видеть другие компоненты.

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

Пока твое состояние не потребуется другим компонентам, ага.

Если через пропсы пробрасывать куски состояния - всё превращается в адский ужас, ошибки и дыры дырявые

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

Исправление Nervous, :

С таким подходом чистота есть везде, ведь «чистый компонент» можно написать где угодно.

Именно. Возможность нарулить чистоту есть практически везде. Просто где-то это можно сделать просто и изящно, а где-то придется страдать. Страдать никто не хочет.

Никакой функциональной чистоты там нигде нет.

Если ты сам к ней не стремишься и напихал состояние и побочные эффекты куда надо и не надо — то да. Нигде не будет. Я не про кишки реакта говорю, хрен с ними. Я о компонентах, которые пишу я сам.

Впрочем, чистота ведь не самоцель. Цель - уменьшение сложности и, следовательно, когнитивной нагрузки на программиста. Что (предположительно) позволит ему самому писать более качественный код, быстрее понимать написанное другими и делать меньше ошибок. Именно для этого нужна и чистота, и модульность, и понятные имена, и документация, и даже стандарты форматирования кода.

Чистота ради чистоты на хер никому не облокотилась. Если можно понять, что происходит с твоим компонентом, глядя только на его входные параметры — цель достигнута.

Если состояние нужно - оно будет. Ты не сможешь его избежать.

Конечно, будет. Но если подойти к управлению состоянием с умом, можно отделаться минимумом головняков типа «как мне получить данные от соседнего (не родительского) компонента??!!111??»

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

Если у тебя там лежит инпут или что-то, что генерирует какие-то события - у тебя уже ломается логика.

С этим ничего не поделаешь, конечно — у такого компонента будет свое внутреннее состояние, влияющее на его внешний вид. По крайней мере, в текущей реализации обработки ввода в браузерах.

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

Пока твое состояние не потребуется другим компонентам, ага.

Если через пропсы пробрасывать куски состояния - всё превращается в адский ужас, ошибки и дыры дырявые

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

Исходная версия Nervous, :

С таким подходом чистота есть везде, ведь «чистый компонент» можно написать где угодно.

Именно. Возможность нарулить чистоту есть практически везде. Просто где-то это можно сделать просто и изящно, а где-то придется страдать. Страдать никто не хочет.

Никакой функциональной чистоты там нигде нет.

Если ты сам к ней не стремишься и напихал состояние и побочные эффекты куда надо и не надо — то да. Нигде не будет. Я не про кишки реакта говорю, хрен с ними. Я о компонентах, которые пишу я сам.

Впрочем, чистота ведь не самоцель. Цель - уменьшение сложности и, следовательно, когнитивной нагрузки на программиста. Что (предположительно) позволит ему самому писать более качественный код, быстрее понимать написанное другими и делать меньше ошибок. Именно для этого нужна и чистота, и модульность, и понятные имена, и даже стандарты форматирования кода.

Чистота ради чистоты на хер никому не облокотилась. Если можно понять, что происходит с твоим компонентом, глядя только на его входные параметры — цель достигнута.

Если состояние нужно - оно будет. Ты не сможешь его избежать.

Конечно, будет. Но если подойти к управлению состоянием с умом, можно отделаться минимумом головняков типа «как мне получить данные от соседнего (не родительского) компонента??!!111??»

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

Если у тебя там лежит инпут или что-то, что генерирует какие-то события - у тебя уже ломается логика.

С этим ничего не поделаешь, конечно — у такого компонента будет свое внутреннее состояние, влияющее на его внешний вид. По крайней мере, в текущей реализации обработки ввода в браузерах.

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

Пока твое состояние не потребуется другим компонентам, ага.

Если через пропсы пробрасывать куски состояния - всё превращается в адский ужас, ошибки и дыры дырявые

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