3. Виды персистентности:
1. локальная – все параметры
методов, локальные переменные
блоков
2. динамическая – все, что
создано при помощи new, живет
до сборки мусора либо до delete
Внешние конфиги
4. Виды персистентности:
3. глобальная – все статические
поля классов и глобальные
переменные
4. дисковая – все, что сохранено в
файлы на диске – в БД или просто
в файловой системе
Внешние конфиги
5. Время связывания переменных:
1. при написании кода –
использование «магических
чисел»
2. при компиляции –
использование именованных
констант
Внешние конфиги
6. Время связывания переменных:
3. при загрузке программы –
чтение значения из внешнего
источника (конфиг-файл)
4. при создании объекта – любой
способ, но в момент создания
объекта
Внешние конфиги
8. Важно:
чем раньше время связывания,
тем ниже гибкость и ниже
сложность кода.
Обеспечивайте уровень гибкости,
удовлетворяющий требованиям,
но не больше!
Внешние конфиги
9. Внешние конфиги в Java:
1. файлы .properties
2. файлы XML
3. бинарные файлы (не для
людей)
Внешние конфиги
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 – использует
внешние репозитории кода, стиль
декларативный, поддерживает
версионность библиотек,
чувствителен к соглашениям
Сборка проекта
16. Apache Ant:
1. в корне проекта build.xml
2. может использовать .properties
файлы
3. пример
4. сайт
Сборка проекта
17. Apache Maven:
1. в корне проекта pom.xml
2. построен на плагинах (plug-in)
3. пример
4. сайт
Сборка проекта
19. Модульный тест – любой код,
который вызывает функцию
(метод), передавая ей входные
параметры, и проверяет
постусловие и инвариант
Автотесты
20. Основные принципы:
1. независимость – глобальные
объекты в одном состоянии до и
после теста
2. быстрота выполнения – иначе
не будут часто запускать
Автотесты
22. Инструментарий:
1. библиотека xUnit от Кента Бека
(JUnit для Java)
2. прогон тестов в IDE
3. команды в Ant и настройки в
Maven
4. Continuous integration сервера
(позже)
Автотесты
23. Test driven development
(разработка через
тестирование):
написание теста предшествует
реализации, реализация
постепенно совершенствуется,
чтобы проходить новые тесты
Автотесты