Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.01.09;
Скачать: CL | DM;

Вниз

Как быстро разделить 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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.009 c
4-1243692161
Nikfel
2009-05-30 18:02
2011.01.09
Замена ресурсов из файлов?


2-1287124750
LDV
2010-10-15 10:39
2011.01.09
Выбор структуры для хранения данных


6-1233220277
apic
2009-01-29 12:11
2011.01.09
Сетевое имя компа


2-1286948561
Олег Крапивин
2010-10-13 09:42
2011.01.09
Ищу документацию на md MailSlot


9-1187680845
max_
2007-08-21 11:20
2011.01.09
DirectDraw - Поверхности