LINUX.ORG.RU

История изменений

Исправление unxed, (текущая версия) :

Я, кстати, знаю, почему DN OSP до сих пор ни на fp, ни на fv, ни на utf8 не пересадили.

Там адский dependency hell в модулях. Какой-нибудь lfnvp.pas, должный инкапсулировать логику работы с файловой системой, может тянуть в зависимостях интерфейсные модули, например.

И есть ещё штук 7 модулей с названиями «advance..advance7», куда запихнуто всё подряд, и которые зависят от всего на свете.

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

А пересадить весь DN на другую платформу «одним приемом» нереально, конечно. Вот и буксует.

Забавно, что в проекте, который мог бы служить демонстрацией силы ООП, напрочь забыто базовое понятие «инкапсуляция» :)

Поэтому что нужно сделать в первую очередь? Вооружиться хирургическим скальпелем и аккуратно отрефакторить всё это добро.

Чтоб представления жили отдельно, а IO - отдельно.

И тогда можно будет по частям на другой компилятор или UI фреймворк переходить: менять только небольшие кусочки кода, не ломая вообще всё. И можно будет работать инкрементально.

И всё получится.

Исходная версия unxed, :

Я, кстати, знаю, почему DN OSP до сих пор ни на fp, ни на fv, ни на utf8 не пересадили.

Там адский dependency hell в модулях. Какой-нибудь lfnvp.pas, должный инкапсулировать логику работы с файловой системой, может тянуть в зависимостях интерфейсные модули, например.

И есть ещё штук 7 модулей с названиями «advance..advance7», куда запихнуто всё подряд, и которые зависят от всего на свете.

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

А пересадить весь DN на другую платформу «одним приемом» нереально, конечно. Вот и буксует.

Забавно, что в проекте, который мог бы служить демонстрацией силы ООП, напрочь забыто базовое понятие «инкапсуляция» :)

Поэтому что нужно сделать в первую очередь? Вооружиться хирургическим скальпелем и аккуратно отреафкторить всё это добро.

Чтоб представления жили отдельно, а IO - отдельно.

И тогда можно будет по частям на другой компилятор или UI фреймворк переходить: менять только небольшие кусочки кода, не ломая вообще всё. И можно будет работать инкрементально.

И всё получится.