October 19th, 2009

Default

Immutable objects

Эту неделю провожу в Англии, в основном читаю чужой код и даю советы по архитектуре и постановке test-driven development. За первый день мог бы успеть больше, не перерасти мои комментарии насчет мелких деталей в длинные обсуждения с одним из разработчиков, ставящего под сомнение абсолютно все, что касается best practices. И здесь я уже не первый раз обнаруживаю свою слабину в спорах: я нередко не могу парировать возражение моментально, а должен взять паузу - пусть на несколько минут, но взять - чтобы подобрать весомый аргумент. Сегодня я чуть было не запнулся с неизменными объектами (immutable objects). Лишь то, что я накануне начал читать книжку по функциональному программированию, подтолкнуло меня к аргументу о преимуществах неизменных объектов в многопоточном программировании. Вообще не устаю убеждаться, что устная и письменная дискуссии - совершенно разные вещи. Дискуссии в ЖЖ большей частью проходят по первой категории.

Интересно, спрашивает ли juan_gandhi на своих интервью, почему string в яве - immutable object и прогоняет ли запнувшихся с ответом?

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