История изменений
Исправление 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 фреймворк переходить: менять только небольшие кусочки кода, не ломая вообще всё. И можно будет работать инкрементально.
И всё получится.