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

Вниз

Как быстро разделить Unit.pas на тематические модули?   Найти похожие ветки 

 
Guestt   (2010-09-26 19:48) [0]

По мере написания программы Unit.pas получился слишком большим, нужен быстрый способ разделить его на несколько тематических юнитов. Чтобы при переноске поменьше править код. Как это лучше сделать? Может ли кто-нибудь поделиться опытом?


 
sniknik ©   (2010-09-26 19:53) [1]

> Как это лучше сделать?
глазами смотришь, руками правишь, мозгом решаешь по какому признаку группировать/разделать...

или есть другие варианты? что вообще это значит - лучше?


 
Jumbo   (2010-09-26 19:53) [2]

Copy/Paste


 
Guestt   (2010-09-26 20:01) [3]


> что вообще это значит - лучше?


В первом постинге написано: "чтобы меньше править код".

Как лучше, отдельные функции в других юнитах создавать, или классы, если классы, то как быстрее ("чтобы меньше править код") обеспечить их взаимодействие и всё такое.


 
sniknik ©   (2010-09-26 20:09) [4]

> чтобы меньше править код
чтобы меньше править код нужно вообще ничего не разделять... это будет идеал - правок 0.


 
Jumbo   (2010-09-26 20:11) [5]

>>то как быстрее ("чтобы меньше править код") обеспечить их взаимодействие и всё такое.

Если у тебя между классами сильные взаимосвязи, то лучше оставить их в одном юните. Если связей нет - раскладываешь по юнитам простым Copy/Paste. Что сложного такого-то?

В общем, странно все это. Кто создатель? Кому лучше знать, что куда класть? Мы или ты?


 
Guestt   (2010-09-26 20:32) [6]


> Jumbo   (26.09.10 20:11) [5]
>
> >>то как быстрее ("чтобы меньше править код") обеспечить
> их взаимодействие и всё такое.
>
> Если у тебя между классами сильные взаимосвязи, то лучше
> оставить их в одном юните. Если связей нет - раскладываешь
> по юнитам простым Copy/Paste. Что сложного такого-то?


Там пока только один класс TForm.


 
sniknik ©   (2010-09-26 20:36) [7]

а из ветки только один вывод - развод.


 
Jumbo   (2010-09-26 23:49) [8]

...и сколько строк в этом мега-модуле?


 
Guestt   (2010-09-27 05:25) [9]


> Jumbo   (26.09.10 23:49) [8]
>
> ...и сколько строк в этом мега-модуле?


Десятки тысяч.


 
Guestt   (2010-09-27 06:15) [10]

Если у меня в Form1 некий элемент обозначен как

Form1 = class
 Item1 : Integer
end;


А в классе куда я переношу код


NewClass = class
 Item1 : ^Integer
end;

Причём этот указатель поставлен на Item1 из Form1. Так, чтобы через NewClass работать с переменными в Form1.

Тогда когда я переношу кусок кода из Form1 в NewClass, то мне надо везде заменить Item1 на Item1^. Можно ли как-нибудь сделать так, чтобы не надо было делать такую замену по всему коду?


 
brother ©   (2010-09-27 06:48) [11]

> Можно ли как-нибудь сделать так, чтобы не надо было делать
> такую замену по всему коду?

поиск - замена?)


 
Guestt   (2010-09-27 07:28) [12]


> поиск - замена?)


Вопрос был чтобы НЕ надо было делать замену.


 
Jumbo   (2010-09-27 08:23) [13]

...
>> строк в этом мега-модуле?
>
> Десятки тысяч.
<...>
>NewClass = class
>  Item1 : ^Integer
>end;
>
>Причём этот указатель поставлен на Item1 из Form1.


У тебя проблемы с проектированием. Большие проблемы. Переносом в новые модули ты их вряд ли решишь. И, судя по ходу твоих мыслей, проблем будет еще больше, гораздо больше. Оставь так, как есть, не усугубляй. А в следуюящий раз, преде чем начинать писать код, думай, что именно ты собираешься  писать. Но уже не в этот раз, а в следующий. В этот раз - не надо. Не надо.


 
Guestt   (2010-09-27 08:35) [14]


