Size: a a a

2018 December 18

SS

Sergey Smyshlyaev in JUG NN
Sergey Kapralov
Я к тому что - да, стейт вредит, но он попросту неизбежен. Он всегда будет в том или ином виде.
И поэтому нужно иметь четкую семантику управления состоянием во времени.
источник

SS

Sergey Smyshlyaev in JUG NN
@skapral ты посмотри, всего час, а сознание расширяет прилично https://www.youtube.com/watch?v=E4RarTAZ2AY
источник

SS

Sergey Smyshlyaev in JUG NN
Sergey Kapralov
Я к тому что - да, стейт вредит, но он попросту неизбежен. Он всегда будет в том или ином виде.
Если кратко, то мутабельность может быть корректной если меняются указатели на ячейки данных, а не сами данные в ячейке. Это еще в OCaml было сделано
источник

SS

Sergey Smyshlyaev in JUG NN
А иммутабельные коллекции всего лишь делают эту парадигму приемлемой с точки зрения перформанса
источник

SS

Sergey Smyshlyaev in JUG NN
*для векторов и мап, имеется в виду. Для списков это всегда работало
источник

SK

Sergey Kapralov in JUG NN
Sergey Smyshlyaev
И поэтому нужно иметь четкую семантику управления состоянием во времени.
Ну вот я понять не могу - как это противоречит моему утверждению что нечего бояться стейт мутейшенов? Что - на джаве типа нельзя обеспечить эту чоткую семантику?
источник

SK

Sergey Kapralov in JUG NN
Sergey Smyshlyaev
Если кратко, то мутабельность может быть корректной если меняются указатели на ячейки данных, а не сами данные в ячейке. Это еще в OCaml было сделано
Это - модель. А железу похер на эти ваши модели.
источник

SK

Sergey Kapralov in JUG NN
И оси похер - у них системные вызовы пока что не чистые функции
источник

SS

Sergey Smyshlyaev in JUG NN
Проблема вот в чем: ты получил откуда-то коллекцию, такую какая она была в момент запроса. А потом эта коллекция у тебя на глазах вдруг начала менятся без твоего ведома. А если ты в этот момент по ней итерируешься - то еще интерснее
источник

SS

Sergey Smyshlyaev in JUG NN
Ты видео-то посмотри, сразу много ответов найдешь
источник

SS

Sergey Smyshlyaev in JUG NN
Sergey Kapralov
Это - модель. А железу похер на эти ваши модели.
HAMT довольно дружелюбны к железу. Видео-то посмотри
источник

SK

Sergey Kapralov in JUG NN
Sergey Smyshlyaev
Проблема вот в чем: ты получил откуда-то коллекцию, такую какая она была в момент запроса. А потом эта коллекция у тебя на глазах вдруг начала менятся без твоего ведома. А если ты в этот момент по ней итерируешься - то еще интерснее
Так ты же сам решение и назвал - вернуть иммутабельную или персистентную коллекцию
источник

SK

Sergey Kapralov in JUG NN
Я разве говорил что персистентные коллекции - плохо?
источник

SK

Sergey Kapralov in JUG NN
Sergey Smyshlyaev
Проблема вот в чем: ты получил откуда-то коллекцию, такую какая она была в момент запроса. А потом эта коллекция у тебя на глазах вдруг начала менятся без твоего ведома. А если ты в этот момент по ней итерируешься - то еще интерснее
По сути если семантика метода предполагает возвращение конкретного списка, возвращение ArrayList - потенциальное нарушение семантики.
источник

SS

Sergey Smyshlyaev in JUG NN
Мутабельный объект и транзакционная ссылка на персистентную коллекцию разные вещи. Ты ведь понимаешь в чем между ними разница?
источник

SK

Sergey Kapralov in JUG NN
Sergey Smyshlyaev
Мутабельный объект и транзакционная ссылка на персистентную коллекцию разные вещи. Ты ведь понимаешь в чем между ними разница?
А ты - понимаешь что говоря что не надо бояться стейта я вовсе не аппелирую к мутабельным объектам?
источник

SS

Sergey Smyshlyaev in JUG NN
Я не экстрасенс
источник

SS

Sergey Smyshlyaev in JUG NN
Стейта не надо боятся, надо боятся мутабельного стейта
источник

SK

Sergey Kapralov in JUG NN
Кроме того - ну мутабельный объект. И что? Если он инкапсулирует это изменение стейта обеспечивая нужные гарантии?
источник

SS

Sergey Smyshlyaev in JUG NN
Обеспечивать гарантии того, что его не изменят со стороны он может только тогда, когда он иммутабельный
источник