Введение# Предисловие На кого ориентировано руководство Программные средства для работы Обзор Архитектура системы Тонкий клиент Мобильный клиент Балансировщик нагрузки Кластер серверов приложений Решение Кластер баз данных Уровни разработки Принципиальная схема Основные понятия Класс Бизнес объект Пакет Выборка Модуль Приложение Сессия приложения Взаимодействие с данными Объектное взаимодействие Реляционные запросы Начало работы с фреймворком Требования к аппаратному обеспечению рабочего места разработчика Создание новой БД для проекта Создание пользователя Создание БД Подключение расширений Настройка рабочего места Развёртывание рабочего места под Windows Развёртывание рабочего места под Astra Linux Развёртывание рабочего места под Alt Linux Прикладной проект Структура проекта Модуль Структура каталогов модуля Зависимости Подключение внешних библиотек Первая сборка проекта Развертывание первоначальных данных Запуск приложения Регистрация Отладка приложений Отладка бизнес-логики Перекомпиляция кода без перезапуска сервера Отладка выборки Языки разработки Scala Обработка исключений Объявление исключений Выбрасывания исключения Перехват исключений Конвертация java исключений в прикладные исключения Jexl скрипты Обработка исключений в jexl Добавленные методы Работа с датами Работа с sql Работа в контексте выборки Контекстная справка Команды Написание библиотек PL/pgSQL Требования к масштабируемости Общие принципы наименования Конвенция для разработки на scala Сокращения Scala типы для работы с данными NLong NNumber NGid NDate NString NBigDecimal NDuration Наименование переменных для nullable типов и атрибутов Примеры задания параметров Наименования Scala-пакетов Правила наименования сущностей Наименование классов Наименование пакетов Наименование процедур и функций Наименование параметра Наименование временных таблиц Наименование выборок Наименование отображений Формат комментария в систему контроля версий Стандартные сокращения Odm (Object domain model) Orm (Object-Relational Mapper) Pojo Dpi Dvi Api Pkg Avi Dvm (Domain view markup) Avm (Application view markup) Ata (Application table) Aro (Application row) Rop (Row provider) Сессия приложения Сессия базы данных Рабочее пространство (workspace) Точки сохранения Пользовательский сеанс Пользовательская блокировка Логические блокировки Оптимистические блокировки Пессимистическая блокировка Бизнес логика Ключевые стратегии создания масштабируемого решения Api Пример API Pkg Взаимодействие с базой данных Объектные запросы Методы Объектный запрос c помощью выражений EclipseLink Объектный запрос большого списка Кеширование объектных запросов Кэширование по полю Кэширование объектных запросов Транзакционный индекс Реляционные запросы ASQL ATSQL ASelect Типичные ошибки Некорректное использование запросов на чтение Некорректное использование блокировок Некорректное формирование запроса Работа с большими данными Массовая вставка Массовый update\delete Размер транзакции