Геннадий Тышов писал(а):
>>1) Очень не хватает операции "вопрос: перевернуть ветки":
Выделить икону "Ветка", вызвать контекстное меню, выбрать пункт "Операция">"Ветка:<-->ветка справа". соседние ветки будут переставлены. Ограничение, нельзя переставить 1-ю, последнюю ветки.
Хмм. Cкачивал "дракон" по ссылке из "DRAKON от 03.02.2009", после запуска пишет "от 01.02.2009". В меню операция нет варианта "ветка: ветка справа"... Есть "рокировка выходов", но что она делает пока не удалось постичь.
Геннадий Тышов писал(а):
>>2) Возможность "свернуть" блок.
В иконы помещать укрупненные проблемные действия, а не размещать операторы программного кода.
В теории это так. Но у любой теории есть область применимости
Находясь в процессе разработки схемы, на стадии, когда финальное решение ещё не осмысленно до конца, возможность свернуть блок полезна.
Да, можно блок вырезать и поместить в отдельную схему, но
* на этом этапе легко ошибиться с выделением блока, в итоге придётся много действий тратить на то, чтобы вернуть всё на свои места (покрайней мере пока в системе нет автоматических рефакторингов
).
* вынос блока из области видимости не позволит увидеть "решение целиком". Несколько ошибок я нашёл именно из-за того, что все ветвления были перед глазами и "разпознаватель образов" зашитый в мозг очень быстро нашёл не стыковки. Если бы содержимое веток развилок было вынесено в отдельные схемы - этого бы не случилось.
* при первом ознакомлении со схемой или работе со сложной схемой многие детали могут и должны быть исключены из визуального представления по моему выбору (в зависимости от аспекта, который я пытаюсь исследовать в данный момент), т.к. затрудняют общее восприятие.
Геннадий Тышов писал(а):
>>4) Очень, даже ОЧЕНЬ, не хватает навигаци при помощи клавиатуры.
При разработке был принят принцип: максимально все выполнять мышкой, клавиатуру использовать в основном для ввода текста.
Отсюда, нет комбинаций клавиш, нет необходимости их запоминать (забивать голову).
Абсолютно согласен, что вся функциональность должна быть доступна через кликанье мышкой.
Другое дело, что богатый по функциональности UI практически не возможно сделать "производительным" используя для взаимодействия с пользователем только мышку.
Безусловно, не должно быть комбинации клавиш на каждое действие, которое может выполнить система.
НО - использование _небольшого_ количества шоткатов с чётко определённой семантикой и стрелок позволяет творить чудеса.
Представте текстовый редактор. Неужели ctrl+C, ctrl-V и ctrl-X чем-то забивает голову? Голову куда больше забёт необходимость управления мышкой, чтобы а) залезть в меню, б) найти среди 25 пунктов "копирование", в) прицелиться в него мышкой, г) повторить всю процедуру, чтобы вставить скопированное в другое место.
Это отвлекает пользователя от решения _его_ задачи и заставляет решать задачи, которые ставит _среда_, что в итоге снижает эффективность работы пользователя.
Попробую ещё раз сформулировать, для чего нужны шоткаты о которых я писал раньше.
1) Стерлки - тут, как мне кажется, всё предельно чётко, т.к. на интуитивном уровне не вызвает проблем понять отношения выше, ниже, левее, правее в контексте выбранной иконы или точки вставки (этому способствует организации дракон схем). (С клавишей delete тоже вроде как всё прозрачно).
2) alt-ins - семантика: вставка элемента допустимого в данной точке. Фактически, пользователь спрашивает у системы: "что я могу сюда вставить?", вместо: "какие элементы для вставки существуют в этой системе?". Ответ на второй вопрос содержит много лишней информации, особенно если при этом сообщаяется об операциях, со вставкой никак не связанных (камушек в огород больших контекстных меню с больше чем 5-7 вариантами выбора). В качестве аналогии автокомплит в IDE. Раньше автокамплит показывал ВСЕ возможные методы в системе. Но накой они нужны, если реально у объекта "А" есть только метод "foo"? На смену пришёл "интеллектуальный" автокомплит: показывается только те методы, которые могут быть вызваны у данного объекта. Вопрос "что я могу сюда вставить?" - универсальный, это значит, что он может быть задан в любой точки системы и на него система сможет дать разумный ответ, который, естественно, будет зависеть от контекста.
3) alt-enter -семантика: "как я могу изменить данный объект?" (объект находящийся в фокусе внимания пользователя). Тоже универсальный вопрос, который может быть задан относительно любого объекта системы.
Существенно отличается от вопроса "какие изменения я могу соврешать с объектами системы?". Этот вопрос интересен только на этапе ознакомления с системой, в остальных случаях пользователю придётся фильтровать кучу "мусора", прежде чем он найдёт то, что ему дествительно нужно.
Опять пример из мира IDE. Допустим у нас есть if(условие) {а} else {b} блок. Я хочу инвертировать условие. Это можно сделать "руками", но тогда придётся потратить значительное время на операции с текстом и на проверку "не наделал ли я ошибок". Альтернатива - навели курсор на слово "if", alt-enter, выбрали "Invert If condition" и получили гарантированное сохранение семантики кода. Сказка.
На этой странице
http://www.jetbrains.com/idea/documenta ... ntions.jsp (в частности в разделе code flow) есть много подобных примеров.
Я понимаю, что моих слов недостаточно, чтобы доказать, что без alt-ins и alt-enter жить невозможно, но попытка -непытка
Наверное, вам нужно попробовать попользоваться этими фичами на практике или дойти до уровня когда количество пунктов в "главном" меню "дракона" увеличится хотя бы раза в 2, чтобы согласиться со мной
Alexey_Donskoy писал(а):
Раз уж упомянули Раскина, то меню переменной структуры (всё "серое" отсутствует) есть гнусный модальный диалог, в котором пользователю каждый раз приходится заново читать, разбираться и ориентироваться в текущем контексте.
Я вроде и не предлагал скрывать в контекстном меню всё серое... Меню пусть остаётся как есть
alt-ins, alt-enter - показывают не модальный диалог, а выбор из небольшого числа пунктов, привязаный (посмыслу и визуально) к объекту находящемуся в фокусе внимания и являющийся ответом на чёткий вопрос поставленный системе. Естественно ответ нужно "прочитать", но это сделать существенно проще, чем искать тот же ответ в море "бесполезной" информации. Отдалённая аналогия: вас же не расстраивает, что контекстное меню "файла" (в windows explorer) не содержит "серых" опций применимых только к "папкам" и наоборот.
Почему же тогда наличие серых пунктов применимых только для "действия" или какого-нибудь другого блока в контекстном меню для "развилки" это большой плюс?