Здравствуйте. Я прототипирую в Axure. Портал крупный и сложный. Внедряю в прототип бэм.
Сейчас возникла задача описать прототип многоуровневым вложенным списком. Примерно так: Раздел 1 -Шапка --лого --навигация -блок1 --эл1 --эл2
То есть, это тот же самый прототип, просто описан он словами. Начал майндмэпить в xmind. Столкнулся с банальной проблемой - если меняется блок, то приходится в ручную его править везде, где он есть. Решения два: где-нибудь на холсте описать блок (перечислив его элементы) и либо 1) от нужных элементов пустить стрелочки в те страницы, где они встречаются, 2) на страницах просто указывать название блока и перечислить только нужные элементы этого блока тупо их порядковыми номерами. Начал работать по второму решению. Перечислять элементы блока необходимо, потому что, допустим, один и тот же блок выглядит по разному при разных правах доступа. Например, у админа портала подгрузятся кнопки, позволяющие редактировать элементы. Про модификаторы вообще молчу - их несколько и у блока, и у элементов.
И опять столкнулся с банальной проблемой. Указав на страницах чисто блоки с номерами их элементов, мне все равно приходилось всё и везде править в ручную когда менялась нумерация или названия блоков.
Теперь, что мне нужно (обязательно первое условие, последующие были бы просто очень приятным дополнением): 1) возможность добавления мастер шаблона для блоков. То есть, прописал один раз блок, а потом расклонировал его по разделам карты ума - и клоны автоматически апдейтятся при изменении мастер-шаблона. 2) возможность быстро менять список нужных элементов в клонах. Хотя бы галками, или галками в выпадающем списке. 3) возможность сопоставить словесной карте ума графические эквиваленты, чтобы потом можно было нажать на кнопку "сгенерировать" и вуаля - мы имеем наглядный графический прототип портала.
Есть ли такие инструменты? Или придётся разрабатывать свой инструмент (думаю, с помощью простого html и работой с файлами, а не программой вроде xmind это вполне реально). Если да, то как лучше создать такой инструмент (или алгоритм действий), учитывая что я дизайнер и программировать не умею (разбираюсь только в html)
Спасибо!
к сожалению, ничего готового не знаю, но это, конечно, не значит, что его точно нет.
предложу странное — использовать для описания BEMJSON.
например, если взять пример из поста
получится:
здесь явно отражена структура. переименование сущностей в таком формате можно делать простой автозаменой. из такой структуры можно автоматически получить HTML. разные состояния одних и тех же блоков можно выражать модификаторами.
если получается слишком развесисто для использования внутри майдмепа, можно посмотреть на yaml
tadatuta Да я вот тоже подумываю всё-таки слезть с высокоуровневого прототипирования. Сейчас еще помимо прототипирования стоит вопрос об описании интерфейса в понятном для менеджера виде, чтобы он мог делать пометочки "сделано" или "не сделано" и прикидывать сроки работ.
За советы спасибо, на бэм-тулзы я обязательно обращу внимание, а пока в xmind действую по следующему алгоритму (возможно кому-то пригодится)
1) ненумерованным и не особо упорядоченным сплошным одноуровневым списком перечисляю все мельчайшие элементы из всех разделов портала - настолько мельчайшие, что дальше дробить их может только программист наверное (например элементы дата начала события и длительность события в днях)
2) описываю все возможные операции которые могут совершать какие-либо пользователи над теми или иными элементами из п.1 (например редактирование, дрэг-н-дроп, удаление, добавление), пытаясь объединить по сути одинаковые операции в одну (например добавление=создание=приглашение) - всё тоже одноуровневым списокм
3) из элементов начинаю строить мелкие блоки, например блок "календарный промежуток события": от [дата начала] до [дата начала + длительность] = от 1.09.2014 до 7.09.2014. Потом из элементов и мелких блоков строю более крупные блоки, но они получаются очень простые из-за обилия комбинаций элементов в мелких блоках.
4) п.3 и 4 постоянно чехардят. Строю сраницы с помощью блоков, или сразу из элементов, потом объединяя их в блоки и апдейтю список для п.3. В страницах напротив элементов и блоков я указываю на что они ссылаются и какие операции над ними может совершить пользователь. Выглядит это так: [блок "дата начала" / операция "редактирование"]
в конечном итоге у нас получается страница с одноуровнем списком блоков и элементов - я специально слежу за тем, чтобы ни в одном из списков из пп 1, 2, 3, 4 не было второго уровня вложенности. Списки получаются очень легкие для восприятия.
И еще один принцип - если комбинация элементов встречается где-либо более одного раза - выношу ее в отдельный блок. Это позволяет в последствии апдейтить список блоков не редактируя конечные страницы.