honestas: (Daria)
[personal profile] honestas
  Поразительно, какие только ошибки и проблемы можно найти на свою голову, если не следовать Пути!
  Недавно я ещё раз в этом убедился.

  Есть у меня, о, счастливые други, пара подопечных, что ходят ко мне раза два в неделю, пытаясь поразить своим познанием UML и проектирования, и логикой, и умением красиво сплетать Java-код, и научиться от меня, как следует мыслить и как следует быть программистам. Пришли они как-то раз опечаленные и не было на них лица, а одежды их были грязны, как у людей, пребывающих в великой скорби. И я встал, и взял их за руки и ввёл к себе в кабинет, и усадил на мягкие кресла и всячески утешал их. Но ничто не могло развеселить их. Сказал я тогда им: "О, прошу вас, возлюбленные мои ученики, откройте мне, что так печалит вас?". И отвечали они: "Ах, учитель! Есть у нас в нашей премудрой программе класс, а в классе том определен массив строк. Строки те мы выводим для пользователя, чтобы знал он, что происходит внутри вычислительной машины. Семь строк определили мы, но сколь не ухищрялись, нет нам доступа к седьмой! Весьма ругается JVM на любые наши попытки получить больше, чем шесть строк."
  Открыл я их код и увидел всё так, как они сказали. Но посмотрел я внимательнее - и, о, что я вижу? - определён тот массив как public String[], и инициализирован он по умолчанию. Сердито посмотрел я тогда на своих учеников и такой вопрос задал им: "Ответьте мне, что заставило вас динамически определять массив, которому не предстоят изменения? Разве праведно вводить в заблуждение Виртуальную Машину и Всевышнего, и копировать ваш массив из объекта в объект, и возможность изменения оставлять ему?" И пали ученики на свои лица и выразили раскаяние. А я взял калам и начертал после слова public слово static. И, умудрён Всевышним, final прибавил следом.
  Взяли же тогда ученики код, и откомпилировали его, и преискусно уложили в jar-файлы премудрой ant-программой. И запустили они свою программу, и произнесли заклинания, понятные и непонятные. И упала программа, как Шайтан, возомнивший себя равным Всевышнему. Взглянул я на стек-трейс тогда, и увидел там ошибки сериализации. "Внемлите - сказал я подопечным, - ибо объект ваш сериализованный шесть строк имел в своём массиве, и шесть строк этих десериализованных возвращались к вам каждый раз. Теперь же, когда изменили мы сигнатуру класса, перестали совпадать идентификаторы версий класса, и не десериализуется он больше". И ещё прибавил им:
Если бы сразу вы шли по Пути,
Сразу бы static массив ваш был,
Никак бы вы в беды уже не попали:
Корректный класс корректно читается.


  И целовали мне ученики руки, и благодарили, и радостен был вид их, и с миром они отошли к себе.
  Но и это не так удивительно, как повесть о cинхронизации и ещё двух моих студентах.

Date: 2010-10-29 08:00 pm (UTC)
From: [identity profile] volchik-lamyra.livejournal.com
Программистской подоплёки не знаю, но стилизация хороша :)

Date: 2010-10-29 08:05 pm (UTC)
From: [identity profile] honestas.livejournal.com
:)
Спасибо. )
Подоплёка и в самом деле специфичная; очевидная - но лишь тому, кто владеет Java.
Думаю, подо что стилизовать вторую историю - сделать ли её в пару или новенького что-нибудь придумать?

Date: 2010-10-30 12:18 am (UTC)
From: [identity profile] elenkano.livejournal.com
Красиво получилось:)
(Я, кстати, помню, помню свое обещание. Но это получается, как у нас работа на кластере. Чем меньше времени требуется, тем приоритет у очереди выше:) )

Date: 2010-10-30 07:34 am (UTC)

Date: 2010-10-30 07:09 am (UTC)
From: [identity profile] mammoth-manfred.livejournal.com
О бо-о-о-оже...

Date: 2010-10-30 07:33 am (UTC)
From: [identity profile] honestas.livejournal.com
"Smith" will suffice.

Profile

honestas: (Default)
honestas

May 2015

S M T W T F S
     1 2
34 56 789
1011 121314 1516
17 18192021 2223
2425 262728 2930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 23rd, 2025 07:38 am
Powered by Dreamwidth Studios