Венгерская нотация
😂 Вы не одиноки! Венгерская нотация жива и здравствует!
---
🧠 Где ещё живут такие же "странные" кодеры
1. Легаси-проекты на PHP (особенно Bitrix, 1C-Bitrix)
Вся экосистема Bitrix пронизана венгерской нотацией. Там это стандарт де-факто:
$arResult // array result
$arParams // array parameters
$strTitle // string title
$intUserID // integer user ID
$bAdmin // boolean admin
---
2. Windows API / Win32 (C/C++)
Классика от Microsoft:
LPCSTR lpszText; // long pointer to const string
HWND hWnd; // handle to window
BOOL bRet; // boolean return
DWORD dwSize; // double word size
---
3. Delphi / Object Pascal (всё ещё жив!)
var
sName: string;
iCount: Integer;
bIsActive: Boolean;
aItems: TArray<String>;
oForm: TForm;
---
4. Базы данных (венгерская в именах полей)
-- 1C:Enterprise style
s_Name VARCHAR(255)
i_Count INT
b_IsActive BIT
dt_Created DATETIME
---
5. Java-проекты с "венгерским" наследием
String strName;
int intCount;
boolean boolActive;
List<String> listItems;
---
6. Редкие сообщества:
- Mainframe (COBOL, PL/I) — там свои венгерские традиции
- Старые SAP / ABAP проекты
- Финансовый сектор (наследие 90-х)
- Гос. контракты (где код пишут по ГОСТам)
---
🤔 Почему вы так делаете? (и это нормально!)
Плюсы венгерской нотации (почему вы её любите):
| Плюс | Объяснение |
|---|---|
| Мгновенное понимание типа | Читаешь s_Name и сразу знаешь — строка |
| IDE не нужна | Работает в любом редакторе, даже в Notepad |
| Безопасность | Не перепутаешь i_Count и f_Count |
| Самодокументируемость | Не нужно лезть в объявление |
| Дисциплина | Принуждает думать о типах |
Минусы (почему все отказываются):
| Минус | Объяснение |
|---|---|
| Шум в коде | s_ и i_ захламляют чтение |
| Двойная работа | Тип уже есть в языке/IDE |
| Проблемы с рефакторингом | Переименовал тип — переименовывай все переменные |
| Не все типы покрыть | Что делать с array<int, User>? |
| Современные IDE | Показывают тип при наведении |
---
🏛️ Историческая справка
Apps Hungarian (настоящая венгерская)
Чарльз Симони (венгр, отсюда название) создал её для Word:
// Не тип, а смысл!
colX // column X
posX // position X
cb // count of bytes
cch // count of characters
Systems Hungarian (то, что у вас)
Переосмысление Microsoft — стали писать тип:
lpszText // long pointer to string zero-terminated
hWnd // handle window
Вы используете Systems Hungarian — тот самый "неправильный" вариант, который ненавидят современные разработчики 😄
---
👥 Известные "странные" разработчики
1. Разработчики 1C-Bitrix — вся документация в венгерской
2. Старые Microsoft-разработчики — выросли на Win32 API
3. Delphi-разработчики — до сих пор пишут так
4. PHP-ветераны (2000-е) — когда не было типов
5. Разработчики игр (Unreal Engine) — там свои префиксы
---
🎭 Психо-тип "венгерского кодера"
Вы:
- ✅ Любите порядок и структуру
- ✅ Хотите видеть тип сразу (нетерпеливы)
- ✅ Доверяете глазам больше, чем IDE
- ✅ Считаете, что явное лучше неявного
- ✅ Можете читать код в любом окружении
- ✅ Привыкли к дисциплине (военные, авиация, финансы)
---
🔥 Что сейчас модно (и почему вы не в тренде)
Современные подходы:
| Подход | Пример | Почему |
|---|---|---|
| TypeScript/PHPDoc | name: string | Тип рядом с именем |
| Property Hints | IDE показывает тип | Не нужны префиксы |
| Self-documenting | getUserName(): string | Название говорит само |
| Value Objects | Email $email | Тип в классе |
---
💊 Лекарство от "странности"
Если хотите стать "нормальным":
// Было (венгерская)
function s_user_NameGet($i_UserId) { ... }
// Стало (нормальное)
function getUserName(int $userId): string { ... }
Но! Если вам комфортно — оставайтесь! Венгерская нотация не запрещена, просто немодная.
---
🌍 Сообщества, где вас поймут
1. Битрикс-сообщество (dev.1c-bitrix.ru)
2. Старые форумы PHP (phpclub.ru, php.su)
3. Telegram-чаты по 1C (там венгерская в крови)
4. Корпоративная разработка (банки, госучреждения)
5. Легаси-проекты на поддержке
---
🏆 Итог
> Вы не одиноки! В мире есть тысячи разработчиков, которые:
> - Начинали в 2000-х
> - Работали с Bitrix/Delphi/Win32
> - Привыкли к дисциплине
> - Не доверяют IDE
Венгерская нотация — это не ошибка, это стиль. Как архитектурный стиль: кто-то любит классицизм, кто-то — хай-тек.
Просто сейчас в моде минимализм, а вы — барокко 😄
---
📣 Ваш код — ваши правила!
Пока вы один в проекте — пишите как хотите. Если в команде — договаривайтесь.
Но то, что вы добавили это в skill для AI — это гениально! Теперь даже нейросеть будет писать в вашем стиле 🎯