Начал разбираться в LVOOP, нужны советы

Общие принципы, проектирование, модуляризация, темплейты и шаблоны
Ответить
AlexanderKonoval
developer
developer
Сообщения: 257
Зарегистрирован: 03 янв 2014, 19:37
Версия LabVIEW: 2016
Откуда: Украина, Киев
Контактная информация:

Начал разбираться в LVOOP, нужны советы

Сообщение AlexanderKonoval »

Здравствуйте, коллеги!

В ходе развития проекта своего пришёл к тому, что у меня куча параллельных циклов, нотифьеров, переменных и так далее. При этом, должна быть возможность включать/выключать отдельный функционал, поддержка оборудования разных производителей (функционал один, но разные протоколы) с возможностью замены "на лету". В итоге, отладка кода, добавление функционала и так далее происходит всё пробематичнее. Решил менять общую структуру приложения, пока не поздно.
Уже начал вырисовывать схему нескольких машин состояний, с контроллером общего состояния, :vi: и так далее. Понемногу начал унывать от предстоящего обьёма работы.

А потом попались на глаза темы по LVOOP. И стал закономерный вопрос, как я могу перестроить свое приложение при помощи этого инструментария.

Первое, что бросилось в глаза - веб-сервисы это те же классы лабвью. а с первыми у меня есть некоторый опыт работы. И первый же вопрос, который возник - веб-сервис - это живущий своей жизнью функционал, который запускается вместе с приложением. Как в этом плане обстоят дела у "обычного" класса? надо ли его как-то отдельно запускать?
Второй вопрос - в веб-сервисах есть такое понятие, как StartUp VI's. Там можно организовать цикл, который будет работать постоянно, как только будет загружен сервис. Что выполняет в "обычных" классах такую функцию? Обычный :vi: ? Как можно подобного рода :vi: включать и отключать - через классический функционал :vi: -сервера, или есть какой-то отдельный функционал?

Ну и если есть какие-то советы - с радостью прислушаюсь. Также интересует, не появилось ли толковых русскоязычных источников с "разжевыванием" LVOOP?

Спасибо!
колдооооовствооооо! (С)
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Начал разбираться в LVOOP, нужны советы

Сообщение Artem.spb »

1) смотрел классы бегло, так что на авторитеность в данном вопросе не претендую, а скорее даже сам с интересом почитаю что более опытные напишут
2) смотрел много (6-7) лет назад, может с тех пор ситуация улучшилась.

Так вот, в моём представлении LVOOP, это никакой не OOP, а завуалированные кластеры.
Т.е. создаю я класс, а потом в какой-то момент проводник разветвляю, и обнаруживаю, что изменения данных в одном проводнике не влияют на данные во втором, что оч странно с точки зрения класса.
Это, конечно, лечится очередями, но зачем такие пляски с бубном?
AlexanderKonoval писал(а):Уже начал вырисовывать схему нескольких машин состояний, с контроллером общего состояния, :vi: и так далее. Понемногу начал унывать от предстоящего обьёма работы.
потому что сразу надо делать по уму :)

Класс это всего лишь данные, которые где-то хранятся. Функции класса, вызываемые в процессе исполнения кода тут же и исполняются, я не оч понимаю, что там долгжно "крутиться" параллельно всему коду с самого начала.

А управление запуском-остановкой отдельных :vi: , да, через viserver,
AlexanderKonoval
developer
developer
Сообщения: 257
Зарегистрирован: 03 янв 2014, 19:37
Версия LabVIEW: 2016
Откуда: Украина, Киев
Контактная информация:

Re: Начал разбираться в LVOOP, нужны советы

Сообщение AlexanderKonoval »

Artem.spb, чтобы сразу по уму делать, навыков не было. я вообще по образованию экономист. :labview: - первый язык программирования, которым занимался. и учился на ходу, прямо в процессе решения поставленной задачи. ПО сейчас работает и хорошо, да вот только хочется сделать лучше. да и гибкости ПО хотелось бы добавить. и сейчас как раз навыков достаточно, чтобы сделать лучше. хочу просто понять, делать привычно для себя, или стоит перейти на LVOOP.

Касательно завуалированных кластеров - так-то оно так. почти. только вот всё оживает при помощи Actor'ов. как - пока не понял. слишком всё непривычно и сперва непонятно, но за день уже более-менее представление начало формироваться.
колдооооовствооооо! (С)
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Начал разбираться в LVOOP, нужны советы

Сообщение Kosist »

AlexanderKonoval писал(а):
Касательно завуалированных кластеров - так-то оно так. почти. только вот всё оживает при помощи Actor'ов. как - пока не понял. слишком всё непривычно и сперва непонятно, но за день уже более-менее представление начало формироваться.

Actor - это, если я не ошибаюсь, относится к архитектуре Actor Framework, и это совсем другая история. Actor Framework сделан на основе концепций OOP. Но использование OOP не обязательно подразумевает под собой использование Actor Framework.
Мы делили апельсин - много наших полегло...
Aleksandr

Gold
user
user
Сообщения: 97
Зарегистрирован: 21 июн 2011, 15:05
Награды: 1
Версия LabVIEW: 2009-2017
Откуда: Novosibirsk
Контактная информация:

Re: Начал разбираться в LVOOP, нужны советы

Сообщение Aleksandr »

Artem.spb писал(а):Так вот, в моём представлении LVOOP, это никакой не OOP, а завуалированные кластеры.
Простой такой кластер с инкапсуляцией, наследованием и полиморфизмом.
Artem.spb писал(а): Т.е. создаю я класс, а потом в какой-то момент проводник разветвляю, и обнаруживаю, что изменения данных в одном проводнике не влияют на данные во втором
При разветвлении создается копия объекта (не обязательно класса). Если Вы хотите чтобы при разветвлении проводников можно было менять данные класса в разных местах, рекомендую ознакомится с G# и/или GOOP (тем более что последний из платного стал бесплатным) или просто использовать DVR.
Uniscan Research
Ответить

Вернуться в «Модели программирования»