SergeJey

 
<<< Назад

Про развитие системы

Заметка о направлениях, в которых система развивается.

В телеграм чате я обещал поделиться своим видением приоритетов развития системы, но начав писать я понял, что будет достаточно объёмный текст и в итоге решил перенести его в блог.

Вот основные приоритеты, как я субъективно их вижу:

  1. надёжность работы системы
  2. скорость работы (скорость обработки событий и выполнения команд)
  3. удобство/простота подключения новых устройств
  4. удобство/красота визуального интерфейса

Именно в таких приоритетах. Немного описания "почему":

1. Надёжность

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

2. Скорость

Скорость это про позитивный или негативный опыт -- если команда выполняется долго, то это напрягает. свет по датчику движения (кнопке, голосовой команде и т.п.) не должен включаться через 3 секунды, а должен сразу. Кроме того, длительный отклик косвенный признак необходимости оптимизации, что влияет и на первый пункт. Но в этом пункте важен компромис, т.к. если малозначительное для пользователя увеличение скорости реакции (например с 0.5 сек до 0.3) ведёт к потери гибкости, ставит под вопрос надёжность или сильно усложняет понимание работы, то такая оптимизация может быть не полезна, а вредна.

3. Подключение новых устройств

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

Во-вторых, в этом же пункте идёт удобство работы инсталляторов, которые настраивают Умный Дом не для себя, а для кого-то. Я не понаслышке знаю каково это, находясь на объекте, заниматься настройкой десятков датчиков или исполнительных контроллеров, поэтому если какой-то функционал может ускорить процесс настройки объекта для быстрого ввода его в эксплуатацию, то имеет смысл его реализовать, ведь час работы над системой может сэкономить десятки и сотни часов тех, кто с ней работает.

4. Красота

Говорите "встречают по одёжке"? Верно, да и "продать" что-то красивое гораздо проще. Но именно визуальная часть быстрее всего теряет свою значимость по мере эксплуатации. Если не брать в расчёт возможность похвастаться перед кем-то своим Умным Домом :) Тем не менее, визуальный аспект достаточно важен и именно в виду важности перечисленных в этом пункте мотивов. В системе множество вариантов создания интерфейсов и постоянно ведутся какие-то доработки и эксперименты, так что вполне вероятно мы увидим прогресс и в этом направлении.

Теперь немного о тех направлениях развития, которые (незаслуженно) "отодвинуты".

Опыт знакомства

Когда кто-то решает, что система достойна того, чтобы потратить на неё время, то весьма важен опыт первоначальной установки и запуска. К сожалению, в текущем виде это скорее отталкивает и надо быть достаточно настойчивым, чтобы начать использовать систему :) Конечно, есть возможность загрузить готовый преднастроенный образ карты памяти для Raspberry Pi, вставить его в "железку" и получить систему, которая хоть и базово, но готова к использованию. Также можно воспользоваться установщиком для Windows (который давно нуждается в обновлении), найти инструкцию для установки через Docker или скрипт установки на Linux, но всё это несколько хаотично и не поддерживается на должном уровне, что печально и явно не способствует расширению сообщества пользователей.

Совместная разработка

MajorDoMo это достаточно большой проект -- тысячи строк кода, множество модулей и плагинов. В такого рода проектах совместная разработка очень важна, но построение процесса такой разработки тоже большая работа. Отсутствие четких соглашений о стиле кода, немалое количество устаревших архитектурных решений и сам язык разработки (PHP) в конце концов больше отталкивает, а не привлекает дополнительных квалифицированных программистов к развитию проекта. Так что не смотря на то, что проект полностью открытый и актуальная версия всегда доступна на GitHub (как ядра, так и большинства модулей), нельзя сказать, что развитие происходит за счёт эффективных совместных усилий.

Вместо итогов

Всё вышеперечисленное не должно восприниматься никак чёткие направления, по которым ведётся активная работа, ни как жалобы на то, что ничего по ним не развивается. Истина где-то посередине -- и работа идёт, и развитие есть, и есть интерес продолжать этим заниматься. Но давайте называть вещи своими именами -- для большинства из нас это хобби, от которого мы должны получать удовольствие, а не страдать из-за того, что на него нет времени из-за работы или забот в личной жизни. Мне нравится этот проект и за много лет он мне не надоел, но чем дальше, тем меньше я к нему отношусь как к тому, что я "обязан" делать, поэтому претензии о том, что что-то не сделано, хоть и "должно" быть - не по адресу. Я с уважением отношусь к тому, как другие распоряжаются своим временем и благодарен тем, кто готов потратить его часть в моих интересах - в этом я очень надеюсь на взаимность :)

Обсуждение (0) (19)

Смотрите так же:
19.11.2022 Хранитель экрана для Android TV
28.08.2022 Идеи автоматизации от Рида (Smart Home Solver)
21.08.2022 Свой контент в админке
18.08.2022 Отправка изображения через say
06.08.2022 Как использовать мастер-контроль
02.07.2021 Привод на окно Drivent -- интеграция и автоматизация
01.07.2021 Удобная работа с изображениями в блогах
28.12.2020 Вывод уведомлений системы на AnroidTV
20.12.2017 Первая запись

Минск, Беларусь

На форуме: sergejey

Веб-сайт:
https://connect.smartliving.ru/