diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b2c850..6cf7e45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,165 +1,3 @@ -# 2023.2.3-private – 2024-02-28 +# Актуальный список нововведений -* Исправлено некорректное предложение по использованию `Specification` для не Spring Data JPA репозиториев (ASPR-665) -* Теперь генерируемый код для Spring Security конфигурация не содержит устаревший метод `and()` (ASPR-613) -* Исправлено некорректное отображение элементов диалога во время создания Spring Security конфигурации (ASPR-599) -* Улучшена работа Amplicode Designer в части работы с JPA сущностями (ASPR-700) -* Исправлены `IndexNotReadyException` и `ClassNotFoundException` исключения, которые часто возникали во время работы с Docker Compose файлами (ADT-618 и ADT-576) - -Также были исправлены множество других багов и исключений, возникавших в ходе работы Amplicode. Всего было закрыто более 15 тикетов. - -# 2023.2.2-private – 2024-01-30 - -* Панель Amplicode Explorer теперь правильно работает в проектах JHipster (ASPR-626) -* Исправлена ошибка неправильной генерации конфигурации Spring Security (ASPR-660) -* Ошибка с неправильным отображением сущностей в панели Amplicode Explorer исправлена (ASPR-651) -* Исправлено исключение NullPointerException, возникающее при работе с объектами DTO (ASPR-702) -* Автодополнение для создания сервисов в docker-compose больше не предлагает существующие названия (ADT-575) -* Amplicode теперь автоматически указывает последнюю версию образа Elasticsearch при создании сервиса (ADT-555) -* Исправлено исключение StackOverflowError, возникающее при работе с JPQL запросами (ASPR-701) - -Также были исправлены множество других багов и исключений, возникавших в ходе работы Amplicode. Всего было закрыто более 15 тикетов. - -# 2023.2.1-private – 2024-01-15 - -* Для версии Spring Boot 3.2.0 и выше изменен путь к `JarLauncher` для генерируемых Dockerfile (ADT-571) -* Исправлена ошибка генерации сервиса Keycloak после вызова автодополнения (ADT-567) -* Исправлена ошибка с предложением образа pgAdmin для сервиса phpMyAdmin (ADT-572) -* Исправлены исключения `IndexNotReadyException`, `NullPointerException` и `IndexNotReadyException`, возникающие во время работы Amplicode (ADT-563, ADT-565, ASPR-595) -* Исправлено некорректное добавление аннотации `@Valid` к методам контроллеров (ASPR-608) -* Удалены излишне генерируемые комментарии для конфигурации Spring Security (ASPR-607) -* Теперь при генерации Spring Web тестов учитывается положение курсора с последующим автоматическим выбором соответствующего метода в окне генерации (ASPR-602) -* Исправлена некорректная генерация кода Spring Web тестов с использованием REST Template (ASPR-601) - -Также были исправлены множество других багов и исключений, возникавших в ходе работы Amplicode. Всего было закрыто более 20 тикетов. - -# 2023.2.0-private – 2023-12-20 - -## Spring Platform: -* Добавлена поддержка плагина ".env files support" (ASPR-375) -* Переработано окно добавления и настройки стартеров/библиотек (ASPR-365) -* Улучшена стабильность и удобство использования Amplicode Designer при работе со Spring Security (ASPR-140, ASPR-366 и ASPR-534) -* Добавлена возможность создания DB connection из существующего data source во время генерации скриптов миграции и создания JPA сущностей из таблиц базы данных (ASPR-179) -* Теперь можно просматривать доступные эндпоинты в трёх различных режимах: с группировкой по контроллерам, по пути и в плоском виде (ASPR-184) -* Добавлен quick-fix для добавления переменных окружения в `.properties` файлы (ASPR-449) -* Улучшена поддержка нового UI IntelliJ IDEA (ASPR-124, ASPR-125, ASPR-128, ASPR-138, ASPR-427, ASPR-428) -* Теперь классы, аннотированные `@FeignClient`, доступны для инжекции через Ghost Completion и Amplicode Designer (ASPR-491) - -## DevOps: -* Теперь можно создавать следующие docker compose сервисы используя интуитивно понятные диалоговые окна: - - Grafana (ADT-501) - - Keycloak (ADT-499) - - Kafka UI (ADT-534) - - Mongo Express (ADT-531) - - pgAdmin (ADT-529) - - phpMyAdmin (ADT-551) - - Hazelcast (ADT-502) - - Elasticsearch (ADT-498) -* Добавлено автодополнение переменных окружения в файлы docker compose (ADT-520 и ADT-522) -* Внедрена логика для предложения создания связанных сервисов (ADT-491) -* Теперь можно вызвать окно создания любого из сервисов, просто начав писать их название в файле docker compose (ADT-508) - -Также было исправлено множество ошибок и исключений, возникавших в процессе работы Amplicode. Всего было закрыто 80+ тикетов. - -# 2023.1.2-private – 2023-12-05 - -* Была поддержана версии IntelliJ IDEA 2022.3 (ASPR-504) -* Исправлена проблема с некорректной вставкой сгенерированного кода в текущую позицию курсора (ASPR-489) -* Исправлена ошибка в генерации конфигурации Spring Security (ASPR-501) -* Снижен приоритет контекстного действия "Show Inspector popup" для улучшения удобства использования (ASPR-496) -* Настройка правил доступа к эндпоинтам для двух и более ролей больше не вызывает `ClassCastException` (ASPR-509) -* Повышена стабильность панели Amplicode Designer при настройке Spring Security (ASPR-469) -* Переработан диалог создания Datasource (ASPR-293) - -Также были исправлены множество других багов и исключений, возникавших в ходе работы Amplicode. Всего было закрыто более 20 тикетов. - -# 2023.1.1-private – 2023-11-20 - -1) Была поддержана версия IntelliJ IDEA 2023.3 (ASPR-334) -2) Проблема с невозможностью запуска Spring Boot проектов с системой сборки Gradle устранена (ASPR-446) -3) Amplicode Explorer больше не сообщает об ошибках в Spring Data JPA конфигурациях в случае использования H2 в качестве базы данных (ASPR-459) -4) Если в проекте отсутствует Dockerfile, пустая секция "Other" в узле Docker больше не отображается (ADT-510) -5) Теперь корректно генерируются WebMvc тесты с использованием `TestRestTemplate` для методов с возвращаемым типом `Collection` (ASPR-447) -6) Конфигурация Kafka со значением `List` для класса сообщения теперь генерируется корректно (ASPR-299) -7) Для атрибутов, помеченных `@ElementCollection` и `@Audited`, теперь генерируется аудит-таблица (ASPR-403) -8) Для проектов на Java 16 и выше теперь используется более лаконичная конструкция `.toList()` вместо `collect(Collectors.toList())` при генерации кода (ASPR-468) - -Также было исправлено множество других багов и исключений, возникавших в ходе работы Amplicode. Всего было закрыто 30+ тикетов. - -# 2023.1.0-private – 2023-11-07 - -## Визуальные инструменты разработки - -* Панели Amplicode Explorer и Amplicode Designer – для исследования и анализа приложения в контексте используемых фреймворков -* Множество интуитивно понятных панелей для создания контроллеров, сервисов, сущностей, репозиториев, DTO и других артефактов -* Диалоговые окна для добавления и настройки новых фреймворков и библиотек - -## Умный редактор кода - -* Генерация и инжекция необходимых бинов налету -* Инспекции для обнаружения ошибок до их появления в runtime -* Постфиксные автодополнения - -## Тестирование - -* Генерация web MVC тестов -* Поддержка MockMVC и REST Template -* Возможность тестирования эндоинтов с учетом настроек Spring Security - -## Spring Core - -* Создание нового Spring Boot приложения -* Генерация Spring бинов (@Component, @Service, …) -* Поддержка application.properties/yaml файлов -* Делегация методов репозиториев/сервисов в другие сервисы и контроллеры - -## Spring Security - -* Подключение и настройка Spring Security (HTTP, JWT, OAuth 2.0, LDAP, …) -* Конфигурация доступа к эндпоинтам - -## Spring Web - -* Создание @RestController и @Controller бинов -* Генерация методов для обработки CRUD запросов -* Поддержка перехватчиков исключений (exception handlers) - -## Spring Data - -* Создание @Repository бинов -* Генерация методов и JPQL запросов -* Поддержка Spring Data Auditing и Hibernate Envers -* Преобразование методов Spring Data репозитория в @Query - -## Kafka - -* Подключение Kafka к проекту -* Генерация производителей и потребителей (producers and consumers) -* Создание Kafka темплейтов - -## Docker Compose - -* Генерация сервисов для большинства популярных баз данных -* Создание сервисов для брокеров сообщений (Kafka, RabbitMQ) -* Поддержка Prometheus и Zookeeper - -## Reverse Engineering - -* Создание JPA сущности на Java или Kotlin, отталкиваясь от существующей модели базы данных -* Возможность частичного изменения существующих JPA сущностей, отталкиваясь от изменений в таблицах -* Генерация всех типов ассоциативных связей, включая явно не объявленные на уровне базы данных: один-ко-многим и многие-ко-многим - -## Liquibase и Flyway - -* Генерация скриптов миграции Liquibase и Flyway -* Создание скриптов инициализации базы данных отталкиваясь от JPA модели или существующей базы данных -* Умное диалоговое окно для предварительного просмотра сгенерированных выражений -* Добавление скриптов в уже существующие файлы миграций -* Синхронизация JPA модели с базой данных прямо из стектрейса - -## DTO Generator - -* Создание DTO для любых POJO классов: JPA сущностей, MongoDB/Elasticsearch документов, и так далее -* Поддержка MapStruct и ModelMapper -* Синхронизация DTO и доменных объектов, связанных с ними: добавление/редактирование полей -* Создание JPA сущностей из DTO +Ознакомиться с актуальным списком нововведений можно тут: **[https://github.com/Amplicode/amplicode/README.md](https://github.com/Amplicode/amplicode/blob/main/README.md)** diff --git a/chapters/dto-generator/dto-generator.md b/chapters/dto-generator/dto-generator.md deleted file mode 100644 index d3aaafc..0000000 --- a/chapters/dto-generator/dto-generator.md +++ /dev/null @@ -1,494 +0,0 @@ ---- -title: Генератор DTO -weight: 1 ---- - -## Введение - -**DTO (Data Transfer Object)** – это объект, который передает данные между процессами. DTO для доменного объекта обычно -содержат подмножество атрибутов доменного объекта. Например, если вам нужно предоставить только несколько полей через -REST API, вы можете сопоставить доменный объект с DTO, содержащими только эти атрибуты, и сериализовать только их. В -основном, DTO позволяют отделить слой представления/бизнес-логики от слоя доступа к данным. - -[//]: # (//todo видео которое в JPA Buddy было про DTO) - -## Создание DTO из доменного объекта - -Amplicode предлагает создание DTO из доменных объектов с помощью визуального дизайнера. - -Для того чтобы открыть диалог создания DTO, воспользуйтесь одним из следующих вариантов: - -1. [Amplicode Explorer](todoaddlink) -> Кнопка "+" -> JPA -> DTO; -2. Project -> Правая кнопка мыши / (Cmd+N/Alt+Insert) -> New -> DTO; -3. Класс доменного объекта -> Editor Toolbar -> DTOs and Spring Data Projections -> Create DTO; -4. Класс доменного объекта –> Контекстное меню (Alt/⌥ + Enter) -> Create DTO; -5. Класс доменного объекта -> [Amplicode Designer](todoaddlink) -> Actions -> Create DTO; -6. Неразрешённая ссылка, которая соответствует правилам именования указанным в настройках [DTO](#dto) -> Контекстное - меню (Alt/⌥ + Enter) -> Create DTO; -7. Экземпляр доменного объекта -> [mapTo... постфикс](#умное-автодополнение-кода). - -[//]: # (//что думаете по поводу карусели с картинками для таких кейсов?) - -[//]: # (//картинка) - -### Базовые параметры - -Диалог создания DTO можно условно разделить на несколько частей. В верхней части можно настроить базовые параметры: - -1. Source root; -2. Имя пакета; -3. Доменный объект; -4. Имя DTO; -5. Помимо этого, существует возможность [создать MapStruct интерфейс](todoaddlink) для преобразования доменного объекта - в DTO и обратно. В случае, если библиотека еще не подключена к проекту, Amplicode предложит добавить её в один клик. - -[//]: # (//картинка) - -### Параметры генерации - -Amplicode предоставляет широкий набор опций, влияющих на генерацию DTO: - -1. Java record – Генерирует DTO как Java Record, обеспечивая краткое и неизменное представление DTO с автоматической - реализацией методов `equals()`, `hashCode()` и `toString()`. Опция доступна только для проектов с версией SDK >= 16; -2. All args constructor – Генерирует конструктор, который принимает аргументы для всех полей DTO; -3. `equals()` и `hashCode()` – Генерирует методы `equals()` и `hashCode()` для DTO на основе его полей; -4. `toString()` – Генерирует метод `toString()` для DTO, предоставляя строковое представление его полей; -5. Mutable – По умолчанию сгенерированные DTO являются неизменными с final-полями и без сеттеров. Если вам нужны - изменяемые DTO с изменяемыми полями и сеттерами, вы можете выбрать эту опцию. -6. Fluent setters – Эта опция доступна при выборе опции Mutable. Она позволяет сгенерированным сеттерам - возвращать `this` вместо `void`, что позволяет выполнять цепочку вызовов методов для нескольких сеттеров. -7. Ignore unknown properties for json – Применяет аннотацию `@JsonIgnoreProperties(ignoreUnknown = true)` к DTO, - позволяя ему игнорировать любые неизвестные свойства во время десериализации JSON. Данная опция доступна только при - наличии зависимости [Jackson Annotations](todoaddlink) в проекте. - -[//]: # (//картинка) - -### Master-detail панель выбора атрибутов - -Нижняя часть визуального дизайнера представляет собой master-detail панель выбора аттрибутов, которые будут включены в -DTO. При переключении между аргументами, интерфейс справа от списка аттрибутов изменяется, предоставляя необходимые -параметры. Например, в случае наличия библиотеки валидации, -отобразиться [список доступных валидаций](#поддержка-hibernate-validations). А в случае выбора ассоциативного аттрибута, -появиться возможность создания вложенных DTO. - -[//]: # (//картинка) - -#### Создание DTO для ассоциаций - -Доменные объекты могут ссылаться на другие доменные объекты через ассоциации, и Amplicode позволяет генерировать для них -DTO из того же окна. Просто выберите поле доменной сущности в дереве и затем выберите тип DTO. - -[//]: # (//картинка) - -Всего для выбора доступны следующие типы DTO: - -1. New Class - будет создан новый класс в отдельном файле; -2. New Nested Class - будет создан новый общедоступный статический вложенный класс; -3. Existing Class - вы можете выбрать существующий класс DTO, который уже существует в проекте; -4. Flat - все поля вложенного класса будут преобразованы в поля единственного сгенерированного DTO. Имена - сгенерированных полей будут формироваться путем объединения имени внутреннего класса с именами его полей. - -## Создание Projection из доменного объекта - -Amplicode предлагает создание Spring Data Projection из доменных объектов с помощью визуального дизайнера. - -Для того чтобы открыть диалог создания Spring Data Projection, воспользуйтесь одним из следующих вариантов: - -1. [Amplicode Explorer](todoaddlink) / [Amplicode Designer](todoaddlink) -> Кнопка "+" -> JPA -> Spring Data Projection; -2. Project -> Правая кнопка мыши / (Cmd+N/Alt+Insert) -> New -> Other -> Spring Data Projection; -3. Класс доменного объекта -> Editor Toolbar -> DTOs and Spring Data Projections -> Create Spring Data Projection; -4. Неразрешённая ссылка, которая соответствует правилам именования указанным в - настройках [Spring Data Projection](#spring-data-projection) -> Контекстное меню (Alt/⌥ + Enter) -> Create - Projection. - -[//]: # (//картинка) - -### Базовые параметры - -Диалог создания Spring Data Projection можно условно разделить на несколько частей. В верхней части можно настроить -базовые параметры: - -1. Source root; -2. Доменный объект; -3. Имя Spring Data Projection. - -### Master-detail панель выбора атрибутов - -Нижняя часть визуального дизайнера представляет собой master-detail панель выбора аттрибутов, которые будут включены в -Spring Data Projection. При переключении между аргументами, интерфейс снизу от списка аттрибутов изменяется, -предоставляя необходимые параметры. Например, в случае выбора ассоциативного аттрибута, появиться возможность создания -вложенных Spring Data Projection. - -[//]: # (//картинка) - -#### Создание Spring Data Projection для ассоциаций - -Доменные объекты могут ссылаться на другие доменные объекты через ассоциации, и Amplicode позволяет генерировать для них -Spring Data Projection из того же окна. Просто выберите поле доменной сущности в дереве и затем выберите тип Spring Data -Projection. - -[//]: # (//картинка) - -Всего для выбора доступны следующие типы DTO: - -1. New Class - будет создан новый класс в отдельном файле; -2. New Nested Class - будет создан новый общедоступный статический вложенный класс; -3. Existing Class - вы можете выбрать существующий класс DTO, который уже существует в проекте. - -## Создание JPA сущностей из DTO - -Amplicode предоставляет функцию "Create Entity from POJO", которая помогает создать JPA сущность из любого Java/Kotlin -класса. Эта возможность может быть полезной, если вы разрабатываете свое приложение, следуя подходу API-first: сначала -определяете DTO для API, а затем реализуйте модель данных. - -[//]: # (//видео) - -### Базовые параметры - -Диалог создания JPA сущностей из DTO можно условно разделить на несколько частей. В верхней части можно настроить -базовые параметры: - -1. Source root; -2. Имя пакета; -3. POJO класс; -4. Имя, которое будет установлено JPA сущности; -5. Родительская JPA сущность; -6. Помимо этого, существует возможность выбрать существующий или [создать новый MapStruct интерфейс](todoaddlink) для - преобразования JPA сущности в DTO и обратно. Данная функциональность доступна только при - наличии [MapStruct](#поддержка-mapstruct) зависимости. -7. Наконец, Amplicode предлагает создать новый атрибут который будут выступать в роли уникального идентификатора для JPA - сущности. Альтернативно, можно выбрать один или несколько аттрибутов для id из уже существующих. - -[//]: # (//картинка) - -### Master-detail панель выбора атрибутов - -Нижняя часть визуального дизайнера представляет собой master-detail панель выбора аттрибутов, которые будут включены в -JPA сущность. При переключении между аргументами, интерфейс справа от списка аттрибутов изменяется, предоставляя -необходимые параметры. Например, в случае наличия библиотеки валидации, -отобразиться [список доступных валидаций](#поддержка-hibernate-validations). А в случае выбора ассоциативного аттрибута, -появиться возможность настройки ассоциативных связей. - -[//]: # (//картинка) - -#### Настройка ассоциативных аттрибутов - -Amplicode предоставляет широкие возможности настройки ассоциативных аттрибутов. Есть возможность выбрать тип аттрибута: - -1. Transient – в сущности будет сгенерировано поле с тем же типом, что и в POJO классе, аннотированное - аннотацией `@Transient`; -2. Create new Entity Class – в визуальном дизайнере появятся параметры необходимые - для [новой JPA сущности](создание JPA сущности); -3. Select Existing Entity Class – в визуальном дизайнере появится возможность выбора существующей сущности из - выпадающего списка. - -Помимо этого, при выборе "Create new Entity Class" и "Select Existing Entity Class", необходимо будет -настроить [параметры ассоциативной связи](создание ассоциации), которая будет сгенерирована в новой JPA сущности. - -[//]: # (//картинка) - -## Навигация между DTO/Spring Data Projection и доменным объектом - -Amplicode предоставляет удобную навигацию между доменными объектами и их DTO/Spring Data Projection. - -
-Правила связывания доменных объектов с их DTO/Spring Data Projection определяются в [настройках](настройки). -
- -Amplicode позволяет открывать связанные DTO/Spring Data Projection из: - -1. Editor Toolbar -> DTOs and Projections -2. Amplicode Explorer -> Persistence -> Доменный объект -> DTOs and Projections - -Также, есть возможность перехода из доменного объекта в связанные DTO/Spring Data Projection и обратно, -используя [gutter icons](https://www.jetbrains.com/help/idea/settings-gutter-icons.html). Навигация через gutter icon -доступна как к классам в целом, так и к конкретным полям. - -[//]: # (//картинка) - -## Синхронизация DTO/Spring Data Projection и доменного объекта - -Со временем доменный объект может изменяться, а DTO и Spring Data Projection зачастую могут изменяться вместе с ним. -Amplicode позволяет синхронизировать доменный объект с его DTO/Spring Data Projection. - -
-Правила связывания доменных объектов с их DTO/Spring Data Projection определяются в [настройках](настройки). -
- -### Изменение полей - -Amplicode расширяет возможности -стандартного [окна редактирования IntelliJ IDEA](https://www.jetbrains.com/help/idea/rename-refactorings.html), добавляя -значения полей из связанных DTO/Spring Data Projection. - -[//]: # (//картинка) - -### Добавление полей - -#### Из доменного объекта в DTO/Spring Data Projection - -Amplicode позволяет добавить аттрибуты из доменного объекта в одну или несколько связанных с ним DTO/Spring Data -Projection. Диалог добавления аттрибутов доступен из доменного объекта в DTO/Spring Data Projection доступен: - -1. В контекстном меню для каждого из аттрибутов; -2. Editor Toolbar -> DTOs and Projections -> Add attributes to DTO; - -[//]: # (//картинка) - -Для добавления аттрибутов в открытую на данный момент DTO/Spring Data Projection, вызовите "Generate menu" и выберите -действие "Add attributes from entity". - -[//]: # (//картинка) - -Кроме того, Amplicode позволяет сгенерировать недостающие поля используя автодополнение. Просто начните печатать -название поле, которое есть в доменном объекте и выберите подходящий вариант из выпадающего списка. - -[//]: # (//картинка) - -#### В доменный объект из DTO/Spring Data Projection - -Также, есть возможность добавить аттрибуты в доменный объект из связанных DTO/Spring Data Projection. Диалог добавления -аттрибутов доступен из DTO/Spring Data Projection в доменный объект доступен: - -1. Generate menu -> Entity attribute(s) from DTO; -2. Amplicode Designer -> Amplicode Palette -> Attributes -> From DTO; -3. Editor Toolbar -> Attributes -> From DTO. - -[//]: # (//картинка) - -## Поддержка MapStruct - -
-Описанная ниже функциональность доступна только при наличии подключенной к проекту библиотеки MapStruct. -
- -[//]: # (//видео) - -Amplicode позволяет сгенерировать MapStruct интерфейс через: - -1. Amplicode Explorer -> Persistence -> Entity -> Правая кнопка мыши -> MapStruct Interface; -2. Project -> Правая кнопка мыши / (Cmd+N/Alt+Insert) -> New -> Other -> MapStruct Interface; -3. Диалог создания DTO -> MapStruct interface; -4. Диалог создания доменных объектов из DTO -> MapStruct interface; -5. Диалог делегирования методов -> Method Parameters / Return Options. - -[//]: # (//картинки) - -В диалоге создания MapStruct интерфейса можно настроить следующие параметры: - -1. Доменный объект; -2. DTO класс; -3. Имя для интерфейса который будет сгенерирован; -4. Имя пакета. - -[//]: # (//картинка) - -По умолчанию, в MapStruct интерфейсе будут сгенерированы сигнатуры методов для преобразования DTO в доменный объект и -обратно, а также для частичного обновления. Например: - -[//]: # (//пример) - -### Генерация методов - -Amplicode предоставляет возможностей создания отдельных методов для существующего MapStruct интерфейса. Диалог создания -MapStruct методов можно вызвать открыв "Generate Menu" (Cmd+N/Alt+Insert) и выбрав пункт "Mapper Methods...". - -[//]: # (//картинка) - -### Использование дженерик MapStruct интерфейса - -MapStruct позволяет объявлять дженерик интерфейсы. Например: - -```java -public interface EntityMapper { - E toEntity(D dto); - - D toDto(E entity); - - List toEntity(List dtoList); - - List toDto(List entityList); -} -``` - -Такой MapStruct интерфейса удобно использовать в качестве родительского для всех остальных интерфейсов, чтобы сохранить -их лаконичность. В случае обнаружения подобного дженерик интерфейса в проекте, Amplicode расширит окно создания -MapStruct интерфейса новой опцией – "Parent interface". - -[//]: # (//картинка) - -В результате, Amplicode сгенерирует MapStruct интерфейс с ключевым словом `extends` и указанием выбранных типов для -преобразования. Например: - -```java - -@Mapper(componentModel = "spring") -public interface UserMapper extends EntityMapper { -} -``` - -Если же для преобразования будут требоваться дополнительные методы, Amplicode не забудет их сгенерировать. Например, -метод для связывания дочерних объектов: - -```java - -@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE, componentModel = "spring") -public interface ProjectMapper extends EntityMapper { - @AfterMapping - default void linkTasks(@MappingTarget Project project) { - project.getTasks().forEach(task -> task.setProject(project)); - } -} -``` - -## Поддержка ModelMapper - -
-Описанная ниже функциональность доступна только при наличии подключенной к проекту библиотеки ModelMapper. -
- -ModelMapper – одна из самых популярных библиотек для преобразования доменных объектов в DTO и обратно. Amplicode -предоставляет множество функций, которые значительно упрощают процесс подобного преобразования, включая: - -1. Генерацию кода для преобразования доменного объекта или списка доменных объектов в DTO и наоборот; -2. Создание сигнатур методов для написания логики преобразования вручную. - -[//]: # (//Видео) - -## Поддержка Lombok - -
-Описанная ниже функциональность доступна только при наличии подключенной к проекту библиотеки Lombok и включенной в [настройках](#настройки) опции "Use Lombok." - -Amplicode предоставляет поддержку Lombok в тех случаях, когда это возможно. Например, если вы выбираете опции "All args -constructor," "equals() and hashCode()," и "toString()" в диалоге создания DTO, Amplicode аннотирует сгенерированное DTO -аннотацией `@Value`. Используя аннотацию `@Value`, будет излишним явно отмечать поля модификаторами `private` и `final`. -По этой причине, Amplicode не будет их генерировать в данном случае. - -[//]: # (//картинка) - -Или же, если вам нужен изменяемый DTO объект, с теми же параметрами, что и в приведенном выше примере, Amplicode добавит -аннотации `@Data`, `@AllArgsConstructor` и `@NoArgsConstructor` вместо `@Value`. - -[//]: # (//картинка) - -## Поддержка Hibernate Validator - -
-Описанная ниже функциональность доступна только при наличии подключенной к проекту библиотеки Hibernate Validator. -
- -Hibernate Validator – библиотека для валидации данных. Hibernate Validator позволяет определять правила валидации с -использованием аннотаций. Amplicode, в свою очередь, позволяет применять правила валидации: - -1. В уже существующих классах используя [Amplicode Designer](ссылка); -2. На этапе [создания DTO из доменного объекта](#создание-dto-из-доменного-объекта); -3. При [синхронизации доменного объекта со связанным DTO](#синхронизация-dtospring-data-projection-и-доменного-объекта). - -[//]: # (//картинка) - -## Поддержка Blaze Persistence - -
-Описанная ниже функциональность доступна только при наличии подключенной к проекту библиотеки Blaze Persistence. -
- -Blaze-Persistence – это мощная библиотека для работы с данными. Она предлагает передовые методы взаимодействия с базами -данных, упрощая разработку доступа к данным и увеличивая производительность приложения. Одной из ключевых концепций -данной библиотеки является Entity View. Amplicode предлагает создание Entity View из доменных объектов с помощью -визуального дизайнера. - -[//]: # (//видео) - -### Базовые параметры - -Диалог создания Entity View можно условно разделить на несколько частей. В верхней части можно настроить базовые -параметры: - -1. Source root; -2. Имя пакета; -3. Родительская Entity View; -4. Доменный объект; -5. Имя Entity View. - -Также есть возможность указать необходимо ли пометить Entity View аннотациями `@CreatableEntityView` -и `@UpdatableEntityView` используя чекбоксы "Creatable" и "Updatable" соответственно. - -[//]: # (//картинка) - -### Master-detail панель выбора атрибутов - -Нижняя часть визуального дизайнера представляет собой master-detail панель выбора аттрибутов, которые будут включены в -Entity View. При переключении между аргументами, интерфейс справа от списка аттрибутов изменяется, предоставляя -необходимые параметры. Например, в случае выбора ассоциативного аттрибута, появиться возможность создания вложенных -Entity View. - -[//]: # (//картинка) - -#### Создание Entity View для ассоциаций - -Доменные объекты могут ссылаться на другие доменные объекты через ассоциации, и Amplicode позволяет генерировать для них -Entity View из того же окна. Просто выберите поле доменной сущности в дереве и затем выберите тип Entity View. - -[//]: # (//картинка) - -Всего для выбора доступны следующие типы Entity View: - -1. New Class - будет создан новый класс в отдельном файле; -2. New Nested Class - будет создан новый общедоступный статический вложенный класс; -3. Existing Class - вы можете выбрать существующую Entity View, которая уже существует в проекте; -4. Flat - все поля вложенного класса будут преобразованы в поля единственного сгенерированного Entity View. Имена - сгенерированных полей будут формироваться путем объединения имени внутреннего класса с именами его полей. - -## Настройки - -Каждый проект по-своему уникален. Amplicode понимает это и предоставляет широкий спектр настроек. - -### DTO - -//картинка - -В Preferences -> Tools -> Amplicode -> Data Access -> DTO Declaration вы можете настроить: - -1. Сериализуемый тип; -2. Постфикс имени класса, который будет использоваться при генерации DTO; -3. Использовать ли аннотации из библиотеки Lombok при генерации DTO; -4. Регулярное выражение для комментариев, который будут использованы для связывания доменного объекта с его DTO. Для - указания паттерна доменного объекта (Fully Qualified Name, FQN) в комментарии, используйте шаблон `(?.)`. - Например, если в данном поле указано значение `DTO for (?:the )?\{@link (?.*)\}`, будет распознан следующий - комментарий: `// DTO for {@link io.jpabuddy.demo.entities.Project} entity`. Описанная логика не работает, если поле - пустое. -5. Регулярное выражение для имени класса. Эта опция полезна, если вы следуете конвенции именования для DTO. Данная - настройка позволяет Amplicode ассоциировать DTO с соответствующим доменным объектом только по имени DTO. Вы можете - указать паттерн для простого имени класса доменного объекта, используя шаблон `(?.)`. Например, паттерн `(?.)Dto` - означает, что класс `MyEntityDto` будет считаться DTO для `MyEntity`. Описанная логика не работает, если поле пустое. -6. Комментарий к классу. Задает комментарий, который будет генерироваться над DTO при его создании. - -### Spring Data Projection - -![projection-declaration-settings.png](img/projection-declaration-settings.png) - -В Preferences -> Tools -> Amplicode -> Data Access -> Projection Declaration вы можете настроить: - -1. Постфикс имени класса, который будет использоваться при генерации Spring Projection; -2. Регулярное выражение для комментариев, который будут использованы для связывания доменного объекта с его Spring - Projection. Для указания паттерна доменного объекта (Fully Qualified Name, FQN) в комментарии, используйте - шаблон `(?.)`. Например, если в данном поле указано - значение `Projection for (?:the )?\{@link (?.*)\}`, будет распознан следующий - комментарий: `// Projection for {@link io.jpabuddy.demo.entities.Project} entity`. Описанная логика не работает, если - поле пустое. -3. Регулярное выражение для имени класса. Эта опция полезна, если вы следуете конвенции именования для Projection. - Данная настройка позволяет Amplicode ассоциировать Projection с соответствующим доменным объектом только по имени - Projection. Вы можете указать паттерн для простого имени класса доменного объекта, используя шаблон `(?.)`. Например, - паттерн `(?.)Projection` означает, что класс `MyEntityProjection` будет считаться Projection для `MyEntity`. - Описанная логика не работает, если поле пустое. -4. Комментарий к классу. Задает комментарий, который будет генерироваться над Projection при её создании. - -### MapStruct - -[//]: # (//картинка) - -Preferences -> Tools -> Amplicode -> Data Access -> Mapper Declaration вы можете настроить: - -1. Правила именования методов преобразования доменных объектов в DTO и обратно; -2. Стратегию именования методов преобразования коллекций доменных объектов в DTO и обратно. diff --git a/chapters/dto-generator/img/projection-declaration-settings.png b/chapters/dto-generator/img/projection-declaration-settings.png deleted file mode 100644 index 93ef59b..0000000 Binary files a/chapters/dto-generator/img/projection-declaration-settings.png and /dev/null differ diff --git a/chapters/installation-guide-intellij/img/ide-version.png b/chapters/installation-guide-intellij/img/ide-version.png new file mode 100644 index 0000000..ed28e54 Binary files /dev/null and b/chapters/installation-guide-intellij/img/ide-version.png differ diff --git a/chapters/installation-guide-intellij/img/ij-about.png b/chapters/installation-guide-intellij/img/ij-about.png new file mode 100644 index 0000000..6adfa98 Binary files /dev/null and b/chapters/installation-guide-intellij/img/ij-about.png differ diff --git a/chapters/installation-guide-intellij/img/ij-custom-pligin-repository.png b/chapters/installation-guide-intellij/img/ij-custom-pligin-repository.png new file mode 100644 index 0000000..c6db089 Binary files /dev/null and b/chapters/installation-guide-intellij/img/ij-custom-pligin-repository.png differ diff --git a/chapters/installation-guide-intellij/img/ij-enable-amplicode.png b/chapters/installation-guide-intellij/img/ij-enable-amplicode.png new file mode 100644 index 0000000..afe5c93 Binary files /dev/null and b/chapters/installation-guide-intellij/img/ij-enable-amplicode.png differ diff --git a/chapters/installation-guide-intellij/img/ij-install-plugin-from-disk.png b/chapters/installation-guide-intellij/img/ij-install-plugin-from-disk.png new file mode 100644 index 0000000..c2a6534 Binary files /dev/null and b/chapters/installation-guide-intellij/img/ij-install-plugin-from-disk.png differ diff --git a/chapters/installation-guide-intellij/img/ij-install.png b/chapters/installation-guide-intellij/img/ij-install.png new file mode 100644 index 0000000..8185a6e Binary files /dev/null and b/chapters/installation-guide-intellij/img/ij-install.png differ diff --git a/chapters/installation-guide-intellij/img/ij-manage-plugin-repositories.png b/chapters/installation-guide-intellij/img/ij-manage-plugin-repositories.png new file mode 100644 index 0000000..4bb150c Binary files /dev/null and b/chapters/installation-guide-intellij/img/ij-manage-plugin-repositories.png differ diff --git a/chapters/installation-guide-intellij/img/ij-plugin-installed.png b/chapters/installation-guide-intellij/img/ij-plugin-installed.png new file mode 100644 index 0000000..edf5fe7 Binary files /dev/null and b/chapters/installation-guide-intellij/img/ij-plugin-installed.png differ diff --git a/chapters/installation-guide-intellij/img/ij-project-configuration-dropdown.png b/chapters/installation-guide-intellij/img/ij-project-configuration-dropdown.png new file mode 100644 index 0000000..7583b08 Binary files /dev/null and b/chapters/installation-guide-intellij/img/ij-project-configuration-dropdown.png differ diff --git a/chapters/installation-guide-intellij/img/ij-project-configuration.png b/chapters/installation-guide-intellij/img/ij-project-configuration.png new file mode 100644 index 0000000..726be24 Binary files /dev/null and b/chapters/installation-guide-intellij/img/ij-project-configuration.png differ diff --git a/chapters/installation-guide-intellij/img/ij-restart.png b/chapters/installation-guide-intellij/img/ij-restart.png new file mode 100644 index 0000000..3229e53 Binary files /dev/null and b/chapters/installation-guide-intellij/img/ij-restart.png differ diff --git a/chapters/installation-guide-intellij/img/ij-settings-plugins.png b/chapters/installation-guide-intellij/img/ij-settings-plugins.png new file mode 100644 index 0000000..dbb7919 Binary files /dev/null and b/chapters/installation-guide-intellij/img/ij-settings-plugins.png differ diff --git a/chapters/installation-guide-intellij/installation-guide-intellij.md b/chapters/installation-guide-intellij/installation-guide-intellij.md new file mode 100644 index 0000000..14e5ab4 --- /dev/null +++ b/chapters/installation-guide-intellij/installation-guide-intellij.md @@ -0,0 +1,110 @@ +--- +title: Amplicode для IntelliJ IDEA / GigaIDE +weight: 0 +--- + +Amplicode для IntelliJ IDEA и GigaIDE включает в себя поддержку экосистемы Spring и связанных технологий, а также +предоставляет инструменты для работы с Docker и Docker Compose файлами. + +**Мы крайне рекомендуем ознакомиться со следующим видео, чтобы получить наиболее полное представление о возможностях +Amplicode, доступных в IntelliJ IDEA и GigaIDE.** + + + +## Рекомендуемый способ установки + +Для того чтобы установить Amplicode в IntelliJ IDEA или GigaIDE и автоматически получать обновления, необходимо: + +1. Открыть настройки IntelliJ IDEA или GigaIDE и перейти в секцию **Plugins** + ![settings-plugins.png](img/ij-settings-plugins.png) +2. Нажать на иконку шестерёнки и выбрать пункт **Manage Plugin Repositories** + ![manage-plugin-repositories.png](img/ij-manage-plugin-repositories.png) +3. В открывшемся окне вставить + ```java + https://amplicode.ru/marketplace + ``` + ![custom-pligin-repository.png](img/ij-custom-pligin-repository.png) + И нажать **ОК** +4. Ввести `Amplicode` в секции **Marketplace** и нажать **Install** + ![install.png](img/ij-install.png) +5. Перезапустить IDE + ![restart.png](img/ij-restart.png) + +## Как узнать версию IntelliJ IDEA / GigaIDE? + +1. Откройте IntelliJ IDEA или GigaIDE +2. В левом нижнем углу нажмите на иконку шестеренки и выберите пункт **About** +3. Самым крупным шрифтом будет обозначена версия вашей IDE + +![ide-version.png](img/ide-version.png) + +## Установка Amplicode вручную (через .zip файл) + +Для того чтобы установить Amplicode вручную, необходимо: + +1. Скачать архив с Amplicode для одной из поддерживаемых версий IntelliJ IDEA или GigaIDE (см. таблицы поддерживаемых + версий ниже) +2. Открыть настройки IntelliJ IDEA или GigaIDE и перейти в секцию **Plugins** + ![settings-plugins.png](img/ij-settings-plugins.png) +3. Нажать на иконку шестерёнки и выбрать пункт **Install Plugin from Disk...** + ![install-plugin-from-disk.png](img/ij-install-plugin-from-disk.png) +4. Выбрать файл с архивом Amplicode (**распаковывать архив не нужно**) и нажать **OK** +5. Перезапустить IDE + ![restart.png](img/ij-restart.png) + +## Поддерживаемые версии IntelliJ IDEA + +Актуальная версия Amplicode поддерживает три последние мажорные версии IntelliJ IDEA, указанные в таблице. Если вы +использовали Amplicode на более старой версии IntelliJ IDEA, мы рекомендуем обновить её. Новая функциональность +Amplicode не будет доступна в устаревших версиях IDE. + +| IntelliJ IDEA | Amplicode | +|----------------------------------------|---------------------------------------------------------------------------------------------------------------------------| +| 2025.2.X | Скачать | +| 2025.1.X | Скачать | +| 2024.3.X | Скачать | +| 2024.2.X | Скачать | +| 2024.1.X, 2023.2.X, 2022.3.X, 2022.2.X | [Поддержка устаревших версий IntelliJ IDEA](#поддержка-устаревших-версий-intellij-idea) | + +## Поддержка устаревших версий IntelliJ IDEA + +Акутальная версия Amplicode поддерживает +только [три последних мажорных версии IntelliJ IDEA](#поддерживаемые-версии-intellij-idea). Расширять этот диапазон +сложно — бэкпортинг фич на старые версии IDE требует много ресурсов, а большинство разработчиков обновляют среду +довольно быстро. + +Важно: все новые фичи, вышедшие после Amplicode 2024.1, в устаревших IDE недоступны. Поэтому мы крайне рекомендуем вам +рассмотреть переезд с устаревших версий IDE на актуальную. + +Если ваша команда пока не готова обновляться — свяжитесь с нами +через Telegram-чат +или [форму на сайте](https://amplicode.io/contacts/), и мы поможем вам спланировать переезд. + +Для перечисленных ниже версий IDE остаются доступными для использования старые версии Amplicode. + +| Устаревшая версия IntelliJ IDEA | Устаревшая версия Amplicode (без новой функциональности) | Актуальная версия Amplicode | +|---------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------| +| 2024.1.X | Скачать версию 2024.3.6 | Не поддерживается. Необходимо обновить IDE | +| 2023.2.X | Скачать версию 2024.1.6 | Не поддерживается. Необходимо обновить IDE | +| 2022.3.X | Скачать версию 2024.1.6 | Не поддерживается. Необходимо обновить IDE | +| 2022.2.X | Скачать версию 2024.1.6 | Не поддерживается. Необходимо обновить IDE | + +## Поддерживаемые версии GigaIDE + +| GigaIDE | Amplicode | +|----------|---------------------------------------------------------------------------------------------------------------------------| +| 2024.3.X | Скачать | +| 2024.2.X | Скачать | + +## Лицензионная политика Amplicode + +Подробнее про Amplicode PRO, триальную версию, специальные предложения и скидки читайте в разделе +[Лицензионная политика Amplicode](https://amplicode.ru/documentation/license-information/). + +## Связаться с командой Amplicode + +В случае если у вас возникли трудности на любом из этапов в процессе установки Amplicode или любые другие вопросы, +пожалуйста, напишите нам в: + +* Telegram-чат +* или на почту, через [форму на сайте](https://amplicode.io/contacts/) diff --git a/chapters/installation-guide-openide/installation-guide-openide.md b/chapters/installation-guide-openide/installation-guide-openide.md new file mode 100644 index 0000000..925d196 --- /dev/null +++ b/chapters/installation-guide-openide/installation-guide-openide.md @@ -0,0 +1,36 @@ +--- +title: Amplicode для OpenIDE +weight: 1 +--- + +Amplicode для **OpenIDE** включает +в себя поддержку экосистемы Spring и связанных технологий, а также предоставляет инструменты для работы с Docker и +Docker Compose файлами. + +**Мы рекомендуем использовать Amplicode c OpenIDE – быстрой, стабильной и открытой российской +средой разработки на базе IntelliJ IDEA.** + +Если вы используете OpenIDE, то никаких дополнительных действий для установки Amplicode не потребуется. + +30-дневная триальная версия Amplicode PRO будет автоматически активирована после открытия Spring проекта в OpenIDE. +После окончания пробного периода вы сможете продолжать использовать бесплатную функциональность или +приобрести лицензию и продолжить +пользоваться всеми возможностями Amplicode PRO. + +**Мы крайне рекомендуем ознакомиться со следующим видео, чтобы получить наиболее полное представление о возможностях +Amplicode, доступных в OpenIDE.** + + + +## Лицензионная политика Amplicode + +Подробнее про Amplicode PRO, триальную версию, специальные предложения и скидки читайте в разделе +[Лицензионная политика Amplicode](https://amplicode.ru/documentation/license-information/). + +## Связаться с командой Amplicode + +В случае если у вас возникли трудности на любом из этапов в процессе установки Amplicode или любые другие вопросы, +пожалуйста, напишите нам в: + +* Telegram-чат +* или на почту, через [форму на сайте](https://amplicode.io/contacts/) diff --git a/chapters/installation-guide-vs-code/img/vs-code-amplicode-explorer.png b/chapters/installation-guide-vs-code/img/vs-code-amplicode-explorer.png new file mode 100644 index 0000000..bbbc8df Binary files /dev/null and b/chapters/installation-guide-vs-code/img/vs-code-amplicode-explorer.png differ diff --git a/chapters/installation-guide-vs-code/img/vs-code-extension-manual-install.png b/chapters/installation-guide-vs-code/img/vs-code-extension-manual-install.png new file mode 100644 index 0000000..8c33b85 Binary files /dev/null and b/chapters/installation-guide-vs-code/img/vs-code-extension-manual-install.png differ diff --git a/chapters/installation-guide-vs-code/img/vs-code-extensions-panel.png b/chapters/installation-guide-vs-code/img/vs-code-extensions-panel.png new file mode 100644 index 0000000..5bf6e3a Binary files /dev/null and b/chapters/installation-guide-vs-code/img/vs-code-extensions-panel.png differ diff --git a/chapters/installation-guide-vs-code/img/vs-code-storybook-panel.png b/chapters/installation-guide-vs-code/img/vs-code-storybook-panel.png new file mode 100644 index 0000000..b2c721d Binary files /dev/null and b/chapters/installation-guide-vs-code/img/vs-code-storybook-panel.png differ diff --git a/chapters/installation-guide-vs-code/img/vs-code-type-script-refactoring.png b/chapters/installation-guide-vs-code/img/vs-code-type-script-refactoring.png new file mode 100644 index 0000000..346f7df Binary files /dev/null and b/chapters/installation-guide-vs-code/img/vs-code-type-script-refactoring.png differ diff --git a/chapters/installation-guide-vs-code/installation-guide-vs-code.md b/chapters/installation-guide-vs-code/installation-guide-vs-code.md new file mode 100644 index 0000000..4f58609 --- /dev/null +++ b/chapters/installation-guide-vs-code/installation-guide-vs-code.md @@ -0,0 +1,99 @@ +--- +title: Amplicode для VS Code +weight: 2 +--- + +**Мы крайне рекомендуем ознакомиться со следующим видео, чтобы получить наиболее полное представление о возможностях +Amplicode, доступных в VS Code.** + + + +Amplicode предоставляет множество полезных расширений для VS Code, облегающих разработку frontend. Все перечисленные +ниже расширения могут быть установлены в VS Code также, как и любые другие расширения. Подробную инструкцию по установке расширений +можно +найти +в документации VS Code. + +### Установка расширения через VS Code Extensions Panel + +Для установки расширения в VS Code воспользуйтесь панелью Extensions и введите в поиске **Amplicode**. После этого выберите расширение и нажмите кнопку **Install**. + +![vs-code-extensions-panel.png](img/vs-code-extensions-panel.png) + +### Ручная установка расширения через .VSIX + +Помимо установки расширения напрямую через VS Code Extensions Marketplace, вы можете выполнить установку вручную, предварительно скачав `.vsix` файл расширения. `.VSIX` файл можно скачать с помощью браузера, воспользовавшись приведенными ниже ссылками. Откройте страницу расширения и нажмите **Download Extension**. + +| Расширение | URL | +|----------------------|-------------------------------------------------------------------------------------------| +| Amplicode Frontend | https://marketplace.visualstudio.com/items?itemName=haulmont-tech-ltd.amplicode-frontend | +| Amplicode Fullstack | https://marketplace.visualstudio.com/items?itemName=haulmont-tech-ltd.amplicode-fullstack | + +Обратите внимание, что для установки [Amplicode Fullstack](#amplicode-fullstack-extension-pack) в VSCodium вам придется установить все входящие в его состав расширения вручную. + +Скаченный ранее файл расширения можно установить, воспользовавшись пунктом меню **Install from VSIX...** в панели Extensions. + +![vs-code-extension-manual-install.png](img/vs-code-extension-manual-install.png) + +### Amplicode Frontend + +**Amplicode Frontend** – расширение VS Code для быстрой и комфортной разработки административного интерфейса с использованием React Admin, Storybook и TypeScript. + +Backend разработчикам мы рекомендуем установить набор [Amplicode Fullstack](#amplicode-fullstack-extension-pack), который включает в себя дополнительные расширения для более удобной разработки frontend и подключает привычные IntelliJ-like сочетания горячих клавиш. + +Расширение предоставляет: + +- Интуитивно понятные визуальные компоненты для работы с React Admin элементами, такими как data providers, resource names, fields, и т.д., благодаря панели Amplicode Explorer. + ![vs-code-amplicode-explorer.png](img/vs-code-amplicode-explorer.png) +- Палитру для Storybook с предварительным просмотром компонентов прямо в VS Code и их генерацию с учетом контекста. + ![vs-code-storybook-panel.png](img/vs-code-storybook-panel.png) +- Интеллектуальный рефакторинг для TypeScript. + ![vs-code-type-script-refactoring.png](img/vs-code-type-script-refactoring.png) +- Возможность лёгкого переключения между VS Code и IntelliJ IDEA (в случае + использования [Amplicode для IntelliJ IDEA](https://amplicode.ru/documentation/installation-guide-intellij/)), которая облегчит жизнь не только + frontend-, но и fullstack-разработчикам на Spring Boot и React. + +### Amplicode Fullstack Extension Pack + +**Amplicode Fullstack Extension Pack** - это набор расширений для удобной разработки приложений на Spring Boot и React Admin. Мы +рекомендуем использовать именно это расширение, если вы бóльшую часть времени разрабатываете в IntelliJ IDEA и хотите +получить максимум удовольствия от работы над frontend частью вашего приложения в VS Code. + +**Amplicode Fullstack** включает в себя следующие расширения: + +- + Amplicode Frontend +- + IntelliJ IDEA Keybindings +- + GitLens — Git supercharged +- + ESLint +- + Prettier - Code formatter +- + Code Spell Checker +- + IntelliSense for CSS class names in HTML +- + JavaScript Booster +- + Simple React Snippets +- + VSCode React Refactor + +После установки Amplicode Fullstack вы сможете найти в VS Code визуальные панели от Amplicode, входящие в состав +расширения [Amplicode Frontend](#amplicode-frontend). + +## Лицензионная политика Amplicode + +Подробнее про Amplicode PRO, триальную версию, специальные предложения и скидки читайте в разделе +[Лицензионная политика Amplicode](https://amplicode.ru/documentation/license-information/). + +## Связаться с командой Amplicode + +В случае если у вас возникли трудности на любом из этапов в процессе установки Amplicode или любые другие вопросы, +пожалуйста, напишите нам в: + +* Telegram-чат +* или на почту, через [форму на сайте](https://amplicode.io/contacts/) diff --git a/chapters/installation-guide/img/about.png b/chapters/installation-guide/img/about.png deleted file mode 100644 index 0449bbb..0000000 Binary files a/chapters/installation-guide/img/about.png and /dev/null differ diff --git a/chapters/installation-guide/img/custom-pligin-repository.png b/chapters/installation-guide/img/custom-pligin-repository.png deleted file mode 100644 index 95531f8..0000000 Binary files a/chapters/installation-guide/img/custom-pligin-repository.png and /dev/null differ diff --git a/chapters/installation-guide/img/enable-amplicode.png b/chapters/installation-guide/img/enable-amplicode.png deleted file mode 100644 index 6fe81e2..0000000 Binary files a/chapters/installation-guide/img/enable-amplicode.png and /dev/null differ diff --git a/chapters/installation-guide/img/install-plugin-from-disk.png b/chapters/installation-guide/img/install-plugin-from-disk.png deleted file mode 100644 index 405bde7..0000000 Binary files a/chapters/installation-guide/img/install-plugin-from-disk.png and /dev/null differ diff --git a/chapters/installation-guide/img/install.png b/chapters/installation-guide/img/install.png deleted file mode 100644 index 661387e..0000000 Binary files a/chapters/installation-guide/img/install.png and /dev/null differ diff --git a/chapters/installation-guide/img/manage-plugin-repositories.png b/chapters/installation-guide/img/manage-plugin-repositories.png deleted file mode 100644 index d009129..0000000 Binary files a/chapters/installation-guide/img/manage-plugin-repositories.png and /dev/null differ diff --git a/chapters/installation-guide/img/plugin-installed.png b/chapters/installation-guide/img/plugin-installed.png deleted file mode 100644 index 7a175c2..0000000 Binary files a/chapters/installation-guide/img/plugin-installed.png and /dev/null differ diff --git a/chapters/installation-guide/img/project-configuration.png b/chapters/installation-guide/img/project-configuration.png deleted file mode 100644 index e442bc5..0000000 Binary files a/chapters/installation-guide/img/project-configuration.png and /dev/null differ diff --git a/chapters/installation-guide/img/restart.png b/chapters/installation-guide/img/restart.png deleted file mode 100644 index cee1058..0000000 Binary files a/chapters/installation-guide/img/restart.png and /dev/null differ diff --git a/chapters/installation-guide/img/settings-plugins.png b/chapters/installation-guide/img/settings-plugins.png deleted file mode 100644 index f866f12..0000000 Binary files a/chapters/installation-guide/img/settings-plugins.png and /dev/null differ diff --git a/chapters/installation-guide/installation-guide.md b/chapters/installation-guide/installation-guide.md deleted file mode 100644 index 5a7fd2a..0000000 --- a/chapters/installation-guide/installation-guide.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: Установка -weight: 0 ---- - -## Amplicode для IntelliJ IDEA - -Amplicode для IntelliJ IDEA включает в себя поддержку экосистемы Spring и связанных технологий, а также предоставляет инструменты для работы с Docker и Docker Compose. - -### Поддерживаемые версии IntelliJ IDEA - -Amplicode может быть установлен в IntelliJ IDEA одной из следующих версий: - -* 2022.3.X -* 2023.2.X -* 2023.3.X - -Для того чтобы посмотреть версию IntelliJ IDEA: -1. Откройте окно Find Action (Cmd+Shift+A для MacOS, Ctrl+Shift+A для Win/Linux) -2. Найдите и выберите действие _About_ - -![about.png](img/about.png) - -Если вы используете отличную от перечисленных выше версию IntelliJ IDEA и не можете обновиться на одну из поддерживаемых Amplicode, пожалуйста, [свяжитесь с нами](#связаться-с-командой-amplicode) и мы постараемся найти выход из сложившейся ситуации! - -### Рекомендуемый способ установки - -Для того чтобы установить Amplicode для IntelliJ IDEA и автоматически получать обновления, необходимо: - -1. Открыть настройки IntelliJ IDEA и перейти в секцию **Plugins** - ![settings-plugins.png](img/settings-plugins.png) -2. Нажать на иконку шестерёнки и выбрать пункт **Manage Plugin Repositories** - ![manage-plugin-repositories.png](img/manage-plugin-repositories.png) -3. В открывшемся окне вставить `https://storage.yandexcloud.net/amplicode-marketplace/friday/updatePlugins-friday.xml` - ![custom-pligin-repository.png](img/custom-pligin-repository.png) - И нажать **ОК** -4. Ввести `Amplicode` в секции **Marketplace** и нажать **Install** - ![install.png](img/install.png) -5. Перезапустить IntelliJ IDEA - ![restart.png](img/restart.png) - -### Установка Amplicode вручную (через .zip файл) - -Для того чтобы установить Amplicode вручную, необходимо: - -1. Скачать архив с Amplicode для одной из [поддерживаемых версий IntelliJ IDEA](#поддерживаемые-версии-intellij-idea) - - | IntelliJ IDEA | Amplicode | - |---------------|-----------------------------------------------------------------------------------------------------------------------------------| - | 2022.3.X | [2023.2.3-PRIVATE.zip](https://storage.yandexcloud.net/amplicode-marketplace/friday/Amplicode/amplicode-2023.2.3-223-PRIVATE.zip) | - | 2023.2.X | [2023.2.3-PRIVATE.zip](https://storage.yandexcloud.net/amplicode-marketplace/friday/Amplicode/amplicode-2023.2.3-232-PRIVATE.zip) | - | 2023.3.X | [2023.2.3-PRIVATE.zip](https://storage.yandexcloud.net/amplicode-marketplace/friday/Amplicode/amplicode-2023.2.3-233-PRIVATE.zip) | - -2. Открыть настройки IntelliJ IDEA и перейти в секцию **Plugins** - ![settings-plugins.png](img/settings-plugins.png) -3. Нажать на иконку шестерёнки и выбрать пункт **Install Plugin from Disk...** - ![install-plugin-from-disk.png](img/install-plugin-from-disk.png) -4. Выбрать файл с архивом Amplicode и нажать **OK** -5. Перезапустить IntelliJ IDEA - ![restart.png](img/restart.png) - -### Активация Amplicode - -После успешной установки, при первом открытие проекта на Spring Boot, Amplicode необходимо будет активировать, нажав на кнопку **Enable Amplicode**. - -![enable-amplicode.png](img/enable-amplicode.png) - -Если к проекту не подключен ни один из модулей Spring Data, Amplicode предложит настроить проект: - -![project-configuration.png](img/project-configuration.png) - -Для успешной активации Amplicode **необходимо** в один из модулей проекта добавить один из доступных **Spring Data** модулей. **Опционально**, можно улучшить любой из доступных модулей, подключив наиболее популярные стартеры/библиотеки которые помогут сделать разработку более комфортной и эффективной с расширенной поддержкой от Amplicode. - -После успешной активации, вы сможете увидеть панель **Amplicode Explorer** (1), а также контекстно-зависимые панели **Editor Toolbar** (2) и **Amplicode Designer** (3) для поддерживаемых файлов. - -![plugin-installed.png](img/plugin-installed.png) - -## Amplicode для VS Code - -Amplicode для VS Code включает в себя поддержку React и связанных технологий. На данный момент Amplicode для VS Code находится в фазе активной разработки и в ближайшее время станет доступен в EAP (Early Access Program) формате. Если вы хотите попробовать Amplicode для VS Code уже сейчас, пожалуйста, [свяжитесь с нами](#связаться-с-командой-amplicode). Мы будем рады предоставить вам - -## Связаться с командой Amplicode - -В случае, если у вас возникли трудности на любом из этапов в процессе установки Amplicode или любые другие вопросы, пожалуйста, напишите нам в: -* Telegram -* ВКонтакте -* или на почту, через [форму на сайте](https://amplicode.io/contacts/) diff --git a/chapters/license-information/img/key-activation.png b/chapters/license-information/img/key-activation.png new file mode 100644 index 0000000..8d703bc Binary files /dev/null and b/chapters/license-information/img/key-activation.png differ diff --git a/chapters/license-information/img/subscription-info.png b/chapters/license-information/img/subscription-info.png new file mode 100644 index 0000000..dd08147 Binary files /dev/null and b/chapters/license-information/img/subscription-info.png differ diff --git a/chapters/license-information/img/trial-activation.png b/chapters/license-information/img/trial-activation.png new file mode 100644 index 0000000..63037d8 Binary files /dev/null and b/chapters/license-information/img/trial-activation.png differ diff --git a/chapters/license-information/license-information.md b/chapters/license-information/license-information.md new file mode 100644 index 0000000..9f01107 --- /dev/null +++ b/chapters/license-information/license-information.md @@ -0,0 +1,93 @@ +--- +title: Лицензионная политика Amplicode +weight: 3 +--- + +## Amplicode и Amplicode PRO + +Amplicode доступен в двух версиях. Бесплатная версия предлагает удобную навигацию по бинам, инспекции, автодополнения, +а также панели Amplicode Explorer, Amplicode Designer и некоторые другие возможности, значительно повышая комфорт работы +со Spring. + +Для профессиональных разработчиков мы рекомендуем Amplicode PRO, в котором доступны все возможности продукта. +Amplicode PRO поднимает вашу продуктивность на новый уровень, позволяя существенно экономить самый ценный ресурс – ваше +время. + +Подробнее про Amplicode и Amplicode PRO читайте в +разделе Цены. + +## Получить информацию о лицензии Amplicode PRO + +1. Откройте проект на Spring +2. Откройте панель Amplicode Explorer +3. Выберите пункт верхнего меню "Subscription info" + +![subscription-info.png](img/subscription-info.png) + +## Триальная версия Amplicode PRO + +28-дневная триальная версия Amplicode PRO будет автоматически активирована после открытия Spring проекта в IDE. После +окончания пробного периода вы сможете продолжать использовать бесплатную функциональность или +приобрести лицензию и продолжить +пользоваться всеми возможностями Amplicode PRO. + +Если по каким-то причинам триальная версия Amplicode PRO не была активирована автоматически, вы можете сделать это +вручную. Для этого: + +0. Откройте Spring-проект в вашей IDE +1. Откройте панель **Amplicode Explorer** +2. Выберите действие **Subscription Information** в верхней части панели +3. Выберите **Пробный Период** +4. Заполните поле **Email** +5. Нажмите **Начать Пробный Период**. + +![trial-activation.png](img/trial-activation.png) + +## Активировать лицензию Amplicode PRO + +0. Откройте Spring-проект в вашей IDE +1. Откройте панель **Amplicode Explorer** +2. Выберите действие **Subscription Information** в верхней части панели +3. Выберите **Купленная Лицензия** +4. Вставьте лицензионный ключ Amplicode PRO + из личного кабинета в + текстовое поле **Лицензионный ключ** +5. Нажмите **Активировать**. + +![trial-activation.png](img/key-activation.png) + +## Лицензионная политика в отношении EAP-версий Amplicode + +Ниже вы можете найти таблицу с версиями Amplicode и датами, до которых лицензионная политика для соответствующих версий +Amplicode не изменится. + +| Версия Amplicode | Прекращение поддержки | Лицензионная политика | +|------------------|-----------------------|-----------------------| +| 2023.2.X-PRIVATE | 03.06.2024 | Бесплатно | +| 2024.1.X-EAP | 01.10.2024 | Бесплатно | +| 2024.2.X-EAP | 12.01.2025 | Бесплатно | +| 2024.3.X-EAP | 18.05.2025 | Бесплатно | + +_**Прекращение поддержки**: начиная с указанной даты, все возможности Amplicode станут недоступны до момента +обновления на более свежую версию. За месяц до указанной даты Amplicode начнёт напоминать о скором прекращении +поддержки._ + +## Специальные предложения и скидки + +Для некоторых групп пользователей мы предлагаем особые условия: + +* Amplicode является полностью бесплатным для студентов, и преподавателей профильных ИТ-вузов, а также обучающихся на + курсах по Java и Spring. Для бывших студентов мы предлагаем скидки до 50%. +* Активные баг-репортеры могут получить бесплатные лицензии в знак признания их вклада в развитие продукта. +* Малые ИТ-компании могут рассчитывать на скидки до 50%. +* Если вы готовы рассказать об опыте использования Amplicode в вашей + компании, напишите нам, и мы + найдем способ выразить вам благодарность. + +## Связаться с командой Amplicode + +В случае если у вас возникли трудности на любом из этапов в процессе установки Amplicode или любые другие вопросы, +пожалуйста, напишите нам в: + +* Telegram-чат +* или на почту, через [форму на сайте](https://amplicode.io/contacts/) diff --git a/utils/rus-to-latin.js b/utils/rus-to-latin.js new file mode 100644 index 0000000..6f36109 --- /dev/null +++ b/utils/rus-to-latin.js @@ -0,0 +1,35 @@ +//Используйте этот скрипт, чтобы узнать, как будет выглядеть ссылка на сайте на конкретную главу + +function generateHash(header) { + return String(header) + .replace(/#/g, '') + .trim() + .toLowerCase() + .replace(/\s+/g, '-') + .replace(/[^a-z\-а-я]/g, '-'); +} + +function rusToLatin(str) { + var ru = { + 'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', + 'е': 'e', 'ё': 'e', 'ж': 'j', 'з': 'z', 'и': 'i', + 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', 'о': 'o', + 'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u', + 'ф': 'f', 'х': 'h', 'ц': 'c', 'ч': 'ch', 'ш': 'sh', + 'щ': 'shch', 'ы': 'y', 'э': 'e', 'ю': 'u', 'я': 'ya' + }, n_str = []; + + str = str.replace(/[ъь]+/g, '').replace(/й/g, 'i'); + + for (var i = 0; i < str.length; ++i) { + n_str.push( + ru[str[i]] + || ru[str[i].toLowerCase()] == undefined && str[i] + || ru[str[i].toLowerCase()].toUpperCase() + ); + } + + return n_str.join(''); +} + +console.log(rusToLatin(generateHash("Связаться с командой Amplicode"))) \ No newline at end of file