У веб-программистов со временем вырабатываются привычки, которые въедаются в рабочий процесс на уровне рефлексов. Взять хотя бы данные из формы — каждый толковый программист, как только встречает их, тут же обрабатывает на предмет корректности. Порою даже сам не замечает.
Я хочу уделить внимание нескольким приемам, которые, к моему сожалению, еще не являются повсеместными привычками. Очень хочу оказаться банальным и неуместным.
Возьмите в привычку использовать два волшебных числа. Например, числа 100 и 120. Величина списка меньше 120? — выводим все на одной странице. Величина списка больше? — первую сотню выводим на первой странице, остальные (а их не меньше 20) на второй.
Алгоритмы придумайте самостоятельно.
А ведь вместо троеточия могла стоять страница 4, только этого не предусмотрели по привычке. Бойтесь и избегайте. Способов много, например, мой любимый.
Пусть фразы в документации — «поле цены обязательно имеет значение» — не сводят вас с толку. Всегда проверяйте поле и в противном случае выводите слово «пусто». Дальше уже забота менеджеров переименовать это слово. Возможно они все-таки заменят «пусто» пустым местом, но это будет осознанный шаг.
Привыкайте включать вывод заголовка в обработку-вывод самого списка. (На примере в картинке, заголовку «новости» самое место быть внутри подключаемого файла.)
print $фраза + $значение
Вполне возможно, что человеческий язык в этом месте захочет поменять местами фразу и значение. А то и вовсе засунуть значение в середину:
$начало_фразы + $значение + $конец_фразы
Я не говорю уже об обработке окончаний: «опубликована 5 привычка», «написано 25 май».
Я хочу уделить внимание нескольким приемам, которые, к моему сожалению, еще не являются повсеместными привычками. Очень хочу оказаться банальным и неуместным.
Количество элементов на одной странице
Разбиваете список на страницы? Как будет выглядеть вторая страница для списка из 101 элемента, если ваше волшебное число 100?Возьмите в привычку использовать два волшебных числа. Например, числа 100 и 120. Величина списка меньше 120? — выводим все на одной странице. Величина списка больше? — первую сотню выводим на первой странице, остальные (а их не меньше 20) на второй.
Алгоритмы придумайте самостоятельно.
Список страниц для постраничного вывода
Возьмите себе в привычку панически бояться следующего результата:А ведь вместо троеточия могла стоять страница 4, только этого не предусмотрели по привычке. Бойтесь и избегайте. Способов много, например, мой любимый.
Вывод пустых значений
Поля в базе данных могут иметь пустое значение — заголовки постов, цены товаров, тексты сообщений и прочие — даже если менеджеры проекта уверяют вас в обратном.Пусть фразы в документации — «поле цены обязательно имеет значение» — не сводят вас с толку. Всегда проверяйте поле и в противном случае выводите слово «пусто». Дальше уже забота менеджеров переименовать это слово. Возможно они все-таки заменят «пусто» пустым местом, но это будет осознанный шаг.
Заголовок списка и список — не выводятся по отдельности
Распространенная ошибка писать заголовок «новости» и только после этого обрабатывать список новостей. Результатом обработки может быть фраза «нет новостей» (а в случае игнорирования предыдущей привычки — пустое место).Привыкайте включать вывод заголовка в обработку-вывод самого списка. (На примере в картинке, заголовку «новости» самое место быть внутри подключаемого файла.)
Учитывайте грамматические особенности языков
Не надо задавать жесткие конструкции по типу:print $фраза + $значение
Вполне возможно, что человеческий язык в этом месте захочет поменять местами фразу и значение. А то и вовсе засунуть значение в середину:
$начало_фразы + $значение + $конец_фразы
Я не говорю уже об обработке окончаний: «опубликована 5 привычка», «написано 25 май».
* * *
Но самая важная привычка которую необходимо себе завести, была сказана не в этой статье, а в комментариях к ней:Главное помнить, что вы создаете продукт для людей, а не для роботов… Чем более человечнее будет ваш интерфейс — тем больше будет удовольствие от его использования.И я полностью с ним согласен.
сказал zenden2k