LINUX.ORG.RU

История изменений

Исправление Xenius, (текущая версия) :

Нет. Если тяжелый сайт закешировался, а затем начал выполнять мелкие запросы (веб-приложение)

Я же в том посте писал, что веб-приложение и веб-сайт — это принципиально разные вещи. Вот ЛОР — веб-сайт. JS Linux — веб-приложение. Я вот видел где-то целую 3D-игру, которая запускается через браузер на весь экран — это тоже веб-приложение.

Мне казалось, что обсуждаются именно сайты. А веб-приложения по определению принципиально вообще никак невозможно построить без скриптов. Разве что переписать на нативный код и не извращаться с браузером, что в подавляющем большинстве случаев и стоило бы сделать.

а новые посты докидывать скриптом в реальном времени, как и делать превьюшки. В первую очередь это делает удобно самому пользователю.

А ты вот прямо так уверен, что динамическая подгрузка новых постов — это удобно? Например пользователь открыл страницу ради уже имеющихся постов, прокрутил до того места, которое хотел обдумать и ответить, потом переключился на другую вкладку и стал читать статью, а скрипт в фоне будет жрать процессорное время и подгружать какие-то там новые посты с мегабайтными картинками, которые пользователю вовсе и не нужны, пока он не ответил на предыдущий. А может у пользователя каждый мегабайт несколько рублей и скорость 100 килобит в секунду?

Ещё один принцип грамотного проектирования веб-сайта в том, что если скрипты и используются, они должны исполняться только если пользователь специально что-то делает, а если сайт в фоновой вкладке, то он должен спокойно там висеть, не тратя процессорное время.

делать превью через пост вообще смысла не имеет

Тогда придётся дублировать код, то есть трансляция из какого-нибудь bb-кода в HTML будет и в CGI-скрипте и в JS на странице. Или получится какое-то дикое извращение, которое без JS не работает, вроде отдачи всего форума в маркдауне и рендере у клиента.

А если твой форум на самом деле ближе к чату, то можно вообще забить на серверный рендеринг и сделать всё на скриптах.

Тогда не надо вообще его пихать в веб. Есть IRC и XMPP для чатов, в них чаты и следует организовывать.

если в общем виде учить грамотной архитектуре и проектированию, то нежелательные побочные эффекты уйдут сами собой

И как ты собираешься этому учить в общем виде? Написать в книге «проектируйте грамотно»? Ну так это будет бесполезно, все и так хотят проектировать грамотно, но не всегда могут. А если ты начнёшь писать принципы и частные примеры, какое проектирование грамотное, а какое нет, то побочные эффекты туда как раз и попадут в числе прочего.

поэтому делает акцент на побочных эффектах, думая, что это как-то решит проблему.

Само по себе не решит. В основном Столяров пишет, что избегать побочных эффектов нужно, чтобы минимизировать число ребусов в коде, то есть таких мест, которые делают что-то с первого взгляда непонятно и нужно разбираться.

Например, когда в заголовке цикла что-то делается кроме проверки условия.

Исходная версия Xenius, :

Нет. Если тяжелый сайт закешировался, а затем начал выполнять мелкие запросы (веб-приложение)

Я же в том посте писал, что веб-приложение и веб-сайт — это принципиально разные вещи. Вот ЛОР — веб-сайт. JS Linux — веб-приложение. Я вот видел где-то целую 3D-игру, которая запускается через браузер на весь экран — это тоже веб-приложение.

Мне казалось, что обсуждаются именно сайты. А веб-приложения по определению принципиально вообще никак невозможно построить без скриптов. Разве что переписать на нативный код и не извращаться с браузером, что в подавляющем большинстве случаев и стоило бы сделать.

а новые посты докидывать скриптом в реальном времени, как и делать превьюшки. В первую очередь это делает удобно самому пользователю.

А ты вот прямо так уверен, что динамическая подгрузка новых постов — это удобно? Например пользователь открыл страницу ради уже имеющихся постов, прокрутил до того места, которое хотел обдумать и ответить, потом переключился на другую вкладку и стал читать статью, а скрипт в фоне будет жрать процессорное время и подгружать какие-то там новые посты с мегабайтными картинками, которые пользователю вовсе и не нужны, пока он не ответил на предыдущий. А может у пользователя каждый мегабайт несколько рублей и скорость 100 килобит в секунду?

Ещё один принцип грамотного проектирования веб-сайта в том, что если скрипты и используются, они должны исполняться только если пользователь специально что-то делает, а если сайт в фоновой вкладке, то он должен спокойно там висеть, не тратя процессорное время.

делать превью через пост вообще смысла не имеет

Тогда придётся дублировать код, то есть трансляция из какого-нибудь bb-кода в HTML будет и в CGI-скрипте и в JS на странице. Или получится какое-то дикое извращение, которое без JS не работает, вроде отдачи всего форума в маркдауне и рендере у клиента.

А если твой форум на самом деле ближе к чату, то можно вообще забить на серверный рендеринг и сделать всё на скриптах.

Тогда не надо вообще его пихать в веб. Есть IRC и XMPP для чатов, в них чаты и следует организовывать.

если в общем виде учить грамотной архитектуре и проектированию, то нежелательные побочные эффекты уйдут сами собой

И как ты собираешься этому учить в общем виде? Написать в книге «проектируйте грамотно»? Ну так это будет бесполезно, все и так хотят проектировать грамотно, но не всегда могут. А если ты начнёшь писать принципы и частные примеры, какое проектирование грамотное, а какое нет, то побочные эффекты туда как раз и попадут в числе прочего.

поэтому делает акцент на побочных эффектах, думая, что это как-то решит проблему.

Само по себе не решит. В основном Столяров пишет, что избегать побочных эффектов нужно, чтобы избегать ребусов в коде. То есть таких мест, которые делают что-то с первого взгляда непонятно и нужно разбираться.

Например, когда в заголовке цикла что-то делается кроме проверки условия.