3. Виды
персистентности:
1.
локальная
(стек)
–
все
параметры
методов,
локальные
переменные
блоков
2.
динамическая
(куча)
–
все,
что
создано
при
помощи
new,
живет
до
сборки
мусора
либо
до
delete
Спецкурс
ОмГУ-‐2014
Внешние
конфиги
4. Виды
персистентности:
3.
глобальная
(сегмент
данных)
–
все
статические
поля
классов
и
глобальные
переменные
4.
дисковая
–
все,
что
сохранено
в
файлы
на
диске
–
в
БД
или
просто
в
файловой
системе
Спецкурс
ОмГУ-‐2014
Внешние
конфиги
5. Время
связывания
переменных:
1.
при
написании
кода
–
использование
«магических
чисел»
2.
при
компиляции
–
использование
именованных
констант
Спецкурс
ОмГУ-‐2014
Внешние
конфиги
6. Время
связывания
переменных:
3.
при
загрузке
программы
–
чтение
значения
из
внешнего
источника
(config
file)
4.
при
создании
объекта
–
любой
способ,
но
в
момент
создания
объекта
Спецкурс
ОмГУ-‐2014
Внешние
конфиги
7. Время
связывания
переменных:
5.
по
требованию
–
в
любой
момент
работы
программы
Спецкурс
ОмГУ-‐2014
Внешние
конфиги
8. Важно:
чем
раньше
время
связывания,
тем
ниже
гибкость
и
ниже
сложность
кода.
Обеспечивайте
уровень
гибкости,
удовлетворяющий
требованиям,
но
не
больше!
Спецкурс
ОмГУ-‐2014
Внешние
конфиги
9. Спецкурс
ОмГУ-‐2014
Внешние
конфиги
Внешние
конфиги
в
Java:
1.
файлы
.properdes
2.
файлы
XML
3.
бинарные
файлы
(не
для
людей)
12. Цели
создания
внешних
конфигов:
1.
увеличить
гибкость
2.
избежать
перекомпиляции
3.
настроить
под
систему
4.
перенести
настройки
в
другую
систему
Спецкурс
ОмГУ-‐2014
Внешние
конфиги
13. Спецкурс
ОмГУ-‐2014
Сборка
проекта
Сборка
проекта
–
получение
из
исходного
кода
и
ресурсов
(config
файлов,
картинок,
стилей
и
т.д.)
исполняемого
модуля
14. Примеры
сборки:
1.
создание
файла
.exe
при
помощи
утилиты
make
из
файлов
.cpp,
.h,
.rc
и
т.д.
2.
создание
.class
или
.jar
файлов
при
помощи
javac
–
только
для
десктопных
приложений
Спецкурс
ОмГУ-‐2014
Сборка
проекта
15. Сборка
Java-‐программ:
1.
Apache
Ant
–
низкоуровневый
сборщик,
все
файлы
внутри
проекта,
может
многое,
стиль
императивный
2.
Apache
Maven
–
использует
внешние
репозитории
кода,
стиль
декларативный,
поддерживает
версионность
библиотек,
чувствителен
к
соглашениям
Спецкурс
ОмГУ-‐2014
Сборка
проекта
16. Сборка
Java-‐программ:
3.
Gradle
–
используется
код
на
Groovy,
стиль
императивный
4.
Ivy
–
дальнейшее
развитие
Ant
Спецкурс
ОмГУ-‐2014
Сборка
проекта
17. Apache
Ant:
1.
в
корне
проекта
build.xml
2.
может
использовать
.properdes
файлы
3.
пример
4.
сайт
Спецкурс
ОмГУ-‐2014
Сборка
проекта
18. Apache
Maven:
1.
в
корне
проекта
pom.xml
2.
построен
на
плагинах
(plug-‐in)
3.
пример
4.
сайт
Спецкурс
ОмГУ-‐2014
Сборка
проекта
19. Регрессионное
тестирование
–
любой
вид
тестирования,
позволяющий
обнаружить
ошибки
в
уже
протестированном
коде
Спецкурс
ОмГУ-‐2014
Автотесты
20. Модульное
тестирование
–
автоматизированная
проверка
функций
(методов)
независимо
от
остального
кода
Спецкурс
ОмГУ-‐2014
Автотесты
21. Спецкурс
ОмГУ-‐2014
Автотесты
Модульный
тест
–
любой
код,
который
вызывает
функцию
(метод),
передавая
ей
входные
параметры,
и
проверяет
постусловие
и
инвариант
22. Основные
принципы:
1.
независимость
–
глобальные
объекты
в
одном
состоянии
до
и
после
теста
2.
быстрота
выполнения
–
иначе
не
будут
часто
запускать
Спецкурс
ОмГУ-‐2014
Автотесты
23. Преимущества
использования:
1.
поощряются
изменения
и
рефакторинг
2.
используются
интерфейсы
3.
сокращается
время
на
ручное
регрессионное
тестирование
Спецкурс
ОмГУ-‐2014
Автотесты
24. Инструментарий:
1.
библиотека
xUnit
от
Кента
Бека
(JUnit
для
Java)
2.
прогон
тестов
в
IDE
3.
команды
в
Ant
и
настройки
в
Maven
4.
Condnuous
integradon
сервера
(позже)
Спецкурс
ОмГУ-‐2014
Автотесты
25. Test
driven
development
(разработка
через
тестирование):
написание
теста
предшествует
реализации,
реализация
постепенно
совершенствуется,
чтобы
проходить
новые
тесты
Спецкурс
ОмГУ-‐2014
Автотесты