Критика практичного вебу. Частина третя.
Apr. 13th, 2009 03:54 amВ цьому записі мені хотілося б розглянути, в що практично виливається той комплекс проблем, які я описав в попередніх записах. Це не буде послідовне викладення, просто перерахую окремі моменти.
1. Практично не існує загальноприйнятого рівня абстракції для опису інтерфейса користувача в вебі. Код, що по суті відноситься до одного елемента інтерфейсу, найчастіше розкиданий по двох файлах і написаний на трьох чи чотирьох мовах. Різні елементи інтерфейсу ніяк між собою не повязані, окрім як близькістю в коді.
2. Захищеність клієнт-серверної програми (якою, фактично, є веб-сторінка), написаної таким безладним чином, дуже важко відслідковувати.
3. Ізольованість окремих сторінок змушує програмістів викручуватися при потребі логічно повязати послідовність сторінок в сеанс. Три механізми, які найчастіше застосовуються збереження інформації в даних сесії, в html-коді, що віддається клієнту та в базі даних потребують суттєво різних підходів, слабо інтегровані та містять суттєві обмеження. На додачу, другий з цих варіантів часто створює серйозні проблеми з безпекою.
4 . В звязку з відсутністю стандартної абстракції з першого пункту створюється багато подібних абстракцій широкого вжитку, або, ще гірше, велосипедів. Це, звичайно, краще, ніж неструктурований код з попереднього пункту, але вимагає від програміста освоювати ці інструменти щоразу при переході до іншого (розпочатого без нього) продукту.
5. Через непристосованість веб-розмітки до відображення графічного інтерфейсу користувача завантаження сторінки навіть на досить швидкому зєднанні може займати більше десяти секунд (порівняйте з комфортними для людини 0.2-0.3 с).
6. Відсутність локального сховища та локального зберігання програми. Фактично, хоч деяке наближення цього дає кешування, але, навіть не говорячи про те, що воно в свою чергу породжує деякі проблеми (втім, не надто серйозні), реально запобігти, наприклад, щоразовому завантаженню листа через веб-інтерфейс при кожному зверненні тяжко, якщо не сказати неможливо.
Частина перша. Історичний аспект.
Частина друга, лінгвістична.