kamushken: Здесь ситуация сложная. У меня нет Mac, но я слышал, что с NTFS там грустно. Поэтому и предложил Linux, ибо здесь не будет проблем ни с чтением HFS+, ни с записью на NTFS.
Saveli Tomak: Ну как же stateful, когда вы отправили запрос, получили страницу и всё, процесс PHP на сервере умер, соединения до следующего запроса нет?
Saveli Tomak: Там MVC не то, MVC, которым его изначально назвали. Настоящее MVC это в десктопных приложениях, когда у вас stateful взаимодействие.
В любом любом случае размещение файлов тут ни при чем.
Ситуацию с expample.com/account (из вопроса) в Kohana, к примеру, называют HMVC (иерархический MVC), но сути это не меняет.
syxoi: Нет, вообще ничего. Я им писал в поддержку о своих достижениях по продвижениях патчей в апстрим, просил добавить на страницу продукта оффициальную поддержку Linux. Они ответили шаблонно типа "мы за вас рады". Короче, плевать им на линуксоидов:(
syxoi: Усилить басы в самой звуковой карте нет. В наушниках звук отличный, а для сабвуфера отдельная ручка есть в настройках (для 5.1, не стерео).
Можно попробовать что-то для PulseAudio (был какой-то программный еквалайзер), но я давно на это забил.
lega: > А вы лезите в прототип, - аналогично
Я не лезу, просто поменял свойство в объекте, которое оказалось прототипом для другого объекта.
> имеет, вы за имутабельность ради имутабельности, а не ради функционала и результата, т.к. прототипы позволяют создать аналогичную неизменяемость
Иммутабельность для того существует, чтобы меньше думать при передаче данных. Вы всегда знаете что то, что вы получили будет таким вечно, никакие внешние вызовы этого не изменят, нет побочных эффектов. Так что никакой аналогичности здесь нет совершенно.
> Замкнутую переменную нельзя изменить из вне (только внешним кодом)
Ну да, у меня на карточке всегда х денег (только если извне за комуналку не будут списывать и зарплату начислять).
Короче, много слов, а понимания мало. Идите читать фундаментальную мат. часть)
PaulMaly: > Это не более чем соглашение.
Ну так давайте договоримся что map1.b = 5 делать нельзя. Просто соглашение. Опа, вот у нас неизменяемость нарисовалась.
> Опять же, я могу цепочку прототипов обернуть и выдать вам публичный интерфейс, через который мы не сможете ничего менять. Это что-то меняет в самой идее?
Во что обернуть? Вам нужно переопределить свойства геттерами и сеттерами, поскольку только через Proxy вы можете это сделать, то immutable.js предлагает вам методы get(), set() и прочие. map1.b не является в этом случае публичным интерфейсом в immutable.js, такого свойства после set() просто не будет существовать! У вас же это является публичным интерфейсом. И ладно с публичным интерфейсом. Вы упорно игнорируете что вновь созданный объект прямо зависит от изменений в родительском.
> Наследование то оно, конечно, наследование. Да только иммутабельное.
Я вам уже доказал что оно не неизменяемое. String.prototype.hello = function () {console.log('hello')};
И всё, 'whatever'.hello() работает. Разве это неизменяемость?
> Вы же пишете на PHP?
Пишу, но мы сейчас не о PHP. В PHP вы можете определить 0 приватный и защищенных свойств и ловить все вызовы через __get(), __set(), __unset() и прочее (в JS для этого, наконец, появились прокси). К тому же наследование там не прототипное. Короче, совсем другая история.
PaulMaly: > Нет, потому что immutable.js не использует прототипирование под капотом.
Естественно, потому что когда вы это реализуете то тоже не будете использовать прототипы:)
> На первый взгляд не имеет смысла копировать все свойства объекта, если изменилось одно.
Имеет, иначе у вас изменения в прототипе влияют на текущий объект. Единственный способ избежать этого - скопировать значение.
> Однако, если вы реально хотите поменять "неизменный" объект, то никакой immutable.js вам не помешает это сделать.
В том то дело, что помешает (если мы не используем то, что в _root, и что будет недоступно при использовании Proxy вообще).
> Кейс лишь в том, что он может это сделать случайно и в этом смысле прототипирование не даст ему изменить свойства изначального объекта, через новый объект.
Так в этом и суть, быть уверенным что случайно никто ничего не сделает. Вот вы получили данные, и покуда вы их используете - они одни и те же. А вот map1._root.entries это уже далеко не случайно и совсем не стандартизированное поведение.