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