> У тебя проблемы с проектированием. Большие проблемы.


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

К сожалению, хорошо разбирающихся в проектировании мало, так как большинство пишут маленькие программки и им это не нужно.


 
Anatoly Podgoretsky ©   (2010-09-27 09:30) [15]


> У тебя проблемы с проектированием.

Зато нет проблем с верой. Верит в чудо.


 
Думкин ©   (2010-09-27 09:35) [16]


> Вот мне и нужен человек с опытом в проектировании,

Фаулер?


> так как большинство пишут маленькие программки

и не говори подружка, у самой муж пьяница(с)


 
Плохиш ©   (2010-09-27 10:22) [17]

Судя по соседним вопросам и примерам кода, то легче нанять программиста.

PS.
Проектирую системы. Очень дорого.


 
boriskb ©   (2010-09-27 10:23) [18]


> Там пока только один класс TForm.


> > ...и сколько строк в этом мега-модуле?
Десятки тысяч.


Самоучка?

А проще не получится.
Переписать прогу с предварительным проектированием


 
sniknik ©   (2010-09-27 10:35) [19]

> который знает и мог бы посоветовать как подобные проблемы решать
я знаю... по постоянно приходится таким заниматься. как это делается (совет) - приносят/получают откуда то код, и я его переписываю, полностью, ругаясь и матеря на чем свет стоит отдел кадров, которые "набрали ламеров по обьявлениям".
после этого обычно из программы исчезают "барабашки", логи начинают показывать системные ошибки (типа "файл занят", а не отсебятный бред), программа начинает работать быстрее, цто перестает ругать windows за то что она такая кривая не приспособлена к нашей программе, а код становится на порядок меньше (вот ей богу, последний из > 6000 стал 664 (так и подмывало добавить еще 2 ;), не стал, но запомнил), при том, что дополнительных пару функций добавил)

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


 
sniknik ©   (2010-09-27 10:36) [20]

> Самоучка?
недоучка.


 
@!!ex ©   (2010-09-27 11:33) [21]

> [9] Guestt   (27.09.10 05:25)
> Десятки тысяч.

"Это конец, Света."

Как можно в одном TForm столько кода сделать??
ООП зло, давайте все писать процедурами, чтоли??


 
Ega23 ©   (2010-09-27 11:47) [22]


> К сожалению, хорошо разбирающихся в проектировании мало,
>  так как большинство пишут маленькие программки и им это
> не нужно.


Отучиваемся говорить за большинство.


 
Игорь Шевченко ©   (2010-09-27 11:55) [23]


> Отучиваемся говорить за большинство.


Большинство пишет лажу, неважно, какого объема


 
Guestt   (2010-09-27 15:57) [24]

Удалено модератором
Примечание: Ты прав пользы ноль и не будет


 
Ega23 ©   (2010-09-27 16:01) [25]


> А пользы другим от таких постингов - ноль.


Какая может быть польза? Судя по твоим обмолвкам - у тебя там жосткая задница, т.к. писалось без ума. И таки да, согласен, что раз во много твой код можно сократить.
Совет тут один - либо читай теорию и пробуй, либо найми программиста.
А если ты хочешь, чтобы тебе дали конкретный ответ, то и задавай конкретный вопрос, типа: "У меня есть сущность А, сущность В, сущность С, связаны они так-то и так-то, как бы их лучше разнести по модулям".



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

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

Наверх





Память: 0.51 MB
Время: 0.004 c
2-1286986134
infectioni
2010-10-13 20:08
2011.01.09
параметры куба


2-1286912340
v_a_belousov
2010-10-12 23:39
2011.01.09
Получить все объекты на форме


2-1287039502
Hadroran
2010-10-14 10:58
2011.01.09
Быстрый поиск в большом текстовом файле


15-1285241479
oxffff
2010-09-23 15:31
2011.01.09
YAR и параметрический полиморфизм


15-1284571785
МИхаил
2010-09-15 21:29
2011.01.09
Хранение вещественного в 2 целых числах, и операции с ним





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский