Глава 5. Соглашения об именах и комментариях______________________775

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

Однако вам может показаться, что даже в столь заботливо подобранных

именах, таких как yearlylnterest, beginningBalance И interestRate, чего-то

не хватает — а именно типа данных. В выражении

float yearlylnterest = beginningBalance * interestRate / 100;

переменной yearlylnterest явно задан тип float, а вот какого типа

beginningBalance И interestRate? Придется лезть В текстовый редактор И

искать объявление этой переменной: иного пути не видно. Замечание

¦Если вы используете текстовый редактор, понимающий синтаксис C++, то в нем обычно достаточно щелкнуть мышью на интересующей вас переменной, чтобы моментально определить ее тип.

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

Разбор венгерской нотации

Тем из вас, кто использует Windows API (Application Programming Interface, Интерфейс программирования приложений) или библиотеки для Windows, должно быть знакомо соглашение об именах под названием "венгерская нотация", снискавшее широкую популярность с легкой руки Microsoft Windows. Венгерская нотация была разработана сотрудником Microsoft Чарльзом Си-мони (Charles Simonyi), венгром по национальности. Это название — сродни китайской грамоте — заодно отражает загадочность этой системы обозначений для непосвященных.

Венгерская нотация по большей части не привязана к конкретному языку программирования и употребляется как в C++, так и в С, в PASCAL, в Basic, в языках ассемблера, в макроязыках табличных редакторов. Достоинства венгерской нотации обусловлены ее мнемонической природой. С первого взгляда на имя переменной или функции, данное в соответствии с венгерской нотацией, становится понятен не только его смысл, например, currentBaiance, но и тип. В частности, это облегчает программистам изучение уже существующего текста. Знание типов переменных в сочетании с осмысленными именами очень помогает понять происходящее в отдельно