С чего начать знакомство с Приморскими внутренностями? - PullRequest
6 голосов
/ 21 февраля 2011

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

Ответы [ 3 ]

3 голосов
/ 05 марта 2011

Стефан дает хорошие предложения. По сути, если вы понимаете пакет Seaside-Core в Seaside 3.x, вы понимаете, как все сходится:

  • Материал Canvas - это специфическая реализация WARenderer из категории Seaside-Core-Rendering
  • Все компоненты Session / Application являются специфической реализацией WARequestHandler из категории Seaside-Core-RequestHandling
  • Компонент / Задача - это реализация WAPainter из категории Seaside-Core-Presenters

Существует действительно два подхода к изучению фреймворка. Либо начните с одной из конкретных вещей, которые вас интересуют (например, WAComponent), и продолжайте свой путь до суперклассов. Затем повторите с каждым из других классов, упомянутых Стефаном.

Я бы предложил другой путь: начиная с трех наборов абстрактных классов, которые я упомянул в Session-Core. Рассматривая их вместе (в сочетании с классами HTTP и Document), вы получите представление об общих концепциях и о том, как они объединяются, образуя структуру. Вы можете посмотреть на каждую из конкретных реализаций по мере необходимости, чтобы связать общие концепции с фактической реализацией.

Подклассы WAServerAdaptor образуют отправную точку обработки запроса в Seaside, где запрос от определенной веб-среды преобразуется в запрос Seaside и отправляется соответствующему обработчику. Обратные вызовы также очень важны и находятся в Seaside-Core-Callbacks.

Если вы понимаете все в Seaside-Core, вы в основном понимаете, как работает фреймворк на высоком уровне. Получив широкое понимание основных основных концепций, вы можете приступить к глубокому пониманию каждой области, которая вас интересует, более подробно изучив конкретные реализации. Но имейте в виду, что все в Seaside-Core предназначено, чтобы быть подклассами и соединенными вместе, чтобы расширить структуру.

3 голосов
/ 22 февраля 2011

Полагаю, вы читали Приморскую книгу?

http://book.seaside.st/book

Если вы хотите углубиться, просто посмотрите на источник, начиная склассы WAComponent и WARenderCanvas + WAHtmlCanvas.Класс маршрутизации - WAAdmin в том смысле, что «это место, где зарегистрированы различные приложения Seaside».

2 голосов
/ 24 февраля 2011

Есть несколько интересных частей.Начните с WARenderCanvas, чтобы понять, как создается HTML, генерирующий dsl.WAComponent является отправной точкой для составной структуры страницы с call: и answer:.WAApplication представляет приложение Seaside, WASession сеанс, WAServerAdapter соединяет инфраструктуру Seaside с http-сервером и WARequestHandler обрабатывает запросы http.Пакет Grease обрабатывает различия между диалектами Smalltalk.

Вы используете разные браузеры (класс и иерархия), комментарии классов, отправители и разработчики, не так ли?

...