Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Вниз

Опрос - рефакторинг   Найти похожие ветки 

 
Danilka ©   (2005-02-04 07:52) [40]

[22] Юрий Зотов ©   (03.02.05 18:52)
> А давайте рассмотрим три программы, построенные по таким
> схемам:
> 1. код - данные
> 2. код - описание_данных - данные
> 3. код - описание_алгоритма - описание_данных - данные

Ну, вообще-то во всех трех схемах придется затрачивать время на доработку. :)
Хотя, конечно, доработка серверной части, намного легче и проще для установки клиентам, чем каждый раз в паскале ковыряться и рассылать бпл-ки.
Правда, все это как-бы и не рефакторинг, а развитие..


 
КаПиБаРа ©   (2005-02-04 08:32) [41]

iZEN ©   (03.02.05 23:01) [35]
что Вы лично понимаете под "рефакторингом"?


Ну эта как бы объяснить... :)

Нужно хранить список выбраных записей.
Был у меня массив. Заменил я его на TList. Сейчас думаю заменить его на TMyList основанный на динамическом массиве или связном списке.

Вот.


 
Юрий Зотов ©   (2005-02-04 08:56) [42]

> КаПиБаРа ©   (04.02.05 08:32) [41]

> Сейчас думаю заменить его на TMyList основанный на
> динамическом массиве или связном списке.

А завтра возникнет необходимость использовать этот класс в многопоточном приложении. И либо нарвемся на чудеса, либо придется его переделывать, либо его СРАЗУ надо писать с учетом многопоточности.

Я бы предпочел третий вариант. И подумал о наследовании от TThreadList. А в результате получил бы что-то близкое к 100/0.


 
jack128 ©   (2005-02-04 09:04) [43]

iZEN ©   (03.02.05 23:01) [35]
А что Вы лично понимаете под "рефакторингом"?

Рефакторинг представляет собой такого измнения программной системы, при которорм не меняется внешнее поведение кода, но улудшается его внутренняя структура. (с) М. Фаулер

В связи с таким определением вопрос к Юре Зотову
Юрий Зотов ©   (03.02.05 18:06) [18]
Тут как-то ветка была про парсинг.
Угу, помним

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

Смотрю на определение Фаулера. Смотрю на тот код. Чесно говоря, не вижу где там предусмотрено зарание возможность улудшения структуры кода. Зато отлично виден потенциал для расширения функционала. Я немного слепой, или просто мы по разному понимает термин рефакторинг??

КаПиБаРа ©   (04.02.05 8:32) [41]
Сейчас думаю заменить его на TMyList основанный на динамическом массиве или связном списке.

Это не рефакторинг, имхо.


 
Юрий Зотов ©   (2005-02-04 09:13) [44]

> jack128 ©   (04.02.05 09:04) [43]

> Я немного слепой, или просто мы по разному понимает термин
> рефакторинг?

Второе. Я предпочитаю трактовать его более общно и менее формально, чем Фаулер. Хотя с точки зрения теории и методологии это, видимо, и не совсем верно, но Фаулер писал книгу, а я пишу программы. Отсюда и разница.


 
КаПиБаРа ©   (2005-02-04 09:31) [45]

Юрий Зотов ©   (04.02.05 8:56) [42]
Пока не дорос до такого подхода, когда видно в деталях развитие программы на много шагов вперед. Я пока в рассмотрении пользуюсь абстрактными понятиями объект, связи, свойства и т.д. Могу представить взаимодействие основных объектов и как оно может развиваться, чем быть ограничено, но предвидеть судьбу второстепенного списка созданного для хранения выделенных элементов в одном из списков как то сразу не могу. Реализовал его в виде массива. Потом с окаказоль что хорошо бы сохранять список выделенных элементов в файл. Вот уже и класс можно сделать, хотя и массив можно оставить.  Но тогда код обслуживающий сам массив будет по всему модулю размазан, что не есть хорошо.

jack128 ©   (04.02.05 9:04) [43]
Это не рефакторинг, имхо.

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


 
iZEN ©   (2005-02-04 10:07) [46]

/**К jack128 ©   (04.02.05 09:04) [43]
>КаПиБаРа ©   (04.02.05 8:32) [41]
>Сейчас думаю заменить его на TMyList основанный на динамическом массиве или связном списке.
Это не рефакторинг, имхо.
*/
Это-то как раз рефакторинг.
Другой пример: меняем ArrayList на LinkedList - в десятки раз увеличивается быстродейсвтие на операциях вставки/удаления, но, правда во столько же раз уменьшается скорость доступа к элементам, а вот интерфейс доступа - тот же.



Страницы: 1 2 вся ветка

Форум: "Потрепаться";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.106 c
3-1106992531
Patrick
2005-01-29 12:55
2005.02.27
Создать запрос


1-1108037175
D2k5
2005-02-10 15:06
2005.02.27
Установка компонентов в Delphi 2005


9-1101493193
miek
2004-11-26 21:19
2005.02.27
GLScene: TerrainRenderer


4-1105703315
Stanislav
2005-01-14 14:48
2005.02.27
Активация формы


1-1107963572
Chajnik
2005-02-09 18:39
2005.02.27
Подможите пож. подсчитать символы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский