Почему рефакторинг приносит результаты [Кент Бек]

2 Comments

Ценность программы имеет две составляющие — то, что они могут делать для нас сегодня, и то, что они смогут делать завтра. В большинстве случаев мы сосредотачиваемся при программировании на том, что требуется от программы сегодня. Исправляя ошибку или добавляя новую функцию, мы повышаем ценность программы сегодняшнего дня путем расширения ее возможности.

Занимаясь программированием долгое время, нельзя не заметить, что функции, выполняемые системой сегодня, отражают лишь одну сторону вопроса. Если сегодня нужно выполнять ту работу, которая нужна сегодня, но так, что это не гарантирует выполнение той работы, которая понадобится завтра, то вы проиграли. Хотя, конечно, вы знаете что вам нужно сегодня, но не вполне уверенны в том, что потребуется завтра. Это может быть одно, а может быть и другое, а может быть и то, что вы не смогли себе вообразить.

Я знаю достаточно, чтобы выполнить сегодняшнюю задачу. Я знаю не достаточно чтобы выполнить завтрашнюю. Но если я буду работать только на сегодняшний день, завтра я не смогу работать вообще.

Рефакторинг — один из путей решения описанной проблемы. Обнаружив что вчерашнее решение сегодня потеряло смысл, мы его изменяем. Теперь мы можем выполнить сегодняшнюю задачу. Завтра наше сегодняшнее представление задачи покажется наивным, по этому мы и его изменим.

Из-за чего бывает трудно работать с программами? В данный момент мне приходят в голову 4 причини:
- программы трудные для чтения, трудно модифицировать;
- программы в логике которой есть дублирование, трудно модифицировать;
- программы, которым нужно дополнительные функции, что требует изменения в работающем коде, трудно модифицировать,
- программы, реализующие сложную логику условных операторов, трудно модифицировать.

Итак нам нужны программы которые легко читать, вся логика которых задана в одном и только одном месте, модификация которых не ставит под угрозу существующие функции и которые позволяют выражать условную логику возможно более простым способом.

Рефакторинг представляет собой процесс улучшения работающей программы не путем изменения ее функций, а путем усиления в ней указательных качеств, позволяющий продолжить разработку с высокой скоростью.
Кент Бек

Zen Coding v0.5, неплохая скорость написания html получается

Комментарии отключены

Zen Coding v0.5

Ваша сессия истекла :)

1 Comment

php

Комментарии отключены

PHP (Просто Хреновые Программисты) — язык программирования, созданный Гордоном Фрименом в лаборатории Черная Месса в процессе исследований по расшифровке генома деревенского гопника.

More

С новым годом!

1 Comment

Поздравляю всех с наступающим новым годом!!! Желаю счастья, здоровья в семье, мирного неба и финансового благополучия!

Второй месяц я веду этот блог, времени конечно не хватает чтобы писать больше и лучше, но я постараюсь.

Всех с новым годом!

GNOME 3

Комментарии отключены

Неплохо задумали разработчики Gnom, посмотрим что у них получится. На данным момент Gnom явно уступает KDE по оформлению и красате интерфейса, но лучше с точки зрения стабильности.

PS

Сам я предпочитаю KDE.

Роботанцы

Комментарии отключены

Если Бог создал мир, то почему в мире есть зло?

2 Comments

Притча об умном профессоре и мудром студенте:
Профессор в университете задал своим студентам вопрос:
— Все, что существует, создано Богом?
Один студент смело ответил:
— Да, создано Богом.
Бог создал все? — спросил профессор.
— Да, сэр, — ответил студент. Профессор спросил:
— Если Бог создал все, значит, Бог создал и зло, раз оно существует. И, согласно тому принципу, что наши дела определяют нас самих, Бог есть зло.
Услышав такой ответ, студент притих. Профессор был очень доволен собой. Он лишний раз похвалился перед студентами, доказав, что вера в Бога — это миф…
И тут поднял руку другой студент:
— Профессор, могу я вам задать вопрос?
— Конечно, — ответил профессор. Студент поднялся и спросил:
— Профессор, холод существует?
— Что за вопрос? Конечно, существует. Тебе никогда не было холодно?
— На самом деле, сэр, холода не существует. В соответствии с законами физики, то, что мы считаем холодом, в действительности, является отсутствием тепла.
Человека или предмет можно изучить на предмет того, имеет он энергию или нет, излучает ее или нет. И абсолютный ноль (-273°С) есть полное отсутствие тепла. При этой температуре вся материя становится инертной и не способной реагировать.
Таким образом, холода не существует. Мы создали это слово для описания того, что мы чувствуем при отсутствии тепла.
Студент продолжил:
— Профессор, темнота существует?
Профессор ответил:
— Конечно, существует. Студент сказал:
— Вы опять не правы, сэр. Темноты также не существует. В действительности, темнота есть отсутствие света. Мы можем изучить свет, но не темноту. Используя призму Ньютона, мы можем разложить белый свет на множество цветов и изучить различные длины волн каждого цвета. Однако вы не можете измерить темноту.
Простой луч света врывается в мир темноты и освещает его. Как вы определяете, насколько темным является то или иное пространство? Вы измеряете имеющееся в нем количество света, не так ли? Таким образом, темнота — это лишь понятие, которое человек использует для описания того, что происходит при отсутствии света.
Затем молодой человек вновь спросил профессора:
— Сэр, зло существует?
Уже неуверенно профессор ответил:
— Конечно, как я уже и сказал. Мы видим его каждый день. Жестокость в отношениях между людьми, множество преступлений, насилие во всем мире — все это ничто иное, как проявление зла.
На это студент ответил:
— Зла не существует, сэр, или, по крайней мере, его не существует самого по себе.
Зло — это просто отсутствие Бога. Подобно темноте и холоду, это слово создано человеком, чтобы описать отсутствие Бога.
Бог не создавал зла. Зло — это не вера и не любовь, которые существуют как свет и тепло. Зло — это результат отсутствия в сердце человека Божественной любви. Это вроде холода, который наступает, когда нет тепла, или темноты, которая наступает, когда нет света.
Профессор сел.

Имя молодого студента было Альберт Эйнштейн.

Давно читал это и что-то отложилось в памяти, но я напрочь забыл текст, а смысл помнил. И вот нашел за что зацепится, и нашел в яндексе что искал. Сохраню себе в блоге.

Gource

Комментарии отключены

Решил сохранить себе в блог это видео чтобы не забыть потом попробовать создать визуальную картину работы с svn. Приложение Gource как раз это и делает. Получилось по моему просто супер.

Gource работает с системами управления версий CVSSVNMercurial, и обрисовывает все с помощью OpenGL.

Исходники и еще больше описания тут http://code.google.com/p/gource/

Про морковку

1 Comment

00054dpwКак выглядит жизнь среднестатистического «осла»? Сначала он ставит себе цель (вешает морковь), потом бежит за ней, а потом упирается лбом в кризис среднего возраста. Чаще всего кризис выражается в пяти пунктах.

1.Морковь подвесили перед моей мордой, и сколько бы я ни бежал, она всегда будет передо мной. (То есть цель недостижима.)

2.Какой м*дак повесил передо мной эту морковь? (Меня использовали?)

3.Оказывается, я бегал за подвешенной морковью по морковным грядкам. (Надо же быть таким ослом?)

4.Я вообще не люблю морковь! (Откровение!)

(Ну и пятый пункт. Самый обидный.)

5. Я не осел. (А жизнь-то прошла.)

More