mithraen [livejournal.com]: comment 25

mithraen [livejournal.com]
Tue, 22 Jan 2013 20:08:00 +0400

1. То есть игнор vcs это осознанное решение, Ok.

2. Widget на сайте -- некий отдельный логический блок, отображающий некую информацию. Расскажу как это в Wordpress выглядит:

Подразумевается что каждая "тема" имеет несколько мест, где такие объекты могут размещаться, например правая/левая колонка, заголовок, подвал (каждый из них может быть разделен на зоны), эти области выделяются еще на этапе верстки темы.

Сам widget это некий код, который выдает на выход HTML, который вставляется в одну из этих зон. Это делается прямо в админке. Примеры таких блоков -- related posts, recent comments, форма авторизации, кнопки репоста, облако тэгов, календарь, кнопка подписки на RSS, просто список страниц, баннер, или что угодно еще.

У wordpress на оптимизацию производительности забили болт, потому в одну кучу смешаны как явно статичные вещи, так и динамические разной логики -- по любому там при прорисовке выполняется код для всех widget'ов.

В общем это произвольный блок с чем-то. Подавляющее большинство таких блоков в вашей идеологии могут быть и полностью статическими, некоторая часть потребует обновлений части страниц при обновлении стороннего контента, но некоторая (например recent comments, или та же статистика) требует перегенерации всех страниц при каждом обновлении чего-либо.

3. По iframe -- ой не люблю я его. Для контента который должен видеть только человек, а роботы не должны -- уж лучше подгрузка с помощью js, это еще и гибче. А вот для контента, который хочется скормить и роботам тоже iframe уже не катит точно также как и js. Т.е. для recent comments -- пущай будет js, а вот для related posts нужен чистый html (но с ним, как я говорил, можно делать обновление не по изменению объекта, а по пинку).

В общем признаю, примеры widget'ов где обязательно чистый html, и при этом нужно обновление на каждый чих а не по крону придумать не могу. И, наверное, не смогу -- то что обновляется (а не добавляется) очень часто поисковым машинам не интересно.

4. Про комбинаторный взрыв возможностей -- логично, согласен.

5. Я не про code reuse, я про то, что выбранная архитектура отражается на размере code base, а следовательно сложности как написания, так и сопровождения, в том числе сопровождение администраторами инсталляций.

6. Т.е., условно, речь о том что "первичный контент" бывает разных видов, в т.ч. отличающихся вероятной частотой обновления. Ссылки на то, что меняется редко безопасны, ссылки на то, что меняется часто -- недопустимы. Понятия "редко" и "часто" не определены, но любой контент оставляемый сторонними пользователями (не владельцем ресурса) стоит считать, условно, "часто" обновляемым.