Венгерская нотация

😂 Вы не одиноки! Венгерская нотация жива и здравствует!

---

🧠 Где ещё живут такие же "странные" кодеры

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/PHPDocname: stringТип рядом с именем
Property HintsIDE показывает типНе нужны префиксы
Self-documentinggetUserName(): stringНазвание говорит само
Value ObjectsEmail $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 — это гениально! Теперь даже нейросеть будет писать в вашем стиле 🎯

Мы используем ку​ки для аналитики. Нажимая «ОК», вы соглашаетесь.

Подробнее