ide — Как портировать с C ++ Builder?

У меня есть эта большая программа, написанная на C ++ Builder, в значительной степени опирающаяся на графическую библиотеку VCL. По многим причинам я хочу отказаться от этого инструмента. Есть пара альтернативных компиляторов, к которым я могу перейти, я открыт для любого из них.

Что меня интересует, так это как шаг за шагом сделать реальное портирование? Кто-нибудь делал это и мог бы поделиться своим опытом?

Я хотел бы представить, что шаг 1 состоит в том, чтобы отделить GUI / VCL от приложения. Так или иначе, программа должна была быть разработана таким образом, но, к сожалению, это не так. Это один крупный проект, но куда мне идти после этого? Должен ли я связать графический интерфейс VCL в .dll-файлах, включить их в новый компилятор, но при необходимости сохранить их в Builder?

2

Решение

Я бы начал, как вы говорите, с отделения уровня представления от бизнес-логики. Начните с этого в привычной среде C ++ Builder: удалите бизнес-логику из приложения и заново создайте ее как один или несколько отдельных модулей (DLL в Windows), а также измените уровень представления так, чтобы программа все еще работала, но получала доступ к этим модулям для все операции бизнес-логики.

Затем вы можете переписать приложение без использования VCL. Вы можете придерживаться C ++ и использовать другую библиотеку GUI (Qt, безусловно, является одним из вариантов, wxWidgets также стоит посмотреть) или вы можете захотеть изменить язык (в зависимости от ваших собственных навыков и предпочтений) для уровня представления.

Еще одна привлекательность выведения бизнес-логики из презентации заключается в том, что она становится намного легче тестируемой.

Я бы рекомендовал взглянуть на книгу Майкла Фезерса. Эффективная работа с устаревшим кодом прежде чем ты начнешь. Он дает хороший (и очень основанный на тестах) подход к такого рода рефакторингу.

2

Другие решения

Я согласен, что вы должны отделить уровень представления от бизнес-логики.

Если вы ищете альтернативный графический интерфейс для VCL, вы могли бы рассмотреть Qt. Он также поставляется с IDE, которая имеет Пользовательский интерфейс дизайнер (аналогично C ++ Builder), но с преимуществами кроссплатформенности и открытости.

2

У меня была такая же ситуация с MFC один раз. Мой совет: начинайте с нуля и используйте все, что можете из старого кода, и на этот раз не путайте презентацию с логикой! 😉

2
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector