Суперкомбайн против комбайнов и утилит
23.01.2022
|
velkin |
Комбайн
Комбайн это приложение совмещающее в себе множество функций. Обычно говорят, что такой подход принят в Windows. Но это скорее из-за развития графического интерфейса пользователя или как ещё можно сказать десктопа.
Утилита
Утилита это небольшая по функциональности полезная программа. Такие программы лежат в основе GNU/Linux. Конечно, современный GNU/Linux благодаря десктопам KDE, Gnome и прочим уже не тот, что раньше. В их основе так же лежат графические интерфейсы пользователя.
Суперкомбайн
Но давайте возьмём множество комбайнов и утилит и объединим их в суперкомбайн. Отличие от комбайна в том, что функционал может быть никак не связан. Отличие от нескольких приложений в том, что в данном случае оно одно, то есть один исполняемый файл.
Суперкомбайн может объединять:
1) Калькулятор
2) Менеджер проекта
3) Редактор текста
4) Просмотр документов
5) Редактирование изображений
6) Видео проигрыватель
7) Файловый менеджер
И многое другое
Для удобства можно внедрить высокую кастомизируемость элементов графического интерфейса и прочих настроек. Причём интерфейс может быть так же консольным для управления из командной строки, или скриптовым для создания дополнений.
Откуда идея
Идея мне пришла в голову от того, что есть множество разных приложений на одну тему, но функционал различается. Фактически используя подходящую архитектуру приложения можно было бы его накапливать.
С другой стороны нет возможности управлять детальными настройками функционала. Автор решает, что этот параметр пользователю менять ни к чему, или просто не думает о том, чтобы передавать управление.
Ещё одна мысль подтолкнувшая меня к размышлению над суперкомбайном в том, что есть множество не только однородных, но и разнородных приложений не слишком то и полезных, чтобы за них платить.
Опять же простое приложение скорее всего гораздо меньше фреймворка, который оно использует. Наблюдается некий дисбаланс, библиотеки загружены, но почти не используются.
Нужно ли?
Как показывает тема "Каких программ вам не хватает?" не всё ещё реализовано до нас, есть куда расти. Хотя идея суперкомбайна не в том, чтобы создавать систему программирования, напротив это должна быть простая в использовании многофункциональная программа.
23.01.2022 11 комментариев |
V>Комбайн,Утилита,Суперкомбайн
Вопрос то в чем?
Суперкомбайны обычно реализуют N user story, занимают убер дохрена и тяжелы с поддержке.
А комбинирование утилит N1*N2*N3*...*Nm вариантов использования, проще в отладке и разработке.
ps: Продолжайте наблюдение
V>>Комбайн,Утилита,Суперкомбайн
_>Вопрос то в чем?
Если говорить о вопросах.
Функционал обычных приложений разделён запуском нескольких исполняемых файлов, но что насчёт суперкомбайна? Нужно ли делать список подприложений внутри приложения или всё же объединять функционал без чётких границ?
Многие проекты идут по пути встраивания функционала. Это похоже на нечто среднее между приведёнными выше вариантами. Даже в обычном комбайне, где границы функционалов, где связь между ними?
Или другое, обычный комбайн наращивается теми же плагинами, так как ему дают доступ к основному внутреннему функционалу. Но в итоге, бесконтрольный рост пунктов меню, которые не рассчитаны на нужные объёмы и невозможность найти нужный функционал, так как по нему нет глобальной поисковой системы. Термин суперкомбайн введён как раз из-за таких отличий.
Ещё вопрос во взаимодействии пользователей и суперкомбайна. Обычно функционал как-то и где-то разбросан по окнам. Взять ту же кнопку, нажимая на неё какие параметры использует алгоритм её выполняющий и как долго выполняет операцию.
1) Удобная система поиска функционала для запуска пользователя.
2) Показ порядка исполнения функционала с точки зрения пользователей.
3) Показ охвата функционала при его запуске.
Общий вопрос мог бы быть про архитектуру подобного суперкомбайна. Обычно на десктопах люди лепят графический интерфейс как это было принято давным давно и больше об этом не думают. А ведь при возрастании функционала он попросту неудобен.
Помимо десктопов есть ещё мобильные, и там нужно придумывать нечто иное, хотя люди тоже не заморачиваются. У яблока так и вовсе считается, что если сделал интерфейс в стиле айфона, то типа всё сразу стало круто. А то что это всего лишь стиль оформления контролов или виджетов и не улучшает удобство использования никто не думает.
Опять же под суперкомбайном не имеются в виду плагины. Они могут быть, а могут не быть. Лично я за то, чтобы даже плагины делал разработчик приложения, а не давал это на откуп другим. Тогда будет без разницы, сделал ли он это плагином или как основной функционал. Здесь скорее будет вопрос линковки в случае компилируемых плагинов.
Или ещё вопрос на тему как другие представляют суперкомбайн на основе имеющегося описания включая не только графические интерфейсы пользователя, но и архитектуру самого приложения. Так то я думаю есть что обсудить в этой идее. Но если кто-то прочтёт и подумает, ну суперкомбайн, ну окей и пойдёт дальше, то и ладно, значит тема этому человеку неинтересна.
Вопрос в том куда ты собираешься это продавать. Разные менталитеты.
В Европе и Америке любят минимализм. Отсюда и популярность продуктов Эппл.
В Китае любят кучу всего вместе, причем чтоб эта куча еще и на экране сразу была видно. Куча кнопок, надписей, списков, переключателей, тулбаров. И все лезет изо всех щелей. При нажатии на любую кнопку вываливается еще 500 окон настроек. Вот это они любят. Видимо связано с иероглифическим письмом. Вынуждены разглядывать любую мелкую закорючку. Короче — им это как раз и нужно. Глянь на азиатские игры. Это ж просто адовый ад какой-то- разбираться во всем этом. А для них это — игры. То есть они отдыхают в этом.
H>В Европе и Америке любят минимализм. Отсюда и популярность продуктов Эппл.
А что такое минимализм яблочников.
1) Если сделаешь в калькуляторе графическую кнопку, с градиентами, бликами, объёмом, то получится крутая скиновая кнопка.
2) А если просто равномерно закрашенную область, то вот тебе и минимализм яблочников.
Я бы сказал это не минимализм, а примитивизм.
H>В Китае любят кучу всего вместе, причем чтоб эта куча еще и на экране сразу была видно. Куча кнопок, надписей, списков, переключателей, тулбаров.
Если язык позволяет, то почему бы и нет. Но это уже относится к комбинированию виджетов по слоям, окнам и прочему.
Но это мы всё обсуждаем кастомизируемость. Я о том и написал в топике, что на одном функционале можно сделать по-разному выглядящий графический интерфейс. То есть не будет конфликтов между различными группами пользователей.
Это напоминает сборки Total Commander в который напихано куча утилит и который превращается в такой суперкомбайн.
QC>Это напоминает сборки Total Commander в который напихано куча утилит и который превращается в такой суперкомбайн.
Вот только там система изначально не была рассчитана на суперкомбайн, как и много где ещё. Тот же Blender без плагинов точно так же нагромождение некоего функционала, хотя казалось бы уж его то можно было продумать.
Я так и не увидел самого главного: в чём ценность этого суперкомбайна по сравнению с набором утилит?
V>Опять же простое приложение скорее всего гораздо меньше фреймворка, который оно использует. Наблюдается некий дисбаланс, библиотеки загружены, но почти не используются.
Поставил один раз suap apt install qt5, оно во всех приложениях и используется. Ну или одного vcredist хватит на всех.
V>Как показывает тема "Каких программ вам не хватает?" не всё ещё реализовано до нас, есть куда расти. Хотя идея суперкомбайна не в том, чтобы создавать систему программирования, напротив это должна быть простая в использовании многофункциональная программа.
Во всех best practices для стартапов пишут, что "главное — фокус". Ни в коем случае нельзя распыляться и не то чтобы пилить левый функционал, а даже расширять текущий не надо. Только то, что решает конкретную проблему пользователей, ни шагу в сторону. Потому что иначе у тебя получится не штука, решающая их проблемы лучше всех, а набор среднего качества херовин, которые тянутся друг за другом. Сидишь ты в интернете, захотел что-то посчитать и запускаешь не просто калькулятор, файловый менеджер, редактор текста, менеджер проектов и т.д.
N>Во всех best practices для стартапов пишут, что "главное — фокус". Ни в коем случае нельзя распыляться и не то чтобы пилить левый функционал, а даже расширять текущий не надо.
Возьмём для примера программы, сколько дней до рождества, сколько дней до дня рождения, сколько дней до зарплаты и прочие сколько дней.
Благодаря тому, что эти приложения делали "фокус" на конкретику, а не универсальность, во времена расцвета мобильных приложений они распространились и даже зарабатывали.
Пользователям было удобно ткнуть на запуск и сразу получить результат. Но их время ушло, и даже универсальный таймер с календарём это не то, что будет устанавливать нормальный пользователь.
А недавно я рассматривал как кануло в лету приложение по расчёту расходов на автомобиль. Следующий логичный этап это расчёт общих расходов, но даже таких приложений как грязи.
Взять тот же фотошоп, с одной стороны там есть интерфейс к которому люди привыкли, с другой минимально накопленный функционал. Чтобы конкурировать на рынке приложений нужен так же объём функционала.
Зачем ставить несколько приложений, если потребность может удовлетворить одно. Суперкомбайн в данном случае это некая метафора, что можно переходить от небольших утилит к комбайнам, большим комбайнам и очень большим комбайнам.
Опять же для примера, программа может прекрасно решать какие-то задачи по редактированию файлов, текстовых, изображений, аудио. И вот нам нужно сделать массовое редактирование, типа batch, но это не всегда возможно.
Как определить, когда функционал больше добавлять не нужно. Да понятно, что есть всякие "умные" изречения, что совершенство это не когда нечего добавить, а когда нечего убрать.
Но добавить всегда есть что. Когда я не нахожу команду batch, что я делаю. Я ищу можно ли сделать это из консоли, чтобы написать batch скрипт. Это офигеть как "удобно", особенно то, что консольного интерфейса я тоже в большинстве случаев не нахожу.
Причём по мере накопления функционала он может из количества эволюционировать в качество.
По этой теме пока думаю над такими идеями.
1) Что если экран у приложения может меняться от маленького как умные часы в том числе и физически до большого 8K на всю стену.
2) Что если функций может быть несколько, а может и миллионы.
Возможно дело в изначально обозначенных пределах, которые ограничивают мышление программистов узкими рамками. Причём это не значит, что я думаю о каких-то плагинах или ещё чём-то распределённом.
Это может быть самая обычная монолитная архитектура без каких-либо продвинутых шаблонов проектирования вроде корпоративных или микросервисных.
Здесь смысл в другом, нажать на кнопку "выполнить", получить результат. При этом программист программирует, а пользователи только нажимают кнопки, а не извращаются в скриптописании.
А если разделить функционал на два или более приложения, то не сможем создать готовые решения, которые используют и то, и другое.
V>Как показывает тема "Каких программ вам не хватает?" не всё ещё реализовано до нас, есть куда расти. Хотя идея суперкомбайна не в том, чтобы создавать систему программирования, напротив это должна быть простая в использовании многофункциональная программа.
Ценность "суперкомбайна" не в функционале, если пользователю нужно решить конкретную задачу, ему лучше найти и изучить конкретную программу — это проще, быстрее и гибче.
Такие большие системы покупают и используют не ради фич, а ради процессов — чтобы люди не решали свои задачи как они хотят, а чтобы заставить их решать свои задачи правильно.