Russian Qt Forum
Ноябрь 23, 2024, 06:31
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Стоит ли переводить код из старых WinAPI-программ "потихонечку" в Qt
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Стоит ли переводить код из старых WinAPI-программ "потихонечку" в Qt (Прочитано 12862 раз)
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Стоит ли переводить код из старых WinAPI-программ "потихонечку" в Qt
«
Ответ #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
Сообщений: 11445
Re: Стоит ли переводить код из старых WinAPI-программ "потихонечку" в Qt
«
Ответ #16 :
Декабрь 20, 2018, 10:01 »
Цитата: Racheengel от Декабрь 20, 2018, 03:37
Сначала добиться минимально работоспособного приложения на qt с минимально нужным функционалом, но с уже чистой архитектурой и кодом. А потом доращивать и делать новые окна. как то так.
Это может прокатить если "весь старый код - мой", впрочем и то не всегда (недавно обнаружил что НЕ МОГУ портировать собственный плагин начала нулевых). Но чаще бывает что код писался неск авторами, и шансы на "чистую архитектуру" практически нулевые, быстро упремся в устаревшие структуры данных. Рефакторинг и портинг - хотя и связанные, но все-таки разные задачи и смешивать их некорректно.
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Стоит ли переводить код из старых WinAPI-программ "потихонечку" в Qt
«
Ответ #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
Сообщений: 290
Re: Стоит ли переводить код из старых WinAPI-программ "потихонечку" в Qt
«
Ответ #18 :
Декабрь 20, 2018, 14:19 »
В общем, однозначного решения здесь нет (что было очевидно с самого начала). Все зависит от многих деталей и ньюансов, в том числе и от личных амбиций и сил. Но выслушать мнение понимающих проблему людей было чрезвычайно полезно.
И это я вовсе не к тому, что хочу это обсуждение закрыть. И думаю, что эта проблема интересна не мне одному.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Стоит ли переводить код из старых WinAPI-программ "потихонечку" в Qt
«
Ответ #19 :
Декабрь 20, 2018, 16:29 »
Цитата: Day от Декабрь 20, 2018, 14:19
И это я вовсе не к тому, что хочу это обсуждение закрыть. И думаю, что эта проблема интересна не мне одному.
А обсуждение фактически завершено. Ну могу с
Racheengel
пободаться, но это ничего не изменит
- каждый останется при своем мнении, т.к. оно основано на личном опыте.
Да, и по-настоящему хорошие темы (как эта) не собирают много постов, наоборот, популярны темы совершенно идиотские, где можно поржать, (упорно) доказывать собеседнику что он дурак и.т.п. - вот там охотно исписывются десятки страниц. Ну программисты в основном заходят на форум отдохнуть и потрепаться, так что это нормально
И вот что: уже неск раз я заметил что Вы (прилюдно) ругаете старый код, испытываете у нему отвращение и.т.п. Оно конечно дело Ваше, но лучше так не делать, он отомстит за это. В конце-концов кто знает что будет с нынешним кодом 20 лет спустя, доживет ли он вообще, и будет ли иметь хоть каких-то юзеров (как Ваш старый)?
Записан
Day
Частый гость
Offline
Сообщений: 290
Re: Стоит ли переводить код из старых WinAPI-программ "потихонечку" в Qt
«
Ответ #20 :
Декабрь 20, 2018, 17:13 »
Цитировать
Вы (прилюдно) ругаете старый код
Особых угрызений совести не испытываю, так как ругаю-то самого себя.
Цитировать
лучше так не делать, он отомстит за это.
Да, вы правы. Чуточку здоровой суеверности в нашем деле не повредит:)
Записан
DarkHobbit
Самовар
Offline
Сообщений: 197
Re: Стоит ли переводить код из старых WinAPI-программ "потихонечку" в Qt
«
Ответ #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
Сообщений: 290
Re: Стоит ли переводить код из старых WinAPI-программ "потихонечку" в Qt
«
Ответ #22 :
Декабрь 22, 2018, 17:05 »
Цитировать
Упс, посмотрел соседнюю тему и понял, что совет запоздал - портирование, как я понял, уже началось, причём не по тому пути, по которому пошёл бы я сам.
Уверяю вас, в этом нет ничего страшного. Программист находится в более выигрышном положении, чем Боратырь из сказки. Он может послать своих виртуальных лошадок по всем трем дорогам, а сам в это время стоять у камня и репу чесать.
Цитировать
я бы начал с отделения мух от котлет.
Это в основном уже сделано, и работа в этом направлении продолжается. И что из того, что делается без классов и на старом добром Си. Приемлемого структурирования программ можно добиться и на нем. А инкапсуляция, как и другая "защита от дурака" тут не очень нужна. Ибо этот дурак - я сам. А от него, сами понимаете, защиты нет.
Цитировать
Ваша программа - это GUI-обёртка над какой-нибудь БД,
Нет, слава Богу, нет. БД там, конечно, есть. Но она чисто моя, самопальная. И уже вполне удачно перенесена в диалоговую часть, которую таки удалось сделать на Qt. С этим-то я справился. Но сейчас меня интересует встраивание окон-результатов. Ибо некоторые из этих окон просто просятся. А некоторые - еще не просятся. Вот оттуда-то и идея этого кентавра. Но, как известно, "в местах перехода чудища особенно уязвимы" (Апдайк)
Записан
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...