Скриптовой язык Groovy и его применение в рамках разработки ПО

50 %
50 %
Information about Скриптовой язык Groovy и его применение в рамках разработки ПО

Published on June 25, 2008

Author: fedor.malyshkin

Source: slideshare.net

Description

Скриптовой язык Groovy и его применение в рамках разработки ПО

Скриптовой язык Groovy и его применение в рамках разработки ПО Малышкин Фёдор ( [email_address] ) 28 марта 2008

Содержание Введение Предполагаемые области применения Архитектура Преимущества Примеры кода Взаимодействие с Java Применение BA ( сервер ) HS EKS Тестирование Предостережения Советы Источники информации

Введение

Предполагаемые области применения

Архитектура

Преимущества

Примеры кода

Взаимодействие с Java

Применение

BA ( сервер )

HS

EKS

Тестирование

Предостережения

Советы

Источники информации

Введение Groovy – это скриптовой язык, выполняемый на виртуальной машине Java (JVM). Основные причины его существования: это быстрое написание кода для ежедневных задач, наглядность , лёгкость чтения и компактность, его интерпретируемая природы (анализ при выполнении) и слабая типизация.

Groovy – это скриптовой язык, выполняемый на виртуальной машине Java (JVM).

Основные причины его существования: это быстрое написание кода для ежедневных задач, наглядность , лёгкость чтения и компактность, его интерпретируемая природы (анализ при выполнении) и слабая типизация.

Содержание Введение Предполагаемые области применения Архитектура Преимущества Примеры кода Взаимодействие с Java Применение BA ( сервер ) HS EKS Тестирование Предостережения Советы Источники информации

Введение

Предполагаемые области применения

Архитектура

Преимущества

Примеры кода

Взаимодействие с Java

Применение

BA ( сервер )

HS

EKS

Тестирование

Предостережения

Советы

Источники информации

Предполагаемые области применения Разработка кода, который требуется изменять без перезапуска приложения, частью которого он является Разработка веб-приложений (связана с его интерпретируемой средой – лёгкая модификация без долгого перезапуска) Тестирование (разработка тестов и тестовых данных) Выполнение вещей, которые могут меняться, в зависимости от среды выполнения или требований заказчика («вынос» деталей настройки в скрипты) Административные задачи (развёртывание серверов, управление журналами, тестирование, CI ) Прототипирование будущих систем

Разработка кода, который требуется изменять без перезапуска приложения, частью которого он является

Разработка веб-приложений (связана с его интерпретируемой средой – лёгкая модификация без долгого перезапуска)

Тестирование (разработка тестов и тестовых данных)

Выполнение вещей, которые могут меняться, в зависимости от среды выполнения или требований заказчика («вынос» деталей настройки в скрипты)

Административные задачи (развёртывание серверов, управление журналами, тестирование, CI )

Прототипирование будущих систем

Содержание Введение Предполагаемые области применения Архитектура Преимущества Примеры кода Взаимодействие с Java Применение BA ( сервер ) HS EKS Тестирование Предостережения Советы Источники информации

Введение

Предполагаемые области применения

Архитектура

Преимущества

Примеры кода

Взаимодействие с Java

Применение

BA ( сервер )

HS

EKS

Тестирование

Предостережения

Советы

Источники информации

Архитектура Groovy выполняется на любой Java машине, начиная с 1.5. Он имеет полную интеграцию с Вашим кодом и для его запуска нужно всего несколько его библиотек.

Groovy выполняется на любой Java машине, начиная с 1.5.

Он имеет полную интеграцию с Вашим кодом и для его запуска нужно всего несколько его библиотек.

Содержание Введение Предполагаемые области применения Архитектура Преимущества Примеры кода Взаимодействие с Java Применение BA ( сервер ) HS EKS Тестирование Предостережения Советы Источники информации

Введение

Предполагаемые области применения

Архитектура

Преимущества

Примеры кода

Взаимодействие с Java

Применение

BA ( сервер )

HS

EKS

Тестирование

Предостережения

Советы

Источники информации

Преимущества Очень простой и мощный синтаксис Построчный вывод файла def number=0 new File ('test.groovy').eachLine { line -> number++ println "$number: $line" } Возможность писать «на Java » ( в случае, если только начинаете изучать язык ) Синтаксис языка, можно сказать, предназначен для работы с иерархичными и вложенными структурами данных ( XML, деревья данных)

Очень простой и мощный синтаксис

Построчный вывод файла

def number=0

new File ('test.groovy').eachLine { line ->

number++

println "$number: $line"

}

Возможность писать «на Java » ( в случае, если только начинаете изучать язык )

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

Преимущества Наличие всего, что есть в Java + ещё кое-чего…

Наличие всего, что есть в Java + ещё кое-чего…

Содержание Введение Предполагаемые области применения Архитектура Преимущества Примеры кода Взаимодействие с Java Применение BA ( сервер ) HS EKS Тестирование Предостережения Советы Источники информации

Введение

Предполагаемые области применения

Архитектура

Преимущества

Примеры кода

Взаимодействие с Java

Применение

BA ( сервер )

