Комментарии 36
Короткие имена идентификаторов ускоряют чтение программы компилятором, а также сокращают размер программы в интерпретируемых языках, что особенно актуально для JS!
Пишите сразу на ассемблере, и скорость исполнения максимум, и сеть не занимает. А специалисты и так разгребут все ваши баги.
Если имена переменных так важны, то почему переменные в деобфусцированном коде записаны именно в a b c case? Шах и мат, программисты!
переменные в деобфусцированном коде
Вы наверное хотели сказать "в обфусцированном коде". Т.е. после специального усложнения читаемости.
А так, в целом мысль поддерживаю. Система именования переменных должна упрощать понимание программы и "объясняющие" имена переменных в этом здорово помогают. Короткие имена переменных ограничены применением в качестве локальных в коротких функциях не более 20-30 строк ИМХО.
Я считаю что самым важным навыком для изучения это Oo0 паттерн. Что может быть лучше?
int o, O, oo, oO, o0, Oo, O0, OO;
for (o=oo; o<oO; o+=Oo) o0 += OO;
Деление на букву О, наконец я это увидел ;)
Разве что I1I паттерн может немного посоревноваться
int I, I1, II1, I1I, II1I; I1I1;
Тут еще важно правильно шрифт подобрать - чтобы "ноль" не был перечеркнут.
/s же?
PascalCase
Нужен блог ИА Панорамы на хабре для таких публикаций. Пролистал сначала по быстрому и начал предпринимать попытка осознать что происходит первые минуты 2. Это реально кто-то так считает и пытается аргументировать, или же это Панорама просочилась.
кстати, именование, проверенное временем - запись в шахматах не даст соврать. e2-e4.
Самое четкое что я видел в коде - это именование пакетов и классов с использованием номеров тикетов. Это же прекрасно!!! Ну что непонятного в названии класса: GHJ47558954511256687? Это же так просто - открыть тикет и посмотреть о чем он! (правда тикеты есть не все, многие куда-то пропали, но хороший программист и так разберется!)
Кому вообще нужны эти ваши переменные. Нужно перфокарты дырявить.
Ну в принципе, чисто гипотетически, если разбить (при написании) программу так, что каждый метод будет умещаться максимум на 1-н экран монитора с HD-разрешением, то качественным именованием именно переменных можно будет и пренебречь почти без потери читаемости кода.
Корень ошибки в том, что вы решили, что переменные нужны. Пишите в бесточечном стиле, без переменных, и проблема отпадёт сама собой.
Надо было опрос с множественным выбором делать
Предлагаю творчески углубить эту замечательную идею.
Вместо объявления переменных как
int a1;
int a2;
int a3;
… и т.д.
использовать конструкции вида:
int[] a;
В этом случае, кроме повышения уровня абстракции (о чем так убедительно рассказано в статье), мы получаем дополнительные профиты:
1. Все переменные располагаются в памяти одним блоком, что повышает аккуратность использования памяти.
2. Легко запомнить, какой тип имеет переменная, исходя из имени массива.
3. При необходимости можно легко изменить тип всех используемых переменных (например, если вдруг выясниться, что размерности int не хватает, то можно быстро переправить на long).
4. Упрощается визуальный контроль за использованием в одном выражении только однотипных переменных, что сразу же позволит избавиться от труднообнаруживаемых ошибок неявного преобразования типов.
5. Появляется возможность легко создавать (и восстанавливать) дамп состояния программы (сохранить во внешний файл один массив проще и надежнее, чем писать кучу переменных и ничего при этом не забыть).
Надо развить идею - void *a;
Круто ведь - лаконично, запихнуть можно все что угодно, никаких проблем с размером - надо больше, выделил больше памяти, и не надо думать какой там тип лежит, клади что хочешь - свобода!
Искусство абстракции: Важность использования буквенно-цифровых переменных в программировании