Size: a a a

2020 February 15

W

WoodyFire in Qt
Renat Garaev
видимо вы описали монорепозитарий git для своего проекта. Когда все ведут работу в одном и том же проекте. Но тут будет уже сложности, когда будут меняться api и между компонентами будет возникать проблема с поддержкой различных версий приложения
> Но тут будет уже сложности, когда будут меняться api и между компонентами будет возникать проблема с поддержкой различных версий приложения

совершенно верно. и это один из минусов. Поэтому чем на начально этапе лучше спроектировано тем меньше будет такой возни. Но как всегда все не предусмотреть. Поэтому от этого никуда не деться.
Но  это мое мнение без опыта ведения работы в таком направлении. Для меня это пока чистая теория. Вот и пишу здесь у Вас )))
источник

AS

Anatoly Shirokov in Qt
@woodyfire а как это все связано с Qt чатом?
источник

AS

Anatoly Shirokov in Qt
но раз оффтоп я заброшу свои пять копеек: я вам настоятельно рекомендую стать владельцем проекта и формулировать и описывать функциональное наполнение, а реализацию оставить программистам. или вы и зубы себе сами пломбируете?
источник

W

WoodyFire in Qt
Anatoly Shirokov
@woodyfire а как это все связано с Qt чатом?
изначально было дело о плагинах в Qt. Глава 42 в книге Шлее. Не совсем понял и понимаю как их правильно использовать. Вот и задал тут вопрос.
источник

W

WoodyFire in Qt
Anatoly Shirokov
но раз оффтоп я заброшу свои пять копеек: я вам настоятельно рекомендую стать владельцем проекта и формулировать и описывать функциональное наполнение, а реализацию оставить программистам. или вы и зубы себе сами пломбируете?
> я вам настоятельно рекомендую стать владельцем проекта и формулировать и описывать функциональное наполнение

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

> а реализацию оставить программистам

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

Правильно в данном проекте инвесторов не будет и не планируется. А мне лично надо. Лично я не хочу листая бумагу и ручками что-то считать. Уж больно я ленив. А лень как мы знаем - это осознанная мудрость. Только у каждого мировоззрение в этом вопросе разное.
источник

AS

Anatoly Shirokov in Qt
@woodyfire я как-то в супапро на пальцах описывал
источник

AS

Anatoly Shirokov in Qt
#plugin на пальцах, предположим у тебя desktop, а плагины будут реализовывать рисование геометрических фигур:
1. создаешь интерфейс плагина (Plugin API), скажем, это функция
class Figure {
  virtual ~Figure() = default;
  virtual draw(HDC hdc) = 0;
};
using createFigureSignaturePtr = std::unique_ptr<Figure>(*)();
2. в десктопе, скажем, идешь по каталогу и грузишь плагины (на примере WINAPI, но а так бери что хочешь, хоть boost.dll):
auto hLibrary = LoadLibrary(pluginFileName);
createFigureSignaturePtr ptr = GetProcAddress(hLibrary, "createFigure");
// сохраняй в мапу считанный указатель и размещай на тулбаре
3. создаешь плагин, реализуя функцию createFigure и импортишь ее, dll кладешь в каталог, в котором ищет плагины desktop приложение.
источник

AS

Anatoly Shirokov in Qt
WoodyFire
> я вам настоятельно рекомендую стать владельцем проекта и формулировать и описывать функциональное наполнение

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

> а реализацию оставить программистам

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

Правильно в данном проекте инвесторов не будет и не планируется. А мне лично надо. Лично я не хочу листая бумагу и ручками что-то считать. Уж больно я ленив. А лень как мы знаем - это осознанная мудрость. Только у каждого мировоззрение в этом вопросе разное.
Сложная система - результат эволюции простой  системы (c) Буч.
источник

AS

Anatoly Shirokov in Qt
Пишите ad hoc
источник

AS

Anatoly Shirokov in Qt
Получите первую версию без архитектурных изысков, но пусть она выполняет то, что вам требуется.
источник

W

WoodyFire in Qt
Anatoly Shirokov
#plugin на пальцах, предположим у тебя desktop, а плагины будут реализовывать рисование геометрических фигур:
1. создаешь интерфейс плагина (Plugin API), скажем, это функция
class Figure {
  virtual ~Figure() = default;
  virtual draw(HDC hdc) = 0;
};
using createFigureSignaturePtr = std::unique_ptr<Figure>(*)();
2. в десктопе, скажем, идешь по каталогу и грузишь плагины (на примере WINAPI, но а так бери что хочешь, хоть boost.dll):
auto hLibrary = LoadLibrary(pluginFileName);
createFigureSignaturePtr ptr = GetProcAddress(hLibrary, "createFigure");
// сохраняй в мапу считанный указатель и размещай на тулбаре
3. создаешь плагин, реализуя функцию createFigure и импортишь ее, dll кладешь в каталог, в котором ищет плагины desktop приложение.
пример описан в книге Шлее по Qt. примерно также как и Вы описали. Немного больше расписано, но суть не меняется.
источник

W

WoodyFire in Qt
Anatoly Shirokov
Получите первую версию без архитектурных изысков, но пусть она выполняет то, что вам требуется.
а потом искать костыль чтобы как - то, что-то внедрить дополнительно ))). Спасибо.

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

Ладно и на этом спасибо. Оффтопить больше не буду. Пошел своей резиновой утке рассказывать как корабли бороздят небосвод.
А тут буду задавать лишь вопросы по использованию библиотеки Qt.
источник

AS

Anatoly Shirokov in Qt
Anatoly Shirokov
Сложная система - результат эволюции простой  системы (c) Буч.
Распечатайте себе этот плакат
источник

AS

Anatoly Shirokov in Qt
А то что вы хотите - это "вложите в меня знания о хорошей архитектуре". Не выйдет.
источник

W

WoodyFire in Qt
Anatoly Shirokov
А то что вы хотите - это "вложите в меня знания о хорошей архитектуре". Не выйдет.
> Нет хороших архитектур. Есть первая, которая работает и она правильная.
источник

W

WoodyFire in Qt
Anatoly Shirokov
А то что вы хотите - это "вложите в меня знания о хорошей архитектуре". Не выйдет.
Ни коим образом Вас обидеть я не хочу, но я прежде чем спросить  - изложил все что я хочу увидеть в приложении, что я понял и что не понимаю в вопросе о написании плагина. Я не прошу Вас спроектировать мне с нуля. Худо бедно архитектура спроектирована коряво, но это сделал я и как мог.
Я плагин пока не совсем понимаю как использовать и т.д. А вот функцию написать в библиотеке я смогу и подключить ее к проекту тоже. Даже смогу ее использовать в проекте. Но вот только мне не функция нужна.

Ну да ладно. Это уже другая история. Все равно Вам спасибо. Хоть немного разворошили мне мозг.

А плакат. Зачем он мне нужен. Я не болею обклейкой стен плакатами вместо обоев. Но фразу запомню.
источник

AS

Anatoly Shirokov in Qt
WoodyFire
Ни коим образом Вас обидеть я не хочу, но я прежде чем спросить  - изложил все что я хочу увидеть в приложении, что я понял и что не понимаю в вопросе о написании плагина. Я не прошу Вас спроектировать мне с нуля. Худо бедно архитектура спроектирована коряво, но это сделал я и как мог.
Я плагин пока не совсем понимаю как использовать и т.д. А вот функцию написать в библиотеке я смогу и подключить ее к проекту тоже. Даже смогу ее использовать в проекте. Но вот только мне не функция нужна.

Ну да ладно. Это уже другая история. Все равно Вам спасибо. Хоть немного разворошили мне мозг.

А плакат. Зачем он мне нужен. Я не болею обклейкой стен плакатами вместо обоев. Но фразу запомню.
ну чем вы меня можете обидеть? нет, просто делайте, как делается. получите версию, которая работает, проанализируйте, что не гибко, что трудно изменять на опыте эксплуатации,  перепроектируйте, получите версию 2 и т.д. вот это и есть эволюция. а про плакат я условно, запомните и хорошо.
источник

AS

Anatoly Shirokov in Qt
то есть мой мессадж был в том, чтобы вы сейчас на свой багаж знаний опирались и не форсировали.
источник

AS

Anatoly Shirokov in Qt
все, оффтоп закончили.
источник

W

WoodyFire in Qt
У меня есть времянка, но мне надо больше и на Qt и в Linux )
источник