HS

EKS

Тестирование

Предостережения

Советы

Источники информации

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Примеры кода

Содержание Введение Предполагаемые области применения Архитектура Преимущества Примеры кода Взаимодействие с Java Применение BA ( сервер ) HS EKS Тестирование Предостережения Советы Источники информации

Введение

Предполагаемые области применения

Архитектура

Преимущества

Примеры кода

Взаимодействие с Java

Применение

BA ( сервер )

HS

EKS

Тестирование

Предостережения

Советы

Источники информации

Взаимодействие с Java Ваши классы Java полностью доступны из Groovy Groovy классы могут быть созданы и вызваны из кода Java Классы и скрипты Groovy компилируются в java классы перед выполнением Groovy и java имеют общие примитивные и базовые классы Можно полностью контролировать все параметры загрузчика классов Groovy и контролировать его работу

Ваши классы Java полностью доступны из Groovy

Groovy классы могут быть созданы и вызваны из кода Java

Классы и скрипты Groovy компилируются в java классы перед выполнением

Groovy и java имеют общие примитивные и базовые классы

Можно полностью контролировать все параметры загрузчика классов Groovy и контролировать его работу

Содержание Введение Предполагаемые области применения Архитектура Преимущества Примеры кода Взаимодействие с Java Применение BA ( сервер ) HS EKS Тестирование Предостережения Советы Источники информации

Введение

Предполагаемые области применения

Архитектура

Преимущества

Примеры кода

Взаимодействие с Java

Применение

BA ( сервер )

HS

EKS

Тестирование

Предостережения

Советы

Источники информации

Применение. BA ( сервер ) Вся валидация документов (проверка корректности заполнения) реализована на Groovy – ему передаются все необходимые параметры для проверка + «хвосты» для извлечения дополнительной информации. Для валидации используется серия скриптов – каждый проверяет свою специфику. Скрипты выполняются один за другим (в соответствии с лексическим порядком их имён), до обнаружения ошибки, либо до окончания списка – в этом случае документ считается прошедшим валидацию.

Вся валидация документов (проверка корректности заполнения) реализована на Groovy – ему передаются все необходимые параметры для проверка + «хвосты» для извлечения дополнительной информации.

Для валидации используется серия скриптов – каждый проверяет свою специфику. Скрипты выполняются один за другим (в соответствии с лексическим порядком их имён), до обнаружения ошибки, либо до окончания списка – в этом случае документ считается прошедшим валидацию.

Применение. BA ( сервер ) Вся авторизация документов (проверка допустимости действий) реализована на Groovy – ему передаются все необходимые параметры для проверка + «хвосты» для извлечения дополнительной информации. Для авторизации используется дерево скриптов, сгруппированных по типам объектов, на которые проводится авторизация.

Вся авторизация документов (проверка допустимости действий) реализована на Groovy – ему передаются все необходимые параметры для проверка + «хвосты» для извлечения дополнительной информации.

Для авторизации используется дерево скриптов, сгруппированных по типам объектов, на которые проводится авторизация.

Применение. HS В модуле HS (hetero search) Groovy скрипты используются для извлечения и связывания информации, хранящейся в модуле поиска (где-то по одному идентификатору ищется пользователь, где-то - справочник). Так же они используются для пред подготовки данных для индексирования и реализации специфичных видов поиска – таких как атрибутивный (в этом случае проводится серия внутренних запросов, результаты которых объединяются).

В модуле HS (hetero search) Groovy скрипты используются для извлечения и связывания информации, хранящейся в модуле поиска (где-то по одному идентификатору ищется пользователь, где-то - справочник).

Так же они используются для пред подготовки данных для индексирования и реализации специфичных видов поиска – таких как атрибутивный (в этом случае проводится серия внутренних запросов, результаты которых объединяются).

Применение. EKS На Groovy в EKS (ядро докумкентооборота) реализована вся логика для каждого конкретного маршрута, типа документа и его жизненного цикла. Процесс настройки бизнес-логики заключается в изменении кода, который производит анализ входящих XML для создания инструкций для ядра (в том же XML). Создание ответов о состоянии документов, так же производится с помощью «настроенного» Groovy скрипта.

На Groovy в EKS (ядро докумкентооборота) реализована вся логика для каждого конкретного маршрута, типа документа и его жизненного цикла.

Процесс настройки бизнес-логики заключается в изменении кода, который производит анализ входящих XML для создания инструкций для ядра (в том же XML).

Создание ответов о состоянии документов, так же производится с помощью «настроенного» Groovy скрипта.

Содержание Введение Предполагаемые области применения Архитектура Преимущества Примеры кода Взаимодействие с Java Применение BA ( сервер ) HS EKS Тестирование Предостережения Советы Источники информации

Введение

Предполагаемые области применения

Архитектура

Преимущества

Примеры кода

Взаимодействие с Java

Применение

BA ( сервер )

HS

EKS

Тестирование

Предостережения

Советы

Источники информации

