Да хотя бы профессиональные разработчики, работающие в крупных компаниях. Почему-то дизайну всяких интерфейсов для всяких плееров и прочего уделяется большое внимание, а админки делают кто на что горазд.
Как отмечалось выше - админка жестко привязана к функционалу проекта, поэтому основное руководство по разработке админок - ТЗ. По поводу их оформления - согласен, делаются так себе. Этому есть есть причина: как правило заказной проект не идет в тираж, и в целях экономии средств заказчик особо не заморачивается с дизайном. Часто голый HTML, обычные формы, простой текст в описаниях, старинные кнопки сабмита. Бесплатный максимум - используются CSS от публичной части, что ее несколько преображает.
Вообще если проект делается на заказ то с админкой выходит довольно забавнвя штука. Сначала заказчик хочет админить всех и вся, быть царем и богом чуть ли не каждого тега. Когда высчитывается стоимость его пожеланий (десятки сотен убитых енотов) и сроки - жажда власти куда-то испаряется и начинается конструктивный диалог, что действительно нужно, а что понты. Поэтому совет: Заранее определи что ты захочешь позволить настраивать через админку, а что просто жесто вбить в код проекта, от этого будет зависеть количество бессонных ночей
По поводу форм: Админка - это сплошные формы, формы, формы. А как известно, формы требуют проверок. Поэтому для проверки форм хотя бы на элементарные значения (число, длина строки, емейл, диапазон значений...)
придумай/найди некоторый готовый/ функционал, иначе однообразные операции съедят кучу времени.
По работе с БД. Этот момент относится чаще админкам, хотя встречается в публичной части (например регистрация нового пользователя в проекте). Суть его заключается в следующем. Часто при администрировании чего-то данные обновляются/удаляются в/из нескольких таблиц(ах) сразу. Апдейт/удаление происходит поочередно: таблица1, таблица2,.. таблицаN. Ошибка в любом из запросов(мало ли что не учли проверке формы,) должна приводить к откату успешно обновленных таблиц (удаленные строки вернуться, обновленные принять предыдущие значения). Иначе можешь потом долго ломать голову почему например вылезают ошибки у юзера А и все нормально у Б.
В общем вот на заметку. Делай что нибудь, ведь многие задачи вытекают из предыдущих, сам многое поймешь. Сверхсложного там ничего нет.