Seaside (фреймворк)

Seaside — це вільне та відкрите програмне забезпечення для розробки веб-застосунків мовою Smalltalk. Складається з набору Smalltalk класів. Розробник може використовувати ці класи, а також розширювати їх на свій розсуд, для створення високодинамічних веб-застосунків, програм з потенційно складним потоком процесів і взаємодій з користувачем. Seaside робить веб-розробку значно легшою, і допомагає будувати прості для розуміння застосунки, які легше обслуговувати.

Seaside
Тип Web application framework
Розробник The Seaside Team
Стабільний випуск 3.0 (13 вересня 2010 (2010-09-13))
Версії 3.4.4 (7 лютого 2021)[1]
Репозиторій github.com/SeasideSt/Seaside
Операційна система Багатоплатформність
Мова програмування Smalltalk
Ліцензія MIT
Вебсайт seaside.st

Основні ідеї

Seaside-застосунки будуються на основі поєднання незалежних компонент. Кожна компонента відповідає за власні візуалізацію, стан і потік процесів. Seaside дозволяє вільно поєднувати такі компоненти, створюючи високорозвинені і динамічні за стосунки. Найбільш вагомою рисою є те, що потік керування застосунку написаний звичайним Smalltalk.

Seaside часто описується як фреймворк-єретик, бо він справді відрізняється від інших. Наприклад, він не використовує шаблонів чи ретельно підібраних URL-адрес з чіткою і зрозумілим вмістом. Seaside не слідує REST за замовчуванням (Representational State Transfer, «передача стану подання» — підхід до архітектури мережевих протоколів, які забезпечують доступ до інформаційних ресурсів).

В Seaside URL-адреси зберігають ключову інформацію сесії. Їх вміст генерується автоматично з певним кодуванням. Якщо потрібні URL-адреси з чітким і зрозумілим вмістом, то їх потрібно створити та передати.

При використанні шаблонних систем (PHP, JSP, ASP, ColdFusion, і т. д.), логічна складова розкидана по багатьох файлах, що створює складність у підтримці додатку. Повторне використання (якщо таке взагалі можливе) часто ґрунтується на копіюванні файлів. Філософія шаблонних систем полягає у розподіленні обов'язків дизайнерів та програмістів. Це хороша ідея, що також підтримується Seaside. CSS використовується дизайнерами для опису зовнішнього вигляду компоненти, а розробники мають можливість програмно генерувати коректну XHTML розмітку.

Seaside легко вивчати і використовувати. Для прикладу, JSF (JavaServer Faces) вимагає від розробника знання таких технологій як Servlets, XML, JSP, конфігурація навігації за допомогою faces.config файлів і т. д. У Seaside розробник повинен знати тільки Smalltalk, який набагато компактніший і простіший для вивчення ніж, наприклад, Java. Seaside дозволяє сконцентруватися на поточній проблемі, а не на поєднанні технологій. Також Seaside забезпечує генерацію коректного XHTML коду.

Таким чином, деякі аспекти дизайну Seaside відрізняються від більшості основних фреймворків для веб-застосунків. У Seaside

  • стан сесії зберігається на сервері.
  • XHTML повністю генерується в Smalltalk. Там немає ніяких шаблонів або «серверних сторінок», хоча не важко побудувати такі речі і в Seaside.
  • можна використовувати функції зворотніх викликів для посилань і кнопок, а не слабо зв'язані посилання на сторінки і ідентифікатори запитів.
  • потік процесів у застосунку визначається на чистому Smalltalk, не потрібна жодна спеціальна мова або конфігураційні файли у форматі XML.

У сукупності ці особливості роблять роботу з Seaside майже аналогічною до написання десктопної програми, і навіть простішою, бо сервер забезпечує велику частину деталей роботи веб-застосунку.

Seaside підтримує Ajax завдяки інтеграції з script.aculo.us і jQuery. Seaside також підтримує Comet-стиль сервер-push технології (модель роботи, яка дозволяє реалізувати постійне HTTP-з'єднання і дає можливість відправляти дані з сервера за його ініціативою без додаткового запиту клієнта).

Приклад застосування

Для побудови та налаштування тегів можна використати каскадні повідомлення Smalltalk, коли декілька повідомлень надходять до одного отримувача (тегу). Кожне таке повідомлення встановлює певні параметри тегу. Наприклад, щоб створити заголовок 3го рівня в Seaside:

  html heading
    level: 3;
    with: 'A third level heading'.

Що відповідає наступному HTML коду:

   <h3>A third level heading</h3>

Переваги

  • достатній набір компонент і функцій зворотнього виклику;
  • підтримка послідовних взаємодій;
  • вбудований інтерфейс для відлагодження;
  • підтримка AJAX та інших технологій Веб 2.0.

Недоліки

  • в порівнянні з іншими фреймворками для розробки веб-застосунків Seaside вимагає значних ресурсів пам'яті. Одна сесія може накопичувати кілька сотень кілобайт оперативної пам'яті. Хоча у найновіших версіях Seaside цю кількість вдалось суттєво зменшити.
  • Seaside не дотримується архітектури REST за замовчуванням, тому вся інформація про сесію зберігається у URL адресі, що робить URL позбавленою змісту для користувача.

Seaside сайти

Наступні сайти створені з допомогою фреймворка Seaside:

Також відомо, що Seaside використовується в багатьох інтернет-додатках. Але це, зазвичай, непомітно. Адже, переглядаючи джерело сторінки ми бачимо лише те, що підключається певний скрипт, а його коду ми не бачимо.

Корисні посилання

  1. Release 3.4.4 — 2021.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.