ДЛЯ НОВИЧКОВНЕ ДЛЯ НОВИЧКОВНЕ ОБЯЗАТЕЛЬНОВ РАЗРАБОТКЕ
Разработчику
Архитектору
Чек-лист самопроверки
- Что такое Groovy и для каких задач он предназначен?
- Как Groovy связан с JVM и Java?
- Является ли любой Java-код корректным Groovy-кодом?
- Как запустить Groovy-скрипт из командной строки?
- Что такое GDK (Groovy Development Kit)?
- Как объявляются переменные в Groovy? Обязательны ли типы?
- Что такое ключевое слово
def и когда его использовать?
- Как работают строки: обычные, GString (
"Hello $name"), многострочные?
- Что такое безопасная навигация (
?.) и Elvis-оператор (?:)?
- Как работают списки и карты без явного объявления (
[], [:])?
- Какие есть способы итерации по коллекциям (
each, for, collect, findAll)?
- Что такое замыкания в Groovy и как они записываются?
- Как передавать замыкание как аргумент методу?
- Что такое оператор распространения (
*.method())?
- Как работает оператор диапазона (
1..10)?
- Как объявляется класс в Groovy?
- Обязательны ли геттеры и сеттеры? Как они генерируются?
- Что такое свойства (
properties) в Groovy?
- Как работают конструкторы по умолчанию с именованными параметрами?
- Что такое
@ToString, @EqualsAndHashCode, @TupleConstructor?
- Как работает наследование в Groovy?
- Поддерживает ли Groovy интерфейсы и абстрактные классы?
- Что такое трейты (
trait) и чем они отличаются от интерфейсов?
- Как работают исключения в Groovy?
- Можно ли опускать блок
catch или finally?
- Что такое метапрограммирование во время выполнения (
metaClass)?
- Как добавить метод к существующему классу динамически?
- Что такое категориальные методы (
use block)?
- Как работает статическое метапрограммирование (AST Transformations)?
- Что делают аннотации
@TypeChecked и @CompileStatic?
- Как обрабатывать JSON в Groovy (
JsonSlurper, JsonBuilder)?
- Как работать с XML (
XmlSlurper, MarkupBuilder)?
- Как выполнять SQL-запросы (
Sql.newInstance, eachRow)?
- Что такое Grape и как им управлять зависимости в скриптах?
- Как писать unit-тесты на Groovy (Spock, JUnit)?
- Что такое спецификации в Spock и как они структурированы (
given, when, then)?
- Как Groovy используется в Gradle (build.gradle)?
- Что такое делегация в замыканиях (
Closure.DELEGATE_FIRST)?
- Как создавать DSL с помощью Groovy?
- Как работают регулярные выражения (
~/pattern/, =~, ==~)?
- Что такое оператор «в» (
in) и как он работает с коллекциями?
- Как вызывать методы с именованными параметрами?
- Что такое мультиприсваивание (
(a, b) = [1, 2])?
- Как работают операторы сравнения (
== вызывает equals, а не is)?
- Как управлять видимостью методов (
public по умолчанию)?
- Как сериализовать объекты в Groovy?
- Как отлаживать Groovy-скрипты в IDE?
- Как компилировать Groovy в байт-код (
groovyc)?
- Как интегрировать Groovy-классы в Java-проект?
- Какие инструменты используются для анализа и форматирования Groovy-кода (CodeNarc, gpars)?