Автор: Сергей Галанин

  • Поспешные действия, дублирующийся код

    Код Что не так с этим кодом Если судить чисто по приведённому фрагменту кода (не знаю, что там ещё есть дальше), то запрос к базе выполняется слишком рано. Сначала мы должны убедиться, что его результат понадобится (то есть проверить $_SESSION[‘userid’]), а потом только собственно делать запрос. Запрос извлекает из базы все строки, подходящие под заданное условие,…

  • Лишние телодвижения при проверке булева значения

    Исходный код Что не так в этом коде В этом коде вместо непосредственной проверки значения переменной произведено два лишних преобразования. Такие финты ушами наблюдаю более-менее регулярно. Подозреваю, что они происходят от незнания факта, что аргументом оператора if является значение типа boolean, и если у нас есть переменная типа boolean, то мы можем передавать её в оператор if непосредственно. Чем плохи лишние…

  • Сравнение булевых значений и смешение ответственностей

    Исходный код Что не так в этом коде Возвращаемое значение Тут сразу три ошибки: Непонятный набор возвращаемых значений: в случае наличия ошибки будет возвращена false, а при отсутствии ошибки — undefined. При этом второй вариант не задан в явном виде, что плохо. При сравнении используется нестрогий оператор, что в JavaScript является плохим тоном. Переменные, принимающие булевы значения,…

  • Как обменять значения двух переменных в питоне

    Код Что не так в этом коде В питоне есть более лаконичный и одновременно понятный способ поменять местами значения двух переменных: Это называется unpacking assignment. Что почитать Python: Variables and Other References

  • Слишком много переменных и операций (длина функции)

    Исходный код Что не так в этом коде Чрезмерная сложность кода Ничего не могу сказать о корректности и предназначении данного кода (какие-то математические расчёты), но что могу сказать сразу и однозначно — этот код переусложнён. Что делает его переусложнённым? Даже в этом фрагменте (а это именно фрагмент) чрезмерное количество переменных и операций. Входные переменные: qr_count…

  • Проверка наличия ошибки после выполнения валидации

    Исходный код Что не так в этом коде 1) Странный способ хранить результат валидации входных данных. Почему он странный. В данном конкретном примере валидируется всего одно поле (электронный адрес) и используется всего два состояния: «порядок» или «не порядок». Поэтому для этого конкретного случая нет смысла хранить признак в виде строки, достаточно булева значения. 2) В…