Mar. 31st, 2014
(no subject)
Mar. 31st, 2014 02:03 pmМы с Эриком посмотрели "Дознание пилота Пиркса". Эрик много раз обращал внимание на музыку - чем-то она его зацепляла, хотя я ничего необычного не услышал. Электронщинка такая, ну, остренькая непривычно, даже в паре мест удивился, как такой тяжеляк вообще разрешили в 1979-ом годе. А потом в титры посмотрел: батюшки-светы, да это ж Арво Пярт! Теперь ищу саундтрак.
как он дышит, так и пишет
Mar. 31st, 2014 11:06 pmДавно уж я заметил, что по коду можно много сказать о том, кто его написал. Видел я коды параноидальные, которые стремились проверить все возможные условия, поймать все возможные внештатные ситуации, включая случай, если единица равняется нулю. Видел я коды, страдающие рассеянием внимания, в которых ни одна функция не делала что-то одно, а делала несколько не связанных дел. Попадались коды, чрезмерно полагающиеся на окружение, и коды, страдающие аутизмом в той или иной степени. Имена переменных многое могут рассказать, и названия функций. В одном коде все сущности именовались "чего-нибудь handler", а в другом - "чего-нибудь engine", хотя в них очень мало что двигалось на самом деле. Видел и восхищался кодами, кристалльно ясными и четкими; видел коды безумно путаные, сводившиеся к почти ничему.
Про себя я знал, что мой код несколько излишне педантичен и страдает гигантоманией. Если я программирую велосипед, то у него будет трехдюймовая броня и возможность легко приделать пятое колесо и вертикальный взлет, хотя даже до мопедного моторчика стартап порой не доходил. Поскольку пишу я быстро, то пользы от такого подхода обычно выходит заметно больше, чем затрат. За что меня и ценят. Но на первых порах довольно трудно мне отвечать на вопрос, чем именно я вот сейчас занимаюсь - что это за набор утилит такой, и почему иерархия суперклассов такая развесистая, а сами суперклассы почти пустые.
А вот сегодня напарники открыли мне глаза на такой интересный факт. В моем коде частенько попадается то, что назвали мне "артефактами". Это, конкретно, когда функция внутри себя делает что-то совсем неочевидное для ее пользователя, и если пользователь этого не знает, как он и должен не знать, то он может столкнуться с довольно неприятными сюрпризами. Какое-нибудь свойство в аксессоре своем скрыто инициализируется, и для того, чтобы проверить, не проинициализировалось ли оно - например, чтобы его высвободить - приходится публиковать частное поле, стоящее за этим свойством - согласитесь, дизайн, мягко говоря, странный. Но он совершенно не был странным для меня, когда я это писал.
То есть, в мире моего кода предметы слишком много на себя берут, и тем, кто этими предметами пользуется, становится малость не по себе. Слишком умные предметы, заумные даже.
Я сказал: наверно, это говорит о склонности делегировать ответственность. Мне сказали, что это само по себе стремление для программиста правильное, но вот так все-таки делать не надо. Надо переделать, сделать код более прозрачным и управляемым.
Вот, пошел думать.
Про себя я знал, что мой код несколько излишне педантичен и страдает гигантоманией. Если я программирую велосипед, то у него будет трехдюймовая броня и возможность легко приделать пятое колесо и вертикальный взлет, хотя даже до мопедного моторчика стартап порой не доходил. Поскольку пишу я быстро, то пользы от такого подхода обычно выходит заметно больше, чем затрат. За что меня и ценят. Но на первых порах довольно трудно мне отвечать на вопрос, чем именно я вот сейчас занимаюсь - что это за набор утилит такой, и почему иерархия суперклассов такая развесистая, а сами суперклассы почти пустые.
А вот сегодня напарники открыли мне глаза на такой интересный факт. В моем коде частенько попадается то, что назвали мне "артефактами". Это, конкретно, когда функция внутри себя делает что-то совсем неочевидное для ее пользователя, и если пользователь этого не знает, как он и должен не знать, то он может столкнуться с довольно неприятными сюрпризами. Какое-нибудь свойство в аксессоре своем скрыто инициализируется, и для того, чтобы проверить, не проинициализировалось ли оно - например, чтобы его высвободить - приходится публиковать частное поле, стоящее за этим свойством - согласитесь, дизайн, мягко говоря, странный. Но он совершенно не был странным для меня, когда я это писал.
То есть, в мире моего кода предметы слишком много на себя берут, и тем, кто этими предметами пользуется, становится малость не по себе. Слишком умные предметы, заумные даже.
Я сказал: наверно, это говорит о склонности делегировать ответственность. Мне сказали, что это само по себе стремление для программиста правильное, но вот так все-таки делать не надо. Надо переделать, сделать код более прозрачным и управляемым.
Вот, пошел думать.
(no subject)
Mar. 31st, 2014 11:13 pmПриснилось, что мы с Гордоном вдвоем встретились в Дублине после долгой разлуки. Встретились, сидим в баре возле не то аэропорта, не то вокзала и смотрим друг на друга. И стоит между нами вот это появившееся непонимание, разногласие, вызов какой-то. Все то, что выстроилось событиями последних двух месяцев.
Сидим, молчим, глядим друг на друга. И понимаем, что то, что нас связывает, друг к другу тянет, все-таки сильнее того, что разъединяет. Что если мы спокойно, дружески поговорим, то можем друг друга сдвинуть, в чем-то убедить, в чем-то свою позицию поменять - к чему-то придти. И мы говорим: сегодня вечером пойдем по пиву. Будем путешествовать по пабам и везде пить пиво - но только местное, домашнее, мелких и неизвестных сортов.
А там посмотрим.
Проснулся с хорошим таким чувством. Будто вот этот ужас разобщения может отступить перед тем, что нас объединяет. Морок это, черный морок, а под ним мы все-таки те же, такое осталось чувство.
Сидим, молчим, глядим друг на друга. И понимаем, что то, что нас связывает, друг к другу тянет, все-таки сильнее того, что разъединяет. Что если мы спокойно, дружески поговорим, то можем друг друга сдвинуть, в чем-то убедить, в чем-то свою позицию поменять - к чему-то придти. И мы говорим: сегодня вечером пойдем по пиву. Будем путешествовать по пабам и везде пить пиво - но только местное, домашнее, мелких и неизвестных сортов.
А там посмотрим.
Проснулся с хорошим таким чувством. Будто вот этот ужас разобщения может отступить перед тем, что нас объединяет. Морок это, черный морок, а под ним мы все-таки те же, такое осталось чувство.