[Рефакторинг]: Примеры программ.
От: 0x7be СССР  
Дата: 22.11.11 06:11
Оценка:
Коллеги,

такой необычный запрос: ищу примеры программ до и после рефакторинга. Типа, вот некрасивая, плохая программа; а вот она же, но после рефакторинга, хорошая и красивая. Желательно, что бы примеры не совсем короткие, хотя бы пару килобайт кода. Если у кого есть такое или ссылки на такое — поделитесь, плз. Заранее спасибо.
Re: [Рефакторинг]: Примеры программ.
От: kmmbvnr Россия http://kmmbvnr.livejournal.com
Дата: 22.11.11 07:21
Оценка: 10 (1)
Здравствуйте, 0x7be, Вы писали:

0>Коллеги,


0>такой необычный запрос: ищу примеры программ до и после рефакторинга. Типа, вот некрасивая, плохая программа; а вот она же, но после рефакторинга, хорошая и красивая.


Как вариант — http://kmmbvnr.livejournal.com/17360.html
-- Главное про деструктор копирования не забыть --
Re[2]: [Рефакторинг]: Примеры программ.
От: uncommon Ниоткуда  
Дата: 24.11.11 06:24
Оценка:
Здравствуйте, kmmbvnr, Вы писали:

K>Здравствуйте, 0x7be, Вы писали:


0>>Коллеги,


0>>такой необычный запрос: ищу примеры программ до и после рефакторинга. Типа, вот некрасивая, плохая программа; а вот она же, но после рефакторинга, хорошая и красивая.


K>Как вариант — http://kmmbvnr.livejournal.com/17360.html


И где здесь "после рефакторинга, хорошая и красивая"? Код как был плохим, так и остался. (Я хотел порезче выразиться, но потом заметил, что это твой код .)
Re: [Рефакторинг]: Примеры программ.
От: GarryIV  
Дата: 24.11.11 20:35
Оценка:
Здравствуйте, 0x7be, Вы писали:

0>такой необычный запрос: ищу примеры программ до и после рефакторинга. Типа, вот некрасивая, плохая программа; а вот она же, но после рефакторинга, хорошая и красивая. Желательно, что бы примеры не совсем короткие, хотя бы пару килобайт кода. Если у кого есть такое или ссылки на такое — поделитесь, плз. Заранее спасибо.


Так не бывает. Рефакторят обычно класс, метод. Можно посмотреть на deprecated методы, классы разных библиотек. Часто вместо них предлагается что-то отрефакторенное.
WBR, Igor Evgrafov
Re[3]: [Рефакторинг]: Примеры программ.
От: kmmbvnr Россия http://kmmbvnr.livejournal.com
Дата: 25.11.11 03:10
Оценка:
Здравствуйте, uncommon, Вы писали:


K>>Как вариант — http://kmmbvnr.livejournal.com/17360.html


U>И где здесь "после рефакторинга, хорошая и красивая"? Код как был плохим, так и остался. (Я хотел порезче выразиться, но потом заметил, что это твой код .)


Надо не резче выражаться, а конкретнее. Там решена основная задача — большая сопля кода, превращена в набор локальных проблем. Что-то не так с появившемся интерфейсом?
-- Главное про деструктор копирования не забыть --
Re: [Рефакторинг]: Примеры программ.
От: мыщъх США http://nezumi-lab.org
Дата: 25.11.11 03:25
Оценка: 10 (1)
Здравствуйте, 0x7be, Вы писали:

0>Коллеги,


0>такой необычный запрос: ищу примеры программ до и после рефакторинга.


refactormycode.com
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re: [Рефакторинг]: Примеры программ.
От: jazzer Россия Skype: enerjazzer
Дата: 25.11.11 03:42
Оценка: 2 (1)
Здравствуйте, 0x7be, Вы писали:

0>Коллеги,


0>такой необычный запрос: ищу примеры программ до и после рефакторинга. Типа, вот некрасивая, плохая программа; а вот она же, но после рефакторинга, хорошая и красивая. Желательно, что бы примеры не совсем короткие, хотя бы пару килобайт кода. Если у кого есть такое или ссылки на такое — поделитесь, плз. Заранее спасибо.


Ну вот, к примеру, была такая библиотека С++ Boost.Spirit (построитель парсеров), и у нее внутри лежала библиотечка Phoenix (эмуляция лямбда-функций, в основном для использования в качестве semantic actions в Spirit).
Обе эти библиотеки использовали нетривиальную ленивую перегрузку операторов на всю катушку (техника под названием Expression templates).
Потом еще появилась библиотека Boost.Xpressive, для собирания регулярных выражений во время компиляции, с использованием тех же самых техник.
После чего автор Xpressive Eric Niebler покумекал и применил рефакторинг Extract Library (по аналогии с Extract Method).
В результате его усилий появилась библиотека Boost.Proto для построения DSEL в С++, после чего все три библиотеки (Spirit, Phoenix, Xpressive) выкинули свои старые потроха и стали базироваться на Proto, причем Phoenix из всопогательной библиотеки стала полноценной библиотекой первого уровня и фактически отправила на свалку старые библиотеки Boost.Bind и Boost.Lambda.

Ну и писать свои DSL в С++ теперь одно удовольствие по сравнению с тем, что было раньше (Expression templates в рукопашную).
www.boost.org/libs/proto

Вот такой пример немаленького успешного рефакторинга.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.