Стажировка-2014, занятие 3. Конфиги, сборка,...
Transcript of Стажировка-2014, занятие 3. Конфиги, сборка,...
Стажировка-2014
Внешние конфиги, сборка, автоматические тесты
Занятие 3
Стажировка-2014
Персистентность (время жизни) – длительность существования данных
Внешние конфиги
Стажировка-2014
Виды персистентности:1. локальная – все параметры методов, локальные переменные блоков2. динамическая – все, что создано при помощи new, живет до сборки мусора либо до delete
Внешние конфиги
Стажировка-2014
Виды персистентности:3. глобальная – все статические поля классов и глобальные переменные4. дисковая – все, что сохранено в файлы на диске – в БД или просто в файловой системе
Внешние конфиги
Стажировка-2014
Время связывания переменных:1. при написании кода –использование «магических чисел»2. при компиляции –использование именованных констант
Внешние конфиги
Стажировка-2014
Время связывания переменных:3. при загрузке программы –чтение значения из внешнего источника (config file)4. при создании объекта – любой способ, но в момент создания объекта
Внешние конфиги
Стажировка-2014
Время связывания переменных:5. по требованию – в любой момент работы программы
Внешние конфиги
Стажировка-2014
Важно:чем раньше время связывания, тем ниже гибкость и нижесложность кода.Обеспечивайте уровень гибкости, удовлетворяющий требованиям, но не больше!
Внешние конфиги
Стажировка-2014
Внешние конфиги в Java:1. файлы .properties2. файлы XML3. бинарные файлы (не для людей)
Внешние конфиги
Стажировка-2014
Файлы .properties:1. пары <ключ>=<значение>2. # - однострочный комментарий
Пример:tabSize = 4useSpaces = true
Внешние конфиги
Стажировка-2014
Файлы XML:<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd”><log4j:configuration xmlns:log4j=http://jakarta.apache.org/log4j/><appender name="console" class="org.apache.log4j.ConsoleAppender”>
<param name="Target" value="System.out"/><layout class="org.apache.log4j.PatternLayout”>
<param name="ConversionPattern" value="aa %p %c: %m%n"/></layout>
</appender><!--Корневой logger--><root>
<priority value ="debug" /><appender-ref ref="console" />
</root>
Внешние конфиги
Стажировка-2014
Цели создания внешних конфигов:1. увеличить гибкость2. избежать перекомпиляции3. настроить под систему4. перенести настройки в другую систему
Внешние конфиги
Стажировка-2014
Сборка проекта – получение из исходного кода и ресурсов (config файлов, картинок, стилей и т.д.) исполняемого модуля
Сборка проекта
Стажировка-2014
Примеры сборки:1. создание файла .exe при помощи утилиты make из файлов .cpp, .h, .rc и т.д.2. создание .class или .jar файлов при помощи javac – только для десктопных приложений
Сборка проекта
Стажировка-2014
Сборка Java-программ:1. Apache Ant – низкоуровневый сборщик, все файлы внутри проекта, может многое, стиль императивный2. Apache Maven – использует внешние репозитории кода, стиль декларативный, поддерживает версионность библиотек, чувствителен к соглашениям
Сборка проекта
Стажировка-2014
Сборка Java-программ:3. Gradle – используется код на Groovy, стиль императивный4. Ivy – дальнейшее развитие Ant
Сборка проекта
Стажировка-2014
Apache Ant:1. в корне проекта build.xml2. может использовать .properties файлы3. пример4. сайт
Сборка проекта
Стажировка-2014
Apache Maven:1. в корне проекта pom.xml2. построен на плагинах (plug-in)3. пример4. сайт
Сборка проекта
Стажировка-2014
Регрессионное тестирование– любой вид тестирования, позволяющий обнаружить ошибки в уже протестированном коде
Автотесты
Стажировка-2014
Модульное тестирование –автоматизированная проверка функций (методов) независимо от остального кода
Автотесты
Стажировка-2014
Модульный тест – любой код, который вызывает функцию (метод), передавая ей входные параметры, и проверяет постусловие и инвариант
Автотесты
Стажировка-2014
Основные принципы:1. независимость – глобальные объекты в одном состоянии до и после теста2. быстрота выполнения – иначе не будут часто запускать
Автотесты
Стажировка-2014
Преимущества использования:1. поощряются изменения и рефакторинг2. используются интерфейсы3. сокращается время на ручное регрессионное тестирование
Автотесты
Стажировка-2014
Инструментарий:1. библиотека xUnit от Кента Бека (JUnit для Java) 2. прогон тестов в IDE3. команды в Ant и настройки в Maven4. Continuous integration сервера (позже)
Автотесты
Стажировка-2014
Test driven development (разработка через тестирование):написание теста предшествует реализации, реализация постепенно совершенствуется, чтобы проходить новые тесты
Автотесты