Главная - Литература

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 [89] 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294

Табл. 11 -4. (окончание)

Сущность

Описание

Имена именованных констант, видимых в одном методе или модуле (файле), включают только заглавные буквы: ROWS МАХ.

Имена глобальных именованных констант включают только заглавные буквы и дополняются префиксом G и обозначением модуля (файла), в котором определена именованная константа; обозначение модуля (файла) включает только заглавные буквы: G SCREEN ROWS MAX.

Имена макросов, видимых в одном методе или модуле (файле), включают только заглавные буквы.

Имена глобальных макросов включают только заглавные буквы и дополняются префиксом G и обозначением модуля (файла), в котором определен макрос; обозначение модуля (файла) включает только заглавные буквы: G SCREEN LOCATION().

Так как Visual Basic безразличен к регистру букв, для различения имен типов и переменных приходится применять специфические правила (табл. 11-5).

Табл. 11-5. Пример конвенции именования для языка Visual Basic

LOCAL CONSTANT GJGLOBALCONSTANT

LOCALMACROO GjGLOBALMACROO

Сущность

Описание

CClassName TTypeName TEnumeratedTypes localVariable

routineParameter

RoutineNameQ

m ClassVariable

g GlobalVanable CONSTANT

Base EnumeratedType

Имена классов дополняются префиксом С , начинаются с заглавной буквы и включают буквы обоих регистров.

Имена типов дополняются префиксом Т , начинаются с заглавной буквы и включают буквы обоих регистров.

Кроме предыдущего правила, имена перечислений всегда имеют форму множественного числа.

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

Имена параметров методов форматируются так же, как имена локальных переменных.

Имена методов включают буквы обоих регистров (об удачных именах методов см. раздел 7.3).

Имена переменных-членов, доступных только методам класса, дополняются префиксом т .

Имена глобальных переменных дополняются префиксом

Имена именованных констант включают ТОЛЬКО ЗАГЛАВНЫЕ БУКВЫ.

Имена элементов перечислений дополняются именем самого перечисления в единственном числе: ColorRed, ColorBlue.



11.5. Стандартизованные префиксы

Стандартизация префиксов обеспечивает лаконичный, но Дошнктедьнш «ввйвния О .

венгерской нотации см. статью время согласованный и понятный способ именова-

«ТИе Hungarian Revolution* (Si- данных. Самая известная схема стандартизации префик-

fflonyi and Heifer, t991), сов - венгерская нотация - представляет собой набор де-

тальных принципов именования переменных и методов (а не жителей Венгрии!) , который когда-то широко применялся при программировании для ОС Microsoft Windows. Сейчас венгерскую нотацию используют редко, но ее суть - создание стандартизованного набора лаконичных точных аббревиатур - от этого не становится менее полезной.

Стандартизованный префикс состоит из двух частей: аббревиатуры типа, определенного пользователем (user-defined type, UDT), и семантического префикса.

Аббревиатура типа, определенного пользователем

Аббревиатура UDT обозначает тип объекта или переменной. Как правило, аббревиатуры UDT служат для описания таких сущностей, как окна, области экрана и шрифты, но не предопределенных типов данных конкретного языка программирования.

Типы UDT описываются краткими кодами, которые вы создаете и стандартизируете для конкретной программы. Коды - это мнемонические обозначения, такие как ит в случае окна и scr в случае области экрана. В табл. 11-6 приведены примеры UDT, которые можно было бы задействовать в текстовом редакторе.

Табл. 11 -6. Примеры UDT текстового редактора Аббревиатура UDT Значение

Символ (тип данных, используемый для представления

символа документа, а не символ С++)

Документ

Абзац (paragraph)

Область экрана

Выбранный текст

Окно

При работе с UDT следует также определить типы данных с именами, соответствующими аббревиатурам UDT. Таким образом, при использовании UDT из табл. 11 -6 у вас получились бы подобные объявления данных:

СН chCursorPosition; SCR scrUserWorkspace; DOC docActive PA firstPaActiveDocument; PA lastPaActiveDocument; WN wnMain;

Разумеется, аббревиатуры следует создавать для тех UDT, которые чаще всего встречаются в конкретной среде.



Семантические префиксы

Семантические префиксы дополняют аббревиатуры UDT, характеризуя использование переменной или объекта. В отличие от аббревиатур UDT, зависимых от конкретного проекта, семантические префиксы являются в некотором смысле стандартными (табл. 11-7).

Табл. 11 -7. Семантические префиксы

Семантический

префикс Значение

с Количество (записей, символов и т. д.).

first Элемент массива, обрабатываемый первым. Префикс Г5Г

аналогичен префиксу min, но связан с текущей операцией, а не с самим массивом.

g Глобальная переменная.

/ Индекс массива.

last Элемент массива, обрабатываемый последним. Префикс last

дополняет префикс first.

Нт Верхняя граница обрабатываемого массива. Значение с пре-

фиксом Нт уже не является допустимым индексом. Как и last, префикс Нт дополняет префикс first. В отличие от префикса last, используемого для представления последнего допустимого элемента, значение с Нт выходит за пределы массива. В общем, Нт равняется last + 1.

т Переменная уровня класса.

max Индекс последнего элемента массива или другого списка.

Префикс max связан с самим массивом, а не с выполняемыми над массивом операциями.

min Индекс первого элемента массива или другого списка.

р Указатель.

Семантические префиксы включают строчные буквы или буквы обоих регистров и по мере необходимости объединяются с аббревиатурами UDT и другими семантическими префиксами. Например, имя переменной, определяющей первый абзац документа, включило бы аббревиатуру ра, говорящую о том, что это абзац, и префикс first, показывающий, что это первый абзац. В итоге мы получили бы имя firstPa. Индекс набора абзацев был бы назван iPa; счетчик или число абзацев - сРа, г первый и последний абзацы текущего активного документа - firstPoActiveDocument и lastPoActiveDocument соответственно.

Достоинства стандартизованных префиксов

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

Стандартизованные префиксы позволяют уточнить имена, которые без этого часто оказываются неточными. Особенно полезны точные различия между префиксами min, first, last и max.



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 [89] 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294



0.0074