Главная страница
    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.039 c
3-1106901753
denis24
2005-01-28 11:42
2005.02.27
добавление записи в основную и связаные таблицы


3-1106830570
Mva
2005-01-27 15:56
2005.02.27
транзакции


3-1106580930
able
2005-01-24 18:35
2005.02.27
*.mdb в той же папке, что и программа


1-1108096914
alex_007
2005-02-11 07:41
2005.02.27
Кикаем юзера в локалке


1-1108402517
Гость
2005-02-14 20:35
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский