Sciter
От: LaptevVV Россия  
Дата: 01.06.18 13:45
Оценка:
Почитал про Sciter...
Если кто работал — поделитесь впечатлениями
Хочу использовать в курсовых для реализации интерфейса.
Ибо если Qt — то студенты начинаю лепить прогу сразу в дизайнере.
И лепят бизнес-код в классы интерфейса.

Нужно заставить их отделять реализацию бизнес-логики от реализации интерфейса.
Что скажете?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Qt
От: SaZ  
Дата: 01.06.18 14:23
Оценка: 13 (2) +2
Здравствуйте, LaptevVV, Вы писали:

LVV>...

LVV>Ибо если Qt — то студенты начинаю лепить прогу сразу в дизайнере.
LVV>И лепят бизнес-код в классы интерфейса.
LVV>Нужно заставить их отделять реализацию бизнес-логики от реализации интерфейса.
LVV>Что скажете?

Запретите им пользоваться виджетами, пусть делают весь GUI на QML (QtQuick). Очень простой синтаксис, и хочешь не хочешь — придётся разделять логику. Вот из этой темы
Автор: SaZ
Дата: 16.04.17
можно пособирать полезных ссылок.
Отредактировано 01.06.2018 14:24 SaZ . Предыдущая версия .
Re: Sciter
От: Mr.Delphist  
Дата: 01.06.18 15:08
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Нужно заставить их отделять реализацию бизнес-логики от реализации интерфейса.

LVV>Что скажете?

Пусть реализуют попутно какой-то REST API и возможность стартовать как сервис, допустим. Это их вынудит выделить "движок" с бизнес-логикой, который можно стартовать как headless-сервис. А сам UI, например, уже есть заранее готовый (главное его сконфигурить на нужный порт локал-хоста).
Re: Sciter
От: Ops Россия  
Дата: 01.06.18 15:31
Оценка: 6 (1) +2
Здравствуйте, LaptevVV, Вы писали:

LVV>Нужно заставить их отделять реализацию бизнес-логики от реализации интерфейса.


Зачем? Какая задача — такая и архитектура. Если мне надо посчитать 2+2, то городить из-за этого какие-то слои глупо. Надо им ставить такие задачи, где лапша из бизнес-логики и UI тупо неудобна.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: Sciter
От: m2l  
Дата: 01.06.18 16:50
Оценка: 1 (1)
Здравствуйте, LaptevVV, Вы писали:

LVV>Почитал про Sciter...

LVV>И лепят бизнес-код в классы интерфейса.
Вещь хорошая, но требует знания html и скупо документированная.

LVV>Нужно заставить их отделять реализацию бизнес-логики от реализации интерфейса.

LVV>Что скажете?
К решению задачи отделения логики от реализации ортогонально.
Re: Sciter
От: c-smile Канада http://terrainformatica.com
Дата: 02.06.18 04:14
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Нужно заставить их отделять реализацию бизнес-логики от реализации интерфейса.

LVV>Что скажете?

На самом деле полезно даже не в смысле архитектуры, а в том что HTML/CSS для UI practitioners нужно знать по любому.
Ну и понятие что UI code flow сильно отличается от линейного кода бизнес-логики.
Re: Sciter
От: LaptevVV Россия  
Дата: 12.06.18 10:32
Оценка:
Ничего конкретного так и не сказали.
А задлача моя простая.
ЗАСТАВИТЬ студентов отделять мух от котлет.
Ибо если все делается на С++, то ОЧЕНЬ немногие на 2 курсе понимают,
что интерфейс и бизнес-логика (какая бы она ни была) — это две БОЛЬШИЕ разницы.
При программировании в Qt многократно наблюдал реализацию ВСЕГО в классе mainwindow.
Устаешь постоянно с этим бороться.
Хочется, чтобы инструментарий просто не позволял такого подхода.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Sciter
От: AlexGin Беларусь  
Дата: 12.06.18 14:34
Оценка: 26 (1) +1
Здравствуйте, LaptevVV, Вы писали:
...
LVV>А задлача моя простая.
LVV>ЗАСТАВИТЬ студентов отделять мух от котлет.
LVV>Ибо если все делается на С++, то ОЧЕНЬ немногие на 2 курсе понимают,
LVV>что интерфейс и бизнес-логика (какая бы она ни была) — это две БОЛЬШИЕ разницы.
LVV>При программировании в Qt многократно наблюдал реализацию ВСЕГО в классе mainwindow.
LVV>Устаешь постоянно с этим бороться.

Бороться — не надо!
А поставить задачу по типу:

Сделать единый набор классов (обозначим его как Core), реализующий определенную, заранее оговоренную, бизнес-логику.

Данный набор Core мы применим далее в виде двух приложений и теста:
1) Приложение с GUI (используй тот же Qt, STL, если надо — boost);
2) Приложение командной строки (используй STL, и при необходимости boost);
3) Дополнительно — сделать Unit-тест для проверки функционирования вышеупомянутого набора Core классов.

Для первого случая — сделаем "адаптер" (обозначим его как GUIProxy) — являющийся мостиком между GUI и бизнес логикой.
Для второго случая — сделеам простейшую обертку — для парсинга параметров командной строки.
А третий — обеспечить набор проверочных данных и запустить Unit-test.

Задачу Unit-test — можно выполнить как при помощи Qt:
http://doc.qt.io/qt-5/qttestlib-tutorial1-example.html#writing-a-test
так и применяя тот же boost:
https://www.boost.org/doc/libs/1_45_0/libs/test/doc/html/utf/tutorials.html
https://www.boost.org/doc/libs/1_45_0/libs/test/doc/html/tutorials/intro-in-testing.html
https://www.boost.org/doc/libs/1_45_0/libs/test/doc/html/tutorials/hello-the-testing-world.html

Лично я, здесь бы применил boost — так как Qt уже применялось в процессе создания GUI версии приложения.

LVV>Хочется, чтобы инструментарий просто не позволял такого подхода.


Инструментарий может позволять многое. И должен позволять многое
Постановка ТЗ — должна поставить требуемые рамки.

P.S. Если есть желание сделать задачу ещё разнообразней и интересней —
можно предложить сделать кроссплатформенную реализацию: Linux (Ubuntu; Debian) и Windows
Отредактировано 12.06.2018 14:57 AlexGin . Предыдущая версия . Еще …
Отредактировано 12.06.2018 14:55 AlexGin . Предыдущая версия .
Отредактировано 12.06.2018 14:50 AlexGin . Предыдущая версия .
Отредактировано 12.06.2018 14:49 AlexGin . Предыдущая версия .
Отредактировано 12.06.2018 14:46 AlexGin . Предыдущая версия .
Отредактировано 12.06.2018 14:40 AlexGin . Предыдущая версия .
Отредактировано 12.06.2018 14:37 AlexGin . Предыдущая версия .
Re[2]: Sciter
От: alexku Россия  
Дата: 26.06.18 13:37
Оценка: +3 :)
Здравствуйте, LaptevVV, Вы писали:

VV>Хочется, чтобы инструментарий просто не позволял такого подхода.


Заставь их делать два UI: GUI и CLI, сами отделят.
Re[3]: Sciter
От: std.denis Россия  
Дата: 26.06.18 15:57
Оценка: +2 :)
A>Заставь их делать два UI: GUI и CLI, сами отделят.

ты просто недооцениваешь мощь студенческой копипасты!
Re[4]: Sciter
От: AlexGin Беларусь  
Дата: 27.06.18 08:41
Оценка:
Здравствуйте, std.denis, Вы писали:

A>>Заставь их делать два UI: GUI и CLI, сами отделят.


SD>ты просто недооцениваешь мощь студенческой копипасты!


Я тут уже упоминал выше про такой вариант, при этом я ещё предложил и TDD применить — добавить Unit-тесты к этому хозяйству.

А насчет "студенческой копипасты" — выявить можно — те же статические анализаторы:
cppcheckhttp://cppcheck.sourceforge.net
Linthttps://sourceforge.net/projects/cpplint
Re: Vue.js
От: LaptevVV Россия  
Дата: 27.06.18 15:22
Оценка:
А про это кто чего скажет?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Vue.js
От: novitk США  
Дата: 27.06.18 16:52
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

LVV>А про это кто чего скажет?


Есть миллион реактивных js-фрэймворков, но для их освоение требуется знание кучи всякой требухи, которая ни к архитектуре, ни к плюсам отношения не имеет. Зачем забивать себе и студням этим голову?
Правильное решение тебе уже сказали — заставь их делать CLI в дополнение к гуйне.
Re[3]: Vue.js
От: LaptevVV Россия  
Дата: 27.06.18 17:29
Оценка:
N>Правильное решение тебе уже сказали — заставь их делать CLI в дополнение к гуйне.
Стесняюсь просить: CLI — это что?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Vue.js
От: novitk США  
Дата: 27.06.18 17:48
Оценка: 3 (1)
Здравствуйте, LaptevVV, Вы писали:

N>>Правильное решение тебе уже сказали — заставь их делать CLI в дополнение к гуйне.

LVV>Стесняюсь просить: CLI — это что?
https://en.wikipedia.org/wiki/Command-line_interface
Re[5]: Vue.js
От: LaptevVV Россия  
Дата: 27.06.18 17:49
Оценка:
N>>>Правильное решение тебе уже сказали — заставь их делать CLI в дополнение к гуйне.
LVV>>Стесняюсь просить: CLI — это что?
N>https://en.wikipedia.org/wiki/Command-line_interface
РЖУ над собой ...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Sciter
От: c-smile Канада http://terrainformatica.com
Дата: 27.06.18 22:21
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Нужно заставить их отделять реализацию бизнес-логики от реализации интерфейса.

LVV>Что скажете?

Кстати, а есть ли у вас в бурсе курс технического дизайна для студентов-программеров?

В свете этого вот: http://rsdn.org/forum/flame.comp/7182666.1
Автор: c-smile
Дата: 26.06.18
Re[2]: Vue.js
От: c-smile Канада http://terrainformatica.com
Дата: 27.06.18 22:53
Оценка: 13 (1)
Здравствуйте, LaptevVV, Вы писали:

LVV>А про это кто чего скажет?


Смотря для чего.

Vue и отец ея Angular это декларативный маппинг/биндинг DOM дерева на некую структуру данных (JSON).
Т.е. это можно изучать как пример предельной (ultimate) изоляции данных (model) от представления (view). ( В Sciter кстати есть аналогичный фреймворк — samples/+plus )
Понять особенности построения UI из этих фреймворков — сложно.

Но если говорить про UI если не от сохи а от трактора, то надо смотреть MFC / wxWidgets или тот же QT.
Они все имплементируют изначальный IBM CUA : https://www.amazon.com/Object-Oriented-Interface-Design-Common-Guidelines/dp/1565291700

На самом деле я бы серьезно рекомендовал Sciter — там есть как native API к DOM и событиям так и параллельный механизм в скрипте.
Т.е. можно использовать как в курсе C++ так и в чем-то другом.
Освоив Sciter UI (HTML/CSS/DOM/script/native) можно заниматься как web frontend UI так и native UI.
Re[3]: Vue.js
От: AlexGin Беларусь  
Дата: 28.06.18 06:40
Оценка:
Здравствуйте, c-smile, Вы писали:
...
CS>Но если говорить про UI если не от сохи а от трактора, то надо смотреть MFC / wxWidgets или тот же QT.
CS>Они все имплементируют изначальный IBM CUA : https://www.amazon.com/Object-Oriented-Interface-Design-Common-Guidelines/dp/1565291700
+100500
Только несколько примечаний:
MFC — достаточно старый фреймворк, не думаю что актуален для студентов в 2018
wxWidgets — специфическая штука (на любителя), также актуальность под вопросом
Qt — IMHO самое то, что надо!
Re[2]: Sciter
От: LaptevVV Россия  
Дата: 28.06.18 08:16
Оценка: 42 (1)
CS>Кстати, а есть ли у вас в бурсе курс технического дизайна для студентов-программеров?
CS>В свете этого вот: http://rsdn.org/forum/flame.comp/7182666.1
Автор: c-smile
Дата: 26.06.18

Помнится, у нас был отдельный курс по разработке интерфейсоов.
Там элементы этого давались.
Есть ли сейчас — не в курсе. Давно в учебный план не лазил.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.