Вот несколько примеров, но имейте в виду, что они довольно тривиальны и не показывают, как система работает вместе. Одной из сильных сторон Grails является то, что различные части объединяются, чтобы уменьшить сложность кода и ускорить разработку. Я рекомендую сделать один проект небольшого размера (например, программное обеспечение для блогов или фотогалерею), который заставит вас коснуться практически всего. В настоящее время я работаю над приложением для управления билетами, и мне пришлось изучать практически все в рамках. На самом деле это не так много материала.
При этом, вот мой список "должны учиться", а также несколько примеров:
Groovy, особенно замыкания, карты и свойства. Если вы пришли с Java, поначалу замыкания могут показаться немного странными. Однако, когда вы обернетесь вокруг них, будет трудно вернуться к языку, который их не использует. Карты и свойства используют идеи, которые могут быть знакомы, но синтаксис и использование достаточно различны, поэтому стоит их внимательно изучить. Grails использует эти три вещи ВСЕ ВРЕМЯ, все в рамках. В качестве хорошего примера рассмотрим BeanBuilder, который создает экземпляры Spring-компонентов, определенных в resources.groovy. Также ознакомьтесь с документацией Groovy по адресу groovy.codehaus.org. Через пару часов вы сэкономите ДНИ в будущем.
Программирование MVC. Модель "MVC" в Grails довольно близко соответствует той, которая используется в Rails, но она существенно отличается от модели "MVC", используемой в настольных приложениях Java. По сути, все входящие URL-запросы являются сообщениями для контроллера, который возвращает представление. Доменные объекты - это данные, которые вы хотите хранить, просматривать и манипулировать с помощью представлений и контроллеров. Создайте форму ввода, которая проверяет ввод пользователя с помощью ограничений, а затем каким-то образом манипулирует им с помощью контроллера. Что-то вроде страницы, которая принимает ваш день рождения и возвращает ваш знак зодиака и животное китайского зодиака. Посмотрите, сможете ли вы заставить его возвращать пользователю ошибки при неправильном вводе.
GORM. GORM очень важен, но вы будете вынуждены изучать его практически в любом выбранном вами проекте. Дайте документацию еще раз, чтобы вы знали, каковы ее возможности.
Фильтры и услуги. Это «способ Грааля» для выполнения СУХОГО программирования. Аутентификация является каноническим примером и идеально подходит для изучения фильтров. Для услуг напишите что-нибудь, что будет отправлено по электронной почте. На сайте Grails есть отличный пример простой службы электронной почты.
Страницы Groovy Server. Если вы раньше работали с шаблонизатором, то это должно показаться вам знакомым. Познакомьтесь с библиотекой тегов GSP, это огромная помощь. Практические примеры включают в себя: практически все. Каждое приложение нуждается во внешнем интерфейсе. Попробуй и сделай это красиво. ПРИМЕЧАНИЕ. Это включает в себя множество вещей, не связанных с Grails, таких как JavaScript, CSS и т. Д. Если у вас нет этих знаний, подготовьтесь к некоторой кривой обучения.
Ваш каталог "conf". Узнайте все файлы там, особенно UrlMappings.groovy. Поиграйте с UrlMappings, чтобы у вас было приложение, которое получает значимую информацию из URL. Что-то вроде /myapp/calculate/36/times/145
, где приложение возвращает ответ.
Я бы сказал, что это основы, но есть много других тем, таких как веб-процессы, i18n, тестирование, обработка сессий и так далее. Лучший способ узнать это - создать достойный проект. Пока вы делаете это, вы, вероятно, обнаружите, что думаете: «Черт возьми, я бы хотел, чтобы Граальс сделал ____». Прочитайте отличную документацию на Grails.org, и вы, вероятно, найдете встроенную возможность или плагин, который делает то, что вы хотите. Справочный файл PDF находится на моем рабочем столе, и я нашел его бесценным в процессе обучения.
Да, и посмотрите на код лесов, который генерирует Grails. Вы, вероятно, в конечном итоге представите все это, но это даст вам хорошее представление о том, как работает система.
Удачи и счастливого взлома!