my.life.logging.Blog

Исходники мироздания :)

Исходники мироздания

Не знаю, как вас, а меня эта вероятная часть исходников нашего мира прямо-таки ужасает! :)

Причин этому несколько:

1. Оказывается, наш мир написан не на чем бы-то ни было, а на самом что ни на есть JavaScript'е! То есть на языке, который славится кучей ошибок, допущенных при его проектировании.

2. Сама разработка мира проходила, по всей видимости, в большой спешке. На это указывает тот факт, что параметры функции аутентификации, то есть имя пользователя и пароль, прописаны непосредственно в исходном коде. По-хорошему, если даже не принимать ввод от пользователя, нужно было хранить эти значения в конфигурационном файле.

3. Код написан достаточно неквалифицированным программистом. Почему?

Во-первых, для сравнения используется оператор ==, который, как известно, имеет свойство приводить типы своих операндов. Поэтому вполне возможна ситуация, что даже если результатом функции auth будет что-то отличное от true, общий результат будет true. И вообще использовать сравнение логического значения (коим предполагается результат функции auth) с true для получения логического значения - не слишком ли это избыточно? Думается мне, что надо написать просто вот так:

1
2
3
...
if (worldApi.auth('God', 'chfkzyfdfcghblehrb')) {
...

Во-вторых, так как в JavaScript используется функциональная область видимости, объявлять переменную внутри ветвления особого смысла не имеет. Нужно было объявить все переменные в самом начале функции.

В-третих, я уже не говорю о таких вещах, как не очень ясные названия переменных worldApi и universe1, и о том, что ставить точку с запятой после условного оператора - совершенно бессмысленно!

И это все максимум в 5 строчках кода!

Jesus Facepalm

Хотя, если повнимательнее поглядеть вокруг, то вполне можно поверить, что “возможно, все так и было”. :)

P.S. И да, пароль стоит все-таки поменять, а то ведь некоторые заказчики могут прочитать исходный код и догадаться об истинных намерениях Творца. :)

Comments