У веб-программистов со временем вырабатываются привычки, которые въедаются в рабочий процесс на уровне рефлексов. Взять хотя бы данные из формы — каждый толковый программист, как только встречает их, тут же обрабатывает на предмет корректности. Порою даже сам не замечает.
Я хочу уделить внимание нескольким приемам, которые, к моему сожалению, еще не являются повсеместными привычками. Очень хочу оказаться банальным и неуместным.
![](https://habrastorage.org/getpro/habr/post_images/ed7/c1b/262/ed7c1b2622890a76ee90d88c51558e9a.gif)
Возьмите в привычку использовать два волшебных числа. Например, числа 100 и 120. Величина списка меньше 120? — выводим все на одной странице. Величина списка больше? — первую сотню выводим на первой странице, остальные (а их не меньше 20) на второй.
![](https://habrastorage.org/getpro/habr/post_images/e5c/484/f05/e5c484f054748c507075d0b182b159ec.gif)
Алгоритмы придумайте самостоятельно.
![](https://habrastorage.org/getpro/habr/post_images/a61/6a3/bf5/a616a3bf56648ef191ea1b188800d2d1.gif)
А ведь вместо троеточия могла стоять страница 4, только этого не предусмотрели по привычке. Бойтесь и избегайте. Способов много, например, мой любимый.
Пусть фразы в документации — «поле цены обязательно имеет значение» — не сводят вас с толку. Всегда проверяйте поле и в противном случае выводите слово «пусто». Дальше уже забота менеджеров переименовать это слово. Возможно они все-таки заменят «пусто» пустым местом, но это будет осознанный шаг.
![](https://habrastorage.org/getpro/habr/post_images/9af/49b/0cd/9af49b0cde1349b8d07cfefdda230ac8.gif)
![](https://habrastorage.org/getpro/habr/post_images/ae6/ba1/451/ae6ba14512862b9b395c98598110dabe.gif)
Привыкайте включать вывод заголовка в обработку-вывод самого списка. (На примере в картинке, заголовку «новости» самое место быть внутри подключаемого файла.)
print $фраза + $значение
Вполне возможно, что человеческий язык в этом месте захочет поменять местами фразу и значение. А то и вовсе засунуть значение в середину:
$начало_фразы + $значение + $конец_фразы
Я не говорю уже об обработке окончаний: «опубликована 5 привычка», «написано 25 май».
Я хочу уделить внимание нескольким приемам, которые, к моему сожалению, еще не являются повсеместными привычками. Очень хочу оказаться банальным и неуместным.
Количество элементов на одной странице
Разбиваете список на страницы? Как будет выглядеть вторая страница для списка из 101 элемента, если ваше волшебное число 100?![](https://habrastorage.org/getpro/habr/post_images/ed7/c1b/262/ed7c1b2622890a76ee90d88c51558e9a.gif)
Возьмите в привычку использовать два волшебных числа. Например, числа 100 и 120. Величина списка меньше 120? — выводим все на одной странице. Величина списка больше? — первую сотню выводим на первой странице, остальные (а их не меньше 20) на второй.
![](https://habrastorage.org/getpro/habr/post_images/e5c/484/f05/e5c484f054748c507075d0b182b159ec.gif)
Алгоритмы придумайте самостоятельно.
Список страниц для постраничного вывода
Возьмите себе в привычку панически бояться следующего результата:![](https://habrastorage.org/getpro/habr/post_images/a61/6a3/bf5/a616a3bf56648ef191ea1b188800d2d1.gif)
А ведь вместо троеточия могла стоять страница 4, только этого не предусмотрели по привычке. Бойтесь и избегайте. Способов много, например, мой любимый.
Вывод пустых значений
Поля в базе данных могут иметь пустое значение — заголовки постов, цены товаров, тексты сообщений и прочие — даже если менеджеры проекта уверяют вас в обратном.Пусть фразы в документации — «поле цены обязательно имеет значение» — не сводят вас с толку. Всегда проверяйте поле и в противном случае выводите слово «пусто». Дальше уже забота менеджеров переименовать это слово. Возможно они все-таки заменят «пусто» пустым местом, но это будет осознанный шаг.
![](https://habrastorage.org/getpro/habr/post_images/9af/49b/0cd/9af49b0cde1349b8d07cfefdda230ac8.gif)
Заголовок списка и список — не выводятся по отдельности
Распространенная ошибка писать заголовок «новости» и только после этого обрабатывать список новостей. Результатом обработки может быть фраза «нет новостей» (а в случае игнорирования предыдущей привычки — пустое место).![](https://habrastorage.org/getpro/habr/post_images/ae6/ba1/451/ae6ba14512862b9b395c98598110dabe.gif)
Привыкайте включать вывод заголовка в обработку-вывод самого списка. (На примере в картинке, заголовку «новости» самое место быть внутри подключаемого файла.)
Учитывайте грамматические особенности языков
Не надо задавать жесткие конструкции по типу:print $фраза + $значение
Вполне возможно, что человеческий язык в этом месте захочет поменять местами фразу и значение. А то и вовсе засунуть значение в середину:
$начало_фразы + $значение + $конец_фразы
Я не говорю уже об обработке окончаний: «опубликована 5 привычка», «написано 25 май».
* * *
Но самая важная привычка которую необходимо себе завести, была сказана не в этой статье, а в комментариях к ней:Главное помнить, что вы создаете продукт для людей, а не для роботов… Чем более человечнее будет ваш интерфейс — тем больше будет удовольствие от его использования.И я полностью с ним согласен.
сказал zenden2k