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

2 Comments

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

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

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

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

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

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

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

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

1 Comment

GNOME 3

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

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

PS

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

Роботанцы

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

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

2 Comments

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

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

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

Про морковку

1 Comment

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

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

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

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

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

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

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

More