Тестирование Тестирование скриптов легко может производиться как самими скриптами, так и Java кодом Поддерживается JUnit 4 и все его аннотации (+ расширения типа сравнения массивов) Существуют все средства для реализации Mock’ ов (включая встроенные типа Expando- объекта и « as » - оператора) Сами скрипты могут быть использованы для тестирования Java кода (это у них может выполняться иногда быстрее и нагляднее, чем с использованием самого Java кода)

Тестирование скриптов легко может производиться как самими скриптами, так и Java кодом

Поддерживается JUnit 4 и все его аннотации (+ расширения типа сравнения массивов)

Существуют все средства для реализации Mock’ ов (включая встроенные типа Expando- объекта и « as » - оператора)

Сами скрипты могут быть использованы для тестирования Java кода (это у них может выполняться иногда быстрее и нагляднее, чем с использованием самого Java кода)

Содержание Введение Предполагаемые области применения Архитектура Преимущества Примеры кода Взаимодействие с Java Применение BA ( сервер ) HS EKS Тестирование Предостережения Советы Источники информации

Введение

Предполагаемые области применения

Архитектура

Преимущества

Примеры кода

Взаимодействие с Java

Применение

BA ( сервер )

HS

EKS

Тестирование

Предостережения

Советы

Источники информации

Предостережения Используйте Groovy там, где он полезен, а не там, где он может быть применён Не используйте излишнюю типизацию без необходимости (например объявлять тип переменных) – это может затруднить тестирование (подстановка Mock’ ов) и дальнейшую разработку (замена исполнителя) Следите за именами свойств и методами, которые вызываются ( object.size != object.size()) Изучите модель приведения типов в groovy и работу “closure” ( иначе однажды вместо массива с одним элементом к Вам придёт один элемент )

Используйте Groovy там, где он полезен, а не там, где он может быть применён

Не используйте излишнюю типизацию без необходимости (например объявлять тип переменных) – это может затруднить тестирование (подстановка Mock’ ов) и дальнейшую разработку (замена исполнителя)

Следите за именами свойств и методами, которые вызываются ( object.size != object.size())

Изучите модель приведения типов в groovy и работу “closure” ( иначе однажды вместо массива с одним элементом к Вам придёт один элемент )

Содержание Введение Предполагаемые области применения Архитектура Преимущества Примеры кода Взаимодействие с Java Применение BA ( сервер ) HS EKS Тестирование Предостережения Советы Источники информации

Введение

Предполагаемые области применения

Архитектура

Преимущества

Примеры кода

Взаимодействие с Java

Применение

BA ( сервер )

HS

EKS

Тестирование

Предостережения

Советы

Источники информации

Советы Используйте def вместо явных типов Используйте closure – это делает код более понятным и компактным Изучите GPath и другие средства извлечения информации из сложных объектов в Groovy – это сильно облегчит вашу работу Заглядывайте иногда в GTK – там содержится множество готовых методов для расширенных объектов Groovy

Используйте def вместо явных типов

Используйте closure – это делает код более понятным и компактным

Изучите GPath и другие средства извлечения информации из сложных объектов в Groovy – это сильно облегчит вашу работу

Заглядывайте иногда в GTK – там содержится множество готовых методов для расширенных объектов Groovy

Содержание Введение Предполагаемые области применения Архитектура Преимущества Примеры кода Взаимодействие с Java Применение BA ( сервер ) HS EKS Тестирование Предостережения Советы Источники информации

Введение

Предполагаемые области применения

Архитектура

Преимущества

Примеры кода

Взаимодействие с Java

Применение

BA ( сервер )

HS

EKS

Тестирование

Предостережения

Советы

Источники информации

Источники информации http://groovy.codehaus.org – on-line учебник по Groovy , свежая информация от разработчиков, форум , JIRA и последние версии Книга « Groovy in Action » - подходит для изучения с «нуля» (имеется в Confluence )

http://groovy.codehaus.org – on-line учебник по Groovy , свежая информация от разработчиков, форум , JIRA и последние версии

Книга « Groovy in Action » - подходит для изучения с «нуля» (имеется в Confluence )

Add a comment

Related presentations

Related pages

Скриптовой язык Groovy и его ...

Скриптовой язык Groovy и его применение в рамках разработки ПО. Скриптовой язык Groovy и ...
Read more

Шаблоны разработки ПО. Часть 2 ...

Скриптовой язык Groovy и его применение в рамках разработки ПО Скриптовой язык Groovy и ...
Read more

Сценарный язык — Википедия

ECMAScript и его ... более широкое применение, чем в качестве ... язык удобен в ...
Read more

Уроки русского языка ...

... разработки ... Урок разработан в рамках ... Урок русского языка по программе С.И ...
Read more

Пифагор (язык программирования ...

... и в перспективе планируется применение его ... Легалов А. И. Функциональный язык ...
Read more

Статья по теме: Организация ...

Этому способствует широкое применение в ... и его помощник ... и реализованных в рамках ...
Read more

Встраивание Lua для поддержки ...

Lua - небольшой скриптовой язык, ... даже в рамках ... и эффективно. В то ...
Read more

Формирование универсальных ...

... на уроке физики в рамках ... и расширить знания по ... о его создани ...
Read more