Some maintenance is scheduled for today which requires LiveJournal to be down briefly. Please see this post for details.

Дон Карлос (kastaneda) wrote,
Я тут недавно закинул ссылку на интересную статью о том, как погано жить в теге <textarea>. Теперь — вторая серия: почему я считаю веб-приложения редкостной гадостью. По крайней мере, я говорю о CMS.

Нет, это на самом деле смешно. Я — веб-разработчик, последние пять лет только то и делаю, что веб-приложения. И даже с голоду не сдох. Я занимаюсь делом, которое мне нравится, чёрт возмьи! И всё равно я не люблю веб-приложения.

И вот почему.

World Wide Web — это… Ну, все знают, гипертекстовая среда. То есть, текст и ссылки, из которых всё выросло. Картинки, CSS, Flash являются довеском к.

Сеть динамична из-за децентрализованности. Сегодня где-то сервер упал, а где-то какой-то newbie выложил свою домашнюю страничку. Мне не надо даже пальцем шевелить, чтобы в сети произошло что-то: там всегда что-то происходит. Парадокс: сеть, состоящая из одних лишь статических (!) страниц и связей между ними, может быть чертовски динамичной, даже без Google и форумов. На самом деле парадокса нет, каждый статический файл может быть изменён владельцем, вот и всё.

HTML-формы понадобились. Просто понадобились сети на самой заре рождения веба, и появились ещё в HTML 2.0 (что было до того — просто не знаю). Без форм почти невозможна интерактивность (Flash и XMLHttpRequest в те времена ещё не родились). С помощью форм можно вбить свой запрос «mp3 xxx download халява crack» на ближайшей поисковой машине и надеяться на какой-то результат.

Можно зайти на web-mail из интернет-кафе и почитать свою почту. А можно даже написать. Круто! Несколько лет эволюции — и целые армии контент-менеджеров вбивают прайс-листы при помощи веб-интерфейса CMS с WYSIWYG-редактором, который они не знают, как отключить…

Стоп!

Где-то тут вкралась чудовищная ошибка планетарного масштаба.

Скажите, лично вы что предпочитаете — настроить почтовую программу или посещать сайт какого-то web-mail'а? Я уверен, что большинство из вас пользуется отдельно стоящей программой (ну, кроме фанатов Gmail'а, постоянно едущих куда-то автостопом). В этом есть очень простой смысл: как правило, специализированное решение круче универсального, когда оно существует. Исключения пока трогать не будем.

С помощью связки PHP+MySQL можно штамповать сложные решения «на потоке», особенно — если вкурить, втянуться в процесс и войти в ритм. Даже отсутствие RAD, как в ASP.NET, не мешает. Вопрос лишь в целесообразности. Итак, когда веб-приложения целесообразнее, чем традиционные «десктопные»? Ну, допустим, для примера:

  • когда пользователю читать надо много, а писать мало
  • когда все наши данные — текстовые
  • когда бизнес-логика сложная и запутанная
  • когда наши сотрудники находятся чёрт знает где


А теперь возьмём какого-нибудь менеджера, отберём у него Excel и вручим ему веб-приложение. Либо отберём у дизайнера PhotoShop, и предложим отныне и навеки делать гамма-коррекцию, crop и resize какой-то приблудой на Flash'е. Есть желающие провести эксперимент? Вывод: надо десять раз подумать, вызвесить все pro и contra, и только тогда принять решение о разработке какого-то одного интерфейса (либо дублирующегося, как это у многих free mail).

Итак, к чему мы вернулись? К контент-менеджерам и веб-приложениям. Веб-студии надо делать много дешёвых сайтов, а многие заказчики терпеть не могут таких слов, как HTML, FTP, SQL и многих других. Зато заказчикам нравится, когда можно сделать copy-paste из Word'а. В результате рождается web-based клон FrontPage, основная задача которого — пудрить мозги заказчику. Побочная задача — якобы облегчить труд разработчиков той самой веб-студии. Обе задачи не выполняются. Пудрить мозги заказчику удаётся только до того момента, как сайт сталкивается с суровой реальностью. Об этом даже говорить не хочется, все и так насмотрелись.

Вторая задача — унифицировать всё и вся, хотя бы, до уровня русского народного метода copy-paste в разработке. Весь контент лежит в базе. Структура базы данных годится «для всего и ничего», потому что разрабатывалась не под специальные задачи, а под общие. В общем, и здесь полный бред. Тоже говорить не хочется.

А теперь — небольшой «ракурс» в историю. Когда не было веба и веб-приложений, средний unix-админ прекрасно обходился без веб-почты. Достаточно пойти telnet'ом (теперь только ssh) на хост, стоящий чёрт-знает-где, и запустить pine (теперь лучше mutt). Ничего не напоминает? И ходить можно откуда угодно, и настраивать на стороне клиента ничего не надо; отличается только среда. HTML+HTTP versus VT-100.

Стоп.

Меня сейчас начнут обвинять в том, что я предлагаю хранить данные только в текстовых файлах, которые заливать только по ftp или набирать в vim'е руками… Нет, ничего подобного. Я слишком уважаю database-driven сайты. Я просто предлагаю сменить среду.

Спроектируем хорошую, семантически выверенную БД для нашего сайта. Получилось? У нас новости, каталог товаров и форум перестали смешиваться в нечто аморфное? Отлично. Писать код, который работает с такими данными, интересно и не сложно. А теперь стоит десять раз подумать, а нафига нам вообще интерфейс администратора к этому сайту? Мы ведь сделали уникальный продукт (а не использовали типовой CMS), пользователь у нас всего один, так не лучше ли присмотреться к нему повнимательнее? Так ли часто нам надо обновлять прайс-листы из интренет-кафе?

Я тут дохрена текста написал. Вроде бы всё разжевал довольно подробно. Сложите два плюс два. Вспомните, что с Access'ом офисный народ вполне умеет управляться. Вспомните о том, что я — за правильную семантику БД. Вспомните о специализированных решениях.

Догадались? То, что нам нужно для публикации контента, называется database front-end. Для того же MySQL их существует немало. Меньше, чем почтовых клиентов, но значитально больше, чем броузеров с поддержкой JavaScript'а.





Нужно ли развивать такую мысль дальше? Вывод: проще, дешевле, удобнее и правильнее заменить 95% «админки» среднестатистического сайта на что-то подобное. Оставшиеся 5% будут, скорее всего, просмотром статистики и модерацией форума. Впрочем, с интересом выслушаю и другие мнения.
Tags: q-revo, webdev
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded  

  • 37 comments