Стандарт оформления кода обычно принимается и используется некоторой группой разработчиков программного обеспечения с целью единообразного оформления совместно используемого кода. Такой стандарт сильно зависит от используемого языка программирования. Например, стандарт оформления кода для языка Си будет серьёзно отличаться от стандарта для языка BASIC, рассмотрим стандарт оформления схем в HiAsm. Данный стандарт поможет вам сделать ваши схемы более понятными для себя и для других пользователей.
1. Размещайте компоненты и соединительные линии так, чтобы они были видны на всей своей длине, не заходили под компоненты, минимально пересекались.
[подсказка] При пересечениях можно использовать изменение цвета связей или разрывы.
Add(Button,15355274,70,287)
{
Left=180
Top=140
link(onClick,12607589:doEvent1,[])
}
Add(Hub,12607589,126,287)
{
OutCount=4
link(onEvent1,12247538:doValue,[(158,293)(158,300)])
link(onEvent2,5143648:doValue,[(172,300)(172,314)])
link(onEvent3,791462:doValue,[])
link(onEvent4,330222:doValue,[(147,314)(147,293)])
}
Add(Memory,330222,154,287)
{
}
Add(Memory,12247538,175,294)
{
}
Add(Memory,791462,189,301)
{
}
Add(Memory,5143648,203,308)
{
}
Add(Button,7571719,70,77)
{
Left=180
Top=140
link(onClick,1039708:doEvent1,[])
}
Add(Hub,1039708,126,77)
{
OutCount=4
link(onEvent1,736362:doValue,[])
link(onEvent2,5260965:doValue,[])
link(onEvent3,4994190:doValue,[])
link(onEvent4,13799406:doValue,[])
}
Add(Memory,736362,287,77)
{
}
Add(Memory,5260965,245,84)
{
}
Add(Memory,4994190,203,91)
{
}
Add(Memory,13799406,161,98)
{
}
Add(Button,14235123,70,168)
{
Left=180
Top=140
link(onClick,2315711:doEvent1,[])
}
Add(Hub,2315711,126,168)
{
OutCount=4
link(onEvent1,6499647:doValue,[])
link(onEvent2,15240531:doValue,[])
link(onEvent3,7770779:doValue,[])
link(onEvent4,2225530:doValue,[])
}
Add(Memory,6499647,154,168)
{
}
Add(Memory,15240531,196,175)
{
}
Add(Memory,7770779,238,182)
{
}
Add(Memory,2225530,280,189)
{
}
Add(InfoTip,15801878,63,259)
{
Info=#13:Не правильно.|
Font=[MS Sans Serif,8,0,255,1]
Width=267
Height=88
}
Add(InfoTip,7806071,63,56)
{
Info=#10:Правильно.|
Font=[MS Sans Serif,8,0,32768,1]
Width=267
Height=81
}
Add(InfoTip,9397504,63,154)
{
Info=#29:Правильно для данного случая.|
Font=[MS Sans Serif,8,0,32896,1]
Width=267
Height=88
}
Add(InfoTip,16672880,63,364)
{
Info=#13:Не правильно.|
Font=[MS Sans Serif,8,0,255,1]
Width=267
Height=109
}
Add(StrList,3305058,154,399)
{
Point(onGetIndex)
Point(onGetString)
}
Add(Button,6354273,70,399)
{
Left=180
Top=140
link(onClick,8697520:doEvent1,[])
}
Add(Hub,8697520,126,399)
{
OutCount=4
link(onEvent1,3305058:doAdd,[])
link(onEvent2,14541304:doValue,[])
link(onEvent3,6132348:doValue,[])
link(onEvent4,2707492:doValue,[])
}
Add(Memory,14541304,203,406)
{
}
Add(Memory,6132348,252,413)
{
}
Add(Memory,2707492,294,420)
{
}
Также можно задействовать глобальные переменные(минимально достаточное количество).
[заметка] Не желательно использовать более 5 разрывов в одном контейнере.
[подсказка] Не забывайте давать имена глобальным переменным и разрывам в соотвествии с их ролью в схеме.
3. В большихзапутаных схемах объединяйте группы элементов в блоки (с помощью мультиэлементов) в зависимости от функций данной группы.
[подсказка] Удобно использование "вывески" вокруг мультиэлемента с указанием нго функций.
Add(MultiElement,8433487,392,245)
{
}
BEGIN_SDK
Add(EditMulti,12952407,21,21)
{
}
END_SDK
Add(MultiElement,6198815,392,322)
{
@Hint=#11:Я-контейнер|
}
BEGIN_SDK
Add(EditMulti,14179849,21,21)
{
}
END_SDK
Add(MultiElement,3900317,392,406)
{
}
BEGIN_SDK
Add(EditMulti,2131665,21,21)
{
}
END_SDK
Add(InfoTip,9019020,511,245)
{
Info=#12:Правильно ;)|
Font=[MS Sans Serif,8,0,32768,1]
Width=99
Height=18
}
Add(InfoTip,4294199,511,322)
{
Info=#28:(см комментарий на мультике)|31:Правильно, но менее визуально :(|
Font=[MS Sans Serif,8,0,32896,1]
Transparent=1
Width=176
Height=39
}
Add(InfoTip,6863599,511,406)
{
Info=#15:Не правильно :(|
Font=[MS Sans Serif,8,0,255,1]
Transparent=1
Width=92
Height=18
}
Add(InfoTip,7272802,364,224)
{
Info=#13:Я - контейнер|
Width=92
Height=60
}
5. Не разбрасывайте связаные элементы на большие расстояния.
Варианты построения элементов:
Add(Button,14140950,469,98)
{
Left=100
Top=5
Caption=""
link(onClick,220922:doEvent3,[(737,104)(737,237)])
}
Add(Button,13221010,469,140)
{
Left=35
Top=5
Caption=""
Point(doEnabled)
link(onClick,7351926:doWork2,[])
}
Add(HubEx,7351926,560,133)
{
Angle=3
link(onEvent,220922:doEvent2,[(564,129)(768,129)(768,230)])
}
Add(Hub,3928711,728,217)
{
link(onEvent1,7351926:doWork3,[(754,223)(754,176)(564,176)])
link(onEvent2,564027:doEvent1,[(833,230)(833,531)])
}
Add(Hub,774450,553,301)
{
link(onEvent1,3928711:doEvent1,[(747,307)(747,244)(716,244)(716,223)])
link(onEvent2,475750:doEvent1,[(579,314)(579,268)(471,268)(471,202)])
}
Add(Hub,11257150,679,336)
{
InCount=2
link(onEvent1,774450:doEvent1,[(705,342)(705,324)(541,324)(541,307)])
link(onEvent2,220922:doEvent1,[(823,349)(823,223)])
}
Add(Hub,220922,1057,217)
{
InCount=3
}
Add(Hub,564027,924,525)
{
InCount=2
}
Add(Hub,475750,476,196)
{
link(onEvent1,11257150:doEvent2,[(588,202)(588,349)])
link(onEvent2,11257150:doEvent1,[(588,209)(588,342)])
}
Add(Button,7370672,217,119)
{
Left=100
Top=5
Caption=""
link(onClick,11937981:doEvent3,[])
}
Add(Button,13502820,105,112)
{
Left=35
Top=5
Caption=""
Point(doEnabled)
link(onClick,955966:doWork2,[])
}
Add(HubEx,955966,196,105)
{
link(onEvent,11937981:doEvent2,[])
}
Add(Hub,797734,161,161)
{
link(onEvent1,955966:doWork3,[(200,167)])
link(onEvent2,3053646:doEvent1,[])
}
Add(Hub,15652319,112,182)
{
link(onEvent1,797734:doEvent1,[(147,188)(147,167)])
link(onEvent2,8421655:doEvent1,[])
}
Add(Hub,11576193,294,196)
{
InCount=2
PColor(onEvent1,4227327)
link(onEvent1,15652319:doEvent1,[(320,202)(320,230)(100,230)(100,188)])
link(onEvent2,11937981:doEvent1,[(350,209)(350,100)(287,100)(287,111)])
}
Add(Hub,11937981,294,105)
{
InCount=3
}
Add(Hub,3053646,217,168)
{
InCount=2
}
Add(Hub,8421655,161,189)
{
PColor(onEvent1,12615680)
link(onEvent1,11576193:doEvent2,[(230,195)(230,209)])
link(onEvent2,11576193:doEvent1,[])
}
Add(InfoTip,6863599,455,56)
{
Info=#15:Не правильно :(|
Font=[MS Sans Serif,8,0,255,1]
Width=638
Height=501
}
Add(InfoTip,9019020,70,56)
{
Info=#12:Правильно ;)|
Font=[MS Sans Serif,8,0,32768,1]
Width=372
Height=193
}
Add(InfoTip,14042859,91,182)
{
Info=#9:Ступеньки|
HAlign=2
Width=246
Height=53
}
Add(InfoTip,1239726,147,252)
{
Info=#52:Как видите расстояние между элементами не одинаковое|28:но хуже от этого не стало ;)|
Transparent=1
Width=183
Height=46
}
Add(InfoTip,13738106,280,77)
{
Info=#6:Реверс|
Width=78
Height=165
}
Add(Hub,3836654,161,329)
{
OutCount=4
link(onEvent1,981460:doValue,[])
link(onEvent2,16316804:doValue,[])
link(onEvent3,15528442:doValue,[])
link(onEvent4,10796635:doValue,[])
}
Add(Memory,981460,189,329)
{
}
Add(Memory,16316804,231,336)
{
}
Add(Memory,15528442,273,343)
{
}
Add(Memory,10796635,315,350)
{
}
Add(InfoTip,7456423,140,322)
{
Info=#9:Ступеньки|
Width=225
Height=67
}
Add(Hub,16561172,161,434)
{
link(onEvent1,12230720:doCase,[])
link(onEvent2,1268296:doWork2,[])
}
Add(Case,12230720,259,434)
{
PColor(onTrue,33023)
link(onTrue,1268296:doWork1,[(306,447)(306,422)(193,422)])
}
Add(DoData,14579918,203,441)
{
}
Add(HubEx,1268296,189,434)
{
PColor(onEvent,33023)
link(onEvent,14579918:doData,[])
}
Add(InfoTip,3724080,147,399)
{
Info=#6:Реверс|
Width=204
Height=88
}
Add(InfoTip,16155595,546,329)
{
Info=#13:Не правильно.|
Font=[MS Sans Serif,8,0,255,1]
Width=267
Height=102
}
Add(InfoTip,15725346,546,224)
{
Info=#10:Правильно.|
Font=[MS Sans Serif,8,0,32768,1]
Width=267
Height=88
}
Add(Math,5148416,616,357)
{
link(onResult,16211227:doOperation,[])
}
Add(Math,16211227,679,357)
{
link(Op1,5148416:Result,[(685,345)(660,345)(660,400)(622,400)])
link(Op2,2761863:Result,[(692,345)(730,345)(730,410)(573,410)])
}
Add(Math,2761863,567,357)
{
link(onResult,5148416:doOperation,[])
}
Add(Math,4152852,609,252)
{
link(onResult,4846620:doOperation,[])
}
Add(Math,4846620,672,252)
{
link(Op2,12337556:Result,[(685,240)(720,240)(720,300)(566,300)])
}
Add(Math,12337556,560,252)
{
link(onResult,4152852:doOperation,[])
}
8. Оптимальная дистанция между элементами - 2-3 точки сетки(или 2-3 шага при перемещении элемента).
[совет] Не пытайтесь сделать из схемы плотный комок.
9. При "переломе" соединительной линии используйте функцию "выравнивание"(ПКМ на рабочем поле).
Add(Button,6952249,497,329)
{
Left=25
Top=40
link(onClick,2738446:doOperation,[(565,335)(565,338)])
}
Add(Math,2738446,602,332)
{
}
Add(Button,11376456,497,259)
{
Left=25
Top=40
link(onClick,10273190:doOperation,[])
}
Add(Math,10273190,602,259)
{
}
Add(InfoTip,16175854,483,245)
{
Info=#9:Правильно|
Font=[MS Sans Serif,8,0,32768,1]
Width=176
Height=60
}
Add(InfoTip,7351454,483,315)
{
Info=#12:Не правильно|
Font=[MS Sans Serif,8,0,255,1]
Width=176
Height=60
}
Статья несёт рекомендатеьный характер.
Продуманые предложения приветствуются.