3. Внешние конфиги
Виды персистентности:
1. локальная – все параметры
методов, локальные переменные
блоков
2. динамическая – все, что
создано при помощи new, живет
до сборки мусора либо до delete
4. Внешние конфиги
Виды персистентности:
3. глобальная – все статические
поля классов и глобальные
переменные
4. дисковая – все, что сохранено в
файлы на диске – в БД или просто
в файловой системе
5. Внешние конфиги
Время связывания переменных:
1. при написании кода –
использование «магических
чисел»
2. при компиляции –
использование именованных
констант
6. Внешние конфиги
Время связывания переменных:
3. при загрузке программы –
чтение значения из внешнего
источника (конфиг-файл)
4. при создании объекта – любой
способ, но в момент создания
объекта
8. Внешние конфиги
Важно:
чем раньше время связывания,
тем ниже гибкость и ниже
сложность кода.
Обеспечивайте уровень гибкости,
удовлетворяющий требованиям,
но не больше!
12. Внешние конфиги
Цели создания внешних конфигов:
1. увеличить гибкость
2. избежать перекомпиляции
3. настроить под систему
4. перенести настройки в другую
систему
13. Сборка проекта
Сборка проекта – получение
из исходного кода и ресурсов
(конфиг-файлов, картинок,
стилей и т.д.) исполняемого
модуля
14. Сборка проекта
Примеры сборки:
1. создание файла .exe при
помощи утилиты make из файлов
.cpp, .h, .rc и т.д.
2. создание .class или .jar файлов
при помощи javac – только для
десктопных приложений
15. Сборка проекта
Сборка Java-программ:
1. Apache Ant – низкоуровневый
сборщик, все файлы внутри проекта,
может многое, стиль императивный
2. Apache Maven – использует
внешние репозитории кода, стиль
декларативный, поддерживает
версионность библиотек,
чувствителен к соглашениям