Russian Qt Forum
Ноябрь 23, 2024, 06:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Стоит ли переводить код из старых WinAPI-программ "потихонечку" в Qt  (Прочитано 12861 раз)
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #15 : Декабрь 20, 2018, 03:37 »

Сначала добиться минимально работоспособного приложения на  qt с минимально нужным функционалом, но с уже чистой архитектурой и кодом. А потом доращивать и делать новые окна.  как то так.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #16 : Декабрь 20, 2018, 10:01 »

Сначала добиться минимально работоспособного приложения на  qt с минимально нужным функционалом, но с уже чистой архитектурой и кодом. А потом доращивать и делать новые окна.  как то так.
Это может прокатить если "весь старый код - мой", впрочем и то не всегда (недавно обнаружил что НЕ МОГУ портировать собственный плагин начала нулевых). Но чаще бывает что код писался неск авторами, и шансы на "чистую архитектуру" практически нулевые, быстро упремся в устаревшие структуры данных. Рефакторинг и портинг - хотя и связанные, но все-таки разные задачи и смешивать их некорректно.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #17 : Декабрь 20, 2018, 13:56 »

Ну. смысл портировать без рефакторинга может быть только в 2 случаях:

1. старая архитектура и так хороша.
2. заказчик хочет всё "на вчера" и не готов платить за улучшения.

Пункт 2, однако, опасен. Его стоит выбирать только если 100% уверен, что "быстро взлетит".
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #18 : Декабрь 20, 2018, 14:19 »

В общем, однозначного решения здесь нет (что было очевидно с самого начала). Все зависит от многих деталей и ньюансов, в том числе и от личных амбиций и сил. Но выслушать мнение понимающих проблему людей было чрезвычайно полезно.
И это я вовсе не к тому, что хочу это обсуждение закрыть. И думаю, что эта проблема интересна не мне одному.Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #19 : Декабрь 20, 2018, 16:29 »

И это я вовсе не к тому, что хочу это обсуждение закрыть. И думаю, что эта проблема интересна не мне одному.Улыбающийся
А обсуждение фактически завершено. Ну могу с Racheengel пободаться, но это ничего не изменит  Улыбающийся - каждый останется при своем мнении, т.к. оно основано на личном опыте.
 
Да, и по-настоящему хорошие темы (как эта) не собирают много постов, наоборот, популярны темы совершенно идиотские, где можно поржать, (упорно) доказывать собеседнику что он дурак и.т.п. - вот там охотно исписывются десятки страниц. Ну программисты в основном заходят на форум отдохнуть и потрепаться, так что это нормально  Улыбающийся

И вот что: уже неск раз я заметил что Вы (прилюдно) ругаете старый код, испытываете у нему отвращение и.т.п. Оно конечно дело Ваше, но лучше так не делать, он отомстит за это. В конце-концов кто знает что будет с нынешним кодом 20 лет спустя, доживет ли он вообще, и будет ли иметь хоть каких-то юзеров (как Ваш старый)?

Записан
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #20 : Декабрь 20, 2018, 17:13 »

Цитировать
Вы (прилюдно) ругаете старый код
Особых угрызений совести не испытываю, так как ругаю-то самого себя.Веселый
Цитировать
лучше так не делать, он отомстит за это.
Да, вы правы. Чуточку здоровой суеверности в нашем деле не повредит:)
Записан
DarkHobbit
Самовар
**
Offline Offline

Сообщений: 197


Просмотр профиля
« Ответ #21 : Декабрь 22, 2018, 15:35 »

Потихонечку - можно.

Причём я бы начал с отделения мух от котлет. То есть с вынесения вещей, не зависящих от фреймворка, в отдельные места. И тут необязательно заморачиваться с плагинами или DLL, как подсказывали выше. Возможно (в случае C++) - просто в отдельные классы. То есть приведение в порядок на уровне исходного кода.

Чем это хорошо? Тем, что это полезно даже вне зависимости от того, дойдут ли Ваши руки до Qt. Это сделает программу более обозримой, позволит обкладывать её тестами, как угодно, и пр.

Ну а вот как только вынесете всю non-GUI функциональность в отдельные классы - тогда у вас может сразу наступить резкое просветление на тему, тащить ли сюда Qt. Причём для разных классов программ ответ на этот вопрос неочевиден.

Если (предположим худшее) Ваша программа - это GUI-обёртка над какой-нибудь БД, то увы, перенос на Qt означает практически полное переписывание с нуля. Ну разве что готовые SQL-запросы можно будет перетащить (что, кстати, иногда тоже немало).

Если, наоборот, в программе много логики, а ещё лучше математики, а GUI только помогает вводить входные данные - переделка программы после её структурирования будет лёгкой и приятной.

Обычно в реальных проектах происходит нечто среднее.

P.S. Упс, посмотрел соседнюю тему и понял, что совет запоздал - портирование, как я понял, уже началось, причём не по тому пути, по которому пошёл бы я сам. Грустный
« Последнее редактирование: Декабрь 22, 2018, 15:41 от DarkHobbit » Записан

Мои проекты на Qt: DoubleContact, LInvert
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #22 : Декабрь 22, 2018, 17:05 »

Цитировать
Упс, посмотрел соседнюю тему и понял, что совет запоздал - портирование, как я понял, уже началось, причём не по тому пути, по которому пошёл бы я сам.
Уверяю вас, в этом нет ничего страшного. Программист находится в более выигрышном положении, чем Боратырь из сказки. Он может послать своих виртуальных лошадок по всем трем дорогам, а сам в это время стоять у камня и репу чесать.Улыбающийся
Цитировать
я бы начал с отделения мух от котлет.
Это в основном уже сделано, и работа в этом направлении продолжается. И что из того, что делается без классов и на старом добром Си. Приемлемого структурирования программ можно добиться и на нем. А инкапсуляция, как и другая "защита от дурака" тут не очень нужна. Ибо этот дурак - я сам. А от него, сами понимаете, защиты нет.Улыбающийся
Цитировать
Ваша программа - это GUI-обёртка над какой-нибудь БД,
Нет, слава Богу, нет. БД там, конечно, есть. Но она чисто моя, самопальная. И уже вполне удачно перенесена в диалоговую часть, которую таки удалось сделать на Qt. С этим-то я справился. Но сейчас меня интересует встраивание окон-результатов. Ибо некоторые из этих окон просто просятся. А некоторые - еще не просятся. Вот оттуда-то и идея этого кентавра. Но, как известно, "в местах перехода чудища особенно уязвимы" (Апдайк)Улыбающийся
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.298 секунд. Запросов: 22.