Практический план изучения Grails

Я разработчик Java, пытающийся изучить Grails, и я хотел бы получить доступ к как можно большему количеству частей среды Grails. Предпочтительно делать это, решая небольшие реальные проблемы, используя «способ Grails сделать это» (DRY, соглашение по настройке и т. д.).

Три примера могут быть:

  • Узнайте о GORM, создав несколько классов (скажем, Movie, Actor и т. д.) и отношения/сопоставления между ними (1:1, 1:N, N:N и т. д.).
  • Узнайте о поддержке макета (sitemesh), используя его для создания верхних и нижних колонтитулов, общих для всех GSP на сайте.
  • Узнайте о поддержке фильтра, используя его, чтобы убедиться, что все обращения к определенному контроллеру исходят от пользователей, прошедших проверку подлинности.

Мой вопрос ко всем разработчикам Grails: что бы вы включили в «учебную программу по Grails» и в каком порядке?

Все входы оценены!


person knorv    schedule 03.02.2009    source источник


Ответы (4)


Вот несколько примеров, но имейте в виду, что они довольно тривиальны и на самом деле не показывают вам, как система работает вместе. Одна из сильных сторон Grails заключается в том, что различные части объединяются для уменьшения сложности кода и ускорения разработки. Я рекомендую сделать один проект среднего размера (например, программное обеспечение для ведения блога или фотогалерею), который заставит вас прикасаться практически ко всему. В настоящее время я работаю над приложением для управления билетами, и мне пришлось изучить практически все в рамках. На самом деле материала не так уж и много.

При этом, вот мой список «обязательных для изучения» вместе с некоторыми примерами:

  1. Groovy, особенно замыкания, карты и свойства. Если вы пришли с Java, замыкания поначалу могут показаться немного странными. Однако, как только вы освоите их, будет трудно вернуться к языку, в котором они не используются. Карты и свойства используют идеи, которые могут быть знакомы, но синтаксис и использование достаточно отличаются, поэтому их стоит внимательно изучить. Grails использует эти три вещи ВСЕ ВРЕМЯ во всей структуре. В качестве хорошего примера изучите «BeanBuilder», который создает экземпляры компонентов Spring, определенных в resources.groovy. Кроме того, просмотрите документацию по Groovy на сайте groovy.codehaus.org. Пара часов сэкономит вам ДНИ в пути.

  2. Программирование MVC. Модель «MVC» в Grails очень похожа на модель, используемую в Rails, но существенно отличается от модели «MVC», используемой в настольных Java-приложениях. По сути, все входящие запросы URL представляют собой сообщение контроллеру, который возвращает представление. Объекты домена — это данные, которые вы хотите хранить, просматривать и манипулировать с помощью представлений и контроллеров. Сделайте форму ввода, которая проверяет ввод пользователя с помощью ограничений, а затем каким-то образом манипулирует им с помощью контроллера. Что-то вроде страницы, которая принимает ваш день рождения и возвращает ваш знак зодиака и животное китайского зодиака. Посмотрите, сможете ли вы заставить его возвращать пользователю ошибки при неверном вводе.

  3. ГОРМ. GORM очень важен, но вам придется изучать его практически в любом проекте, который вы выберете. Просмотрите документацию, чтобы знать, каковы ее возможности.

  4. Фильтры и услуги. Это "способ Грааля" для СУХОГО программирования. Аутентификация — это канонический пример, и он идеально подходит для изучения фильтров. Для услуг напишите что-нибудь, что отправит электронное письмо. На веб-сайте Grails есть отличный пример простой службы электронной почты.

  5. Страницы сервера Groovy. Если вы раньше работали с шаблонизатором, то это должно показаться вам знакомым. Познакомьтесь с библиотекой тегов GSP, это очень поможет. Практические примеры включают: практически все. Каждому приложению нужен интерфейс. Попробуй сделать красиво. ПРИМЕЧАНИЕ. Это приводит ко многим вещам, не относящимся к Grails, таким как JavaScript, CSS и т. д. Если у вас уже нет этих знаний, приготовьтесь к некоторому обучению.

  6. Ваш каталог «conf». Изучите каждый файл, особенно UrlMappings.groovy. Поэкспериментируйте с UrlMappings, чтобы у вас было приложение, которое получает значимую информацию из URL-адреса. Что-то вроде /myapp/calculate/36/times/145, где приложение возвращает ответ.

Я бы сказал, что это основы, но есть много других тем, таких как веб-потоки, i18n, тестирование, обработка сеансов и так далее. Лучший способ изучить их — создать проект приличного размера. Делая это, вы, вероятно, поймаете себя на мысли: «Боже, я бы хотел, чтобы Grails сделал ____». Прочтите прекрасную документацию на Grails.org, и вы, вероятно, найдете встроенную возможность или подключаемый модуль, который делает то, что вам нужно. Справочный PDF-файл живет на моем рабочем столе, и я нашел его неоценимым во время моего обучения.

О, и посмотрите на код шаблона, который генерирует Grails. Вы, вероятно, в конечном итоге расскажете все это, но это даст вам хорошее представление о том, как работает система.

Получайте удовольствие и счастливого взлома!

person Megaduck    schedule 07.02.2009

Шаг 1. Изучите Groovy

Если вы уже знакомы с Java, я настоятельно рекомендую программировать Groovy. Он намного лаконичнее и актуальнее, чем отличный в остальном Groovy в действии. Ни в одной из этих книг не рассматриваются существенные языковые изменения в Groovy 1.6, поэтому вам также следует прочитать эту страницу. .

Шаг 2. Изучите Grails

Полное руководство по Grails, вероятно, является стандартным справочником по Grails. версия. Grails в действии немного новее, но я не читал, поэтому не могу комментировать дальше. Я нашел TDGTG немного легким в GORM, поэтому вы также можете проверить Grails Persistence с GORM и GSQL. Это очень короткая книга, но она на вес золота.

Шаг 3 – погружение

Попробуйте изменить пример приложения в книге Grails или создайте свое собственное с нуля. консоль Groovy — отличный способ поэкспериментировать с фрагментами кода Groovy.

person Dónal    schedule 28.08.2009

Если аудитория не знакома с программированием в Groovy, следует сделать введение в него. Java будет работать, но он заработает, когда вы увидите, насколько менее многословен код в Groovy. При обсуждении GORM укажите ограничения и то, как они влияют на проверку. Скаффолдинг помогает сэкономить время при запуске нового проекта, поэтому обязательно включите его. Одной из функций Grails, которая мне действительно помогла, являются подключаемые модули. Выберите несколько и покажите, как они предлагают решения, экономя время на разработку. Подключаемый модуль безопасности идеально подходит для темы фильтра, которую вы упомянули. Тестирование, может ли когда-нибудь быть достаточно тестирования?

person Ed.T    schedule 03.02.2009

Я настоятельно рекомендую прочитать Полное руководство по Grails, второе издание. Он охватывает все, что вам нужно знать о написании приложений в Grails. Вероятно, ему не хватает знания «что происходит под капотом», но вы должны его освоить. Вы можете купить его в формате PDF и сразу начать читать.

У вас также должен быть список подключаемых модулей для использования — в Grails есть несколько действительно хороших, которые пригодятся. Я могу рассказать вам о некоторых из них, которые я использую, но это тоже может быть хорошим вопросом. :-)

person Karsten Silz    schedule 17.02.2009