Оптимизация и ревью кода Scala#
- Ревью Scala-кода
- Метаописания и Структура Классов
- Конфигурация Модулей GSF
- Использование стандартных компонентов GSF
- Обработка Ошибок и Зависимости
- Требования к Структуре Scala-Кода
- Общие Принципы и Стиль Кода
- Безопасность и Надёжность
- Производительность
- Работа с API и ROP
- Работа с Базой Данных и SQL (Дополнения)
- Архитектура и Дизайн
- Работа с Атрибутами и Полями (Дополнения)
- Строки и JSON
- Специфика UI: AVI и Списочные Отображения
- Специфика UI: Кэширование, Логика и Настройки
- Отражение (Reflection)
- Специфика Модулей и Проектов
- Безопасность и Целостность Данных
- Соответствие Best Practices
- Критические ошибки
- Оптимизация Scala-кода
- View и withFilter для оптимизации коллекций
- Объединение условий фильтрации
- Отложенные вычисления с lazy val
- Выбор коллекции по сложности поиска
- Защита циклов от зацикливания
- Встроенные методы вместо эмуляции
- ArrayBuffer вместо ListBuffer
- exists вместо filter для проверки
- isEmpty вместо length для пустоты
- getVar вместо запросов к БД в CWA
- Избегание copyAro для экономии памяти
- Разделение логики Avi и Api
- Форматирование длинных выражений
- Общие trait для повторного использования
- Библиотеки общих методов для выборок
- Экстракторы вместо полей Tuple
- Безопасные методы коллекций с Option
- Строковая интерполяция вместо конкатенации
- StringBuilder для сложных строк
- Option для обработки null-значений
- Запросы вне вложенных циклов
- Параллельные вычисления для независимых задач
- Оптимизация работы с данными и кэшем
- Применение refreshByParent и refreshByKey
- Применение Session.commit, Session.commitWork, flush и flush(true)
- Загрузка множества объектов
- Предварительная прогрузку данных в кэш через batchIn и queryKeys
- Массовая обработка объектов через Btk_BulkProcessPkg().chunkedQuery
- При массовой регистрации объектов используйте Btk_BulkProcessPkg().findObjects.