Thursday, October 9, 2014

Принцип Импровизаци

(обновлено 26.10.2014)

"Берите себе столько суверенитета, сколько сможете унести."
(ЕБН)


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

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




Маленькие изображения служат ориентирами на большой "высоте", а зеленым цветом выделены иконы в которых происходит формирование реального результата. Эти два отклонения от спецификации языка приводят к удобству восприятия.




Вид с высоты "птичьего полёта".



Импровизация - оставляет нам свободу самовыражения и позволяет соблюдать принцип Красоты в соответствии с нашими внутренними представлениями, но она не должна нарушать строгие правила спецификаций.

Ещё пример следования Принципу Импровизации:

Придумал обозначать иконки, которые в разработке, полуцветом. Кажется это очень здорово.



Ещё пример импровизации. Легко и просто можно на время исключить икону из рабочего процесса, например так: Простым смещением и переключением выхода мы на время отключили всю проверку типа.


можно было бы отключить проверку везде

Экран. 

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

Например, здесь выделены две области из разных классов относящиеся к реверскодингу.


для сравнения та же область кодограммы без Экранов. Картинка гораздо скучнее и менее читаема.


А если ещё взять за правило подписывать эти экранные области, указывая тем самым функциональность, к которой они относятся, так и вовсе полезная штука выходит.




Обработка исключений(Exceptions). 

Пока обозначил обработку исключений как на рисунке внизу. 



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


26.10.2014

Еще одна "фишка" - маленький рисунок в кодограмме ДраконГена, помогает быстро понять какую часть силуэта обрабатывает данная часть кода.


  




No comments:

Post a Comment