-
Поспешные действия, дублирующийся код
Код Что не так с этим кодом Если судить чисто по приведённому фрагменту кода (не знаю, что там ещё есть дальше), то запрос к базе выполняется слишком рано. Сначала мы должны убедиться, что его результат понадобится (то есть проверить $_SESSION[‘userid’]), а потом только собственно делать запрос. Запрос извлекает из базы все строки, подходящие под заданное условие,…
-
Лишние телодвижения при проверке булева значения
Исходный код Что не так в этом коде В этом коде вместо непосредственной проверки значения переменной произведено два лишних преобразования. Такие финты ушами наблюдаю более-менее регулярно. Подозреваю, что они происходят от незнания факта, что аргументом оператора if является значение типа boolean, и если у нас есть переменная типа boolean, то мы можем передавать её в оператор if непосредственно. Чем плохи лишние…
-
Сравнение булевых значений и смешение ответственностей
Исходный код Что не так в этом коде Возвращаемое значение Тут сразу три ошибки: Непонятный набор возвращаемых значений: в случае наличия ошибки будет возвращена false, а при отсутствии ошибки — undefined. При этом второй вариант не задан в явном виде, что плохо. При сравнении используется нестрогий оператор, что в JavaScript является плохим тоном. Переменные, принимающие булевы значения,…
-
Как обменять значения двух переменных в питоне
Код Что не так в этом коде В питоне есть более лаконичный и одновременно понятный способ поменять местами значения двух переменных: Это называется unpacking assignment. Что почитать Python: Variables and Other References
-
Слишком много переменных и операций (длина функции)
Исходный код Что не так в этом коде Чрезмерная сложность кода Ничего не могу сказать о корректности и предназначении данного кода (какие-то математические расчёты), но что могу сказать сразу и однозначно — этот код переусложнён. Что делает его переусложнённым? Даже в этом фрагменте (а это именно фрагмент) чрезмерное количество переменных и операций. Входные переменные: qr_count…
-
Проверка наличия ошибки после выполнения валидации
Исходный код Что не так в этом коде 1) Странный способ хранить результат валидации входных данных. Почему он странный. В данном конкретном примере валидируется всего одно поле (электронный адрес) и используется всего два состояния: «порядок» или «не порядок». Поэтому для этого конкретного случая нет смысла хранить признак в виде строки, достаточно булева значения. 2) В…