Презентация - Лекция №6 «Интерфейс пользователя»

Нужно больше вариантов? Смотреть похожие
Нажмите для полного просмотра
Лекция №6 «Интерфейс пользователя»
Распечатать
  • Уникальность: 84%
  • Слайдов: 43
  • Просмотров: 3014
  • Скачиваний: 1551
  • Размер: 3.62 MB
  • Онлайн: Да
  • Формат: ppt / pptx
В закладки
Оцени!
  Помогли? Поделись!

Слайды и текст этой онлайн презентации

Слайд 1

Лекция №6 «Интерфейс пользователя», слайд 1
Лекция №6 «Интерфейс пользователя» Москва 2019

Слайд 2

Лекция №6 «Интерфейс пользователя», слайд 2

Слайд 3

Лекция №6 «Интерфейс пользователя», слайд 3

Слайд 4

Лекция №6 «Интерфейс пользователя», слайд 4
Жизненный цикл активностей Отслеживать эти события и реагировать на них, закрывать базу данных, сохранять файлы. Состояние меняются автоматически в зависимости от действия пользователей. On Create – приложение сверстано, но не доступно для пользователя On Start – активность создано но пока не готово для запуска

Слайд 5

Лекция №6 «Интерфейс пользователя», слайд 5
Жизненный цикл активностей

Слайд 6

Лекция №6 «Интерфейс пользователя», слайд 6
Ресурсы Android приложения

Слайд 7

Лекция №6 «Интерфейс пользователя», слайд 7
Значения Все что добавляется в ресурсы, получает автоматический идентификатор. В папке layout храниться верстка активностей. Все отображения являются потомками класса View.

Слайд 8

Лекция №6 «Интерфейс пользователя», слайд 8
Относительный макет Парадигма MVC (Yii) , отображение дистанцировано от контроллера и данных

Слайд 9

Лекция №6 «Интерфейс пользователя», слайд 9
Табличный макет Linear Layout выравнивание по вертикали бессмысленно

Слайд 10

Лекция №6 «Интерфейс пользователя», слайд 10
Отступы

Слайд 11

Лекция №6 «Интерфейс пользователя», слайд 11
Отступы

Слайд 12

Лекция №6 «Интерфейс пользователя», слайд 12
Разметка Linear Layout Не больше трех Linear Layout использвоать вложенные. Альтернатива табличной верстки. MAIN – главная активность, LAUNCHER – активность которая запускается.

Слайд 13

Лекция №6 «Интерфейс пользователя», слайд 13
Разметка Linear Layout

Слайд 14

Лекция №6 «Интерфейс пользователя», слайд 14
Табличный дизайн Возможно программное добавление компонентов в табличный дизайн

Слайд 15

Лекция №6 «Интерфейс пользователя», слайд 15
Grid Layout Один из наиболее удобных макетов. Автоматически растягиваются компоненты

Слайд 16

Лекция №6 «Интерфейс пользователя», слайд 16
Вывод Log сообщений

Слайд 17

Лекция №6 «Интерфейс пользователя», слайд 17
Табличный дизайн Объединение ячеек

Слайд 18

Лекция №6 «Интерфейс пользователя», слайд 18
Frame Layout Для мультипликации, частой смены картинок используется Frame Layout Контейнер где нет выравнивания.

Слайд 19

Лекция №6 «Интерфейс пользователя», слайд 19
Cafe Order Для мультипликации, частой смены картинок используется Frame Layout

Слайд 20

Лекция №6 «Интерфейс пользователя», слайд 20
Cafe Order

Слайд 21

Лекция №6 «Интерфейс пользователя», слайд 21
Cafe Order

Слайд 22

Лекция №6 «Интерфейс пользователя», слайд 22

Слайд 23

Лекция №6 «Интерфейс пользователя», слайд 23

Слайд 24

Лекция №6 «Интерфейс пользователя», слайд 24
Признаки «хорошего» кода Хороший код – это самодокументируемый код, плохой код к которому требуется инструкция. Как только к коду прилагается инструкция – это плохо. Эффект отложенной ошибки, если ошибка происходит в одном месте, но узнаем мы о ней в другом месте сильно после. С этим надо бороться, чтобы ошибки видели в момент возникновения. С этим могут помочь свойства. Повторений кода поменьше. В том месте где есть ошибка мы сигнализируем об этом и предоставляем возможность программисту возможность понять где ошибка

Слайд 25

Лекция №6 «Интерфейс пользователя», слайд 25
Признаки «хорошего» кода Можно замаскировать ошибку. Но это плохая практика. Никогда не узнаю, что у меня ошибка в алгоритме. Лишаете возможность увидеть ошибку на другом уровне на уровне алгоритма. Хорошо защищенный класс, который страхует нас от возможных ошибок. Массив объектов – большие накладные расходы

Слайд 26

Лекция №6 «Интерфейс пользователя», слайд 26
NUnit В Юнит тестах у нас всегда есть фактически результат и ожидаемый результат ожидаемый результат обозначает как мы определяем правильное поведение системы Ожидаемый результат Ожидаемый результат - как мы определяем правильное поведение системы Фактический результат обозначает как система ведёт себя в реальности Наша задача сравнить ожидаемое и фактическое поведение

Слайд 27

Лекция №6 «Интерфейс пользователя», слайд 27
Тестировщики не делают unit тестов. Благодаря unit тестам вносить изменения намного проще Unit тест - это функция, который вызывает другую функцию и затем проверяет правильность конечного результата. Тестируемая система - это единица тестируемая Unit тестом.

Слайд 28

Лекция №6 «Интерфейс пользователя», слайд 28
Разработчики несут ответственность за свой код. Тестировщики не делают unit тестов. Благодаря unit тестам вносить изменения намного проще. Клятва программиста: 1. Я не напишу вредоносный код 2. Созданный мною код всегда будет моей лучшей работой 3. Я не допущу сознательной неисправности в ходе твоего поведения или структуры 4. Я буду часто выпускать небольшие версии, чтобы не мешать прогрессу остальных. 5. Я буду неустанно совершенствовать свои творения при каждой возможности . 6. Я всегда буду следить за тем , чтобы другие могли прикрыть меня а я мог прикрыть их. 7. Я не сделаю ничего что приведет к ухудшению я буду прилагать все усилия чтобы сохранять наибольшую продуктивность как собственную так и других 8. Я не буду давать обещание без уверенности в том, что смогу их выполнять 9. Я никогда не перестану учиться и совершенствовать свое ремесло Ответственность программиста

Слайд 29

Лекция №6 «Интерфейс пользователя», слайд 29
Ограничения NUbit Есть три главных логических ограничения. Эти ограничения представлены соответственно названными классами в нём ограничения многослойная модель на следующем уровне у нас могут быть но необязательно другие логические ограничения Второе утверждение здесь проверяет все ли элементы массива больше 0 в данном случае выражения ограничения будет вычислено как True поскольку все значения больше нуля

Слайд 30

Лекция №6 «Интерфейс пользователя», слайд 30
NUnit Пометим классы и методы тестирования специальными атрибутами чтобы их можно было обнаружить Атрибут

Слайд 31

Лекция №6 «Интерфейс пользователя», слайд 31
NUnit

Слайд 32

Лекция №6 «Интерфейс пользователя», слайд 32
Возможные правила именования Unit Имя функции должно состоять из трёх частей разделенных подчёркиванием. Первая часть: просто имя тестируемой функций или что-то более абстрактное, вторая: аргумент переданных тестируемые функцию или более абстрактной сценарий вроде invalid Stream Format, в целом отражает условия в которых будет тестироваться программная единица. третья часть: ожидаемое поведение в зависимости от результатов тестирования функции. Например, возвращает значение или меняет состояние (Set Number To Zero) или вызывает другой метод

Слайд 33

Лекция №6 «Интерфейс пользователя», слайд 33
Отладка в Unit Код, который пишется для того, чтобы прошел некоторый тест, по определению поддается тестированию. Более того, создается сильная мотивация для разбиения программы на модули, чтобы каждый мо дуль можно было тестировать независимо.

Слайд 34

Лекция №6 «Интерфейс пользователя», слайд 34
Ограничения NOT Ограничение Does чаще всего используются когда вы пишете утверждение относительно строк.

Слайд 35

Лекция №6 «Интерфейс пользователя», слайд 35
Утверждения Has Ограничение Has хотя бы одна строка содержит возвращает True Содержит ли значение 1,0 плюс, минус 0,05. Выражение будет вычислено как True

Слайд 36

Лекция №6 «Интерфейс пользователя», слайд 36
Утверждения Has Ограничение Has хотя бы одна строка содержит возвращает True Содержит ли значение 1,0 плюс, минус 0,05. Выражение будет вычислено как True

Слайд 37

Лекция №6 «Интерфейс пользователя», слайд 37
Полиморфизм полиморфизм – это различная реализация однотипных действий. Классическая фраза, которая коротко объясняет полиморфизм – «Один интерфейс, множество реализаций» Приведу примеры из жизни. В автомобилях есть рулевое колесо. Это колесо является интерфейсом между водителем и автомобилем, который позволяет поворачивать автомобиль. Механическая реализация руля у автомобилей может быть разная, но при этом результат получается одинаковым – колесо вправо – автомобиль вправо, и наоборот.

Слайд 38

Лекция №6 «Интерфейс пользователя», слайд 38
Полиморфизм Полиморфизм позволяет : писать более абстрактные, расширяемые программы, - один и тот же код используется для объектов разных классов, улучшается читабельность кода. избавляет разработчика от написания, чтения и отладки множества if-else/switch-case конструкций.

Слайд 39

Лекция №6 «Интерфейс пользователя», слайд 39
Пример программы Copy

Слайд 40

Лекция №6 «Интерфейс пользователя», слайд 40
Доработка №1 программы Copy public class Copier //не забудьте сбросить этот флаг public static bool pt Flag false; public static void Copy() int c; while((c (pt Flag ? Flash() . Read(): Keyboard. Read())) ! -1) Printer. Write(c); Если программа хочет вызвать Copy для чтения с флешки, то долж- на сначала установить для переменной pt Flag значение true. А после завершения программы Copy нужно сбросить этот флаг, иначе следующий обратившийся будет читать с флешки, а не с клавиатуры. Чтобы напомнить программистам о необходимости сбрасывать флаг, вы включили комментарий. ? : If (усл. Выр) блок№1 else блок №2

Слайд 41

Лекция №6 «Интерфейс пользователя», слайд 41
Доработка №1 программы Copy public class Copier //не забудьте сбросить этот флаг public static bool pt Flag false; public static void Copy() int c; while((c (pt Flag ? Flash() . Read(): Keyboard. Read())) ! -1) Printer. Write(c); Если программа хочет вызвать Copy для чтения с флешки, то долж- на сначала установить для переменной pt Flag значение true. А после завершения программы Copy нужно сбросить этот флаг, иначе следующий обратившийся будет читать с флешки, а не с клавиатуры. Чтобы напомнить программистам о необходимости сбрасывать флаг, вы включили комментарий. ? : If (усл. Выр) блок№1 else блок №2

Слайд 42

Лекция №6 «Интерфейс пользователя», слайд 42
Модификация программы Copy public class Copier //не забудьте сбросить эти флаги public static bool pt Flag false; public static bool pt Flag2 false; public static void Copy() В данном случае команда следовала принципу открытости/закрыто- сти. Он требует проектировать модули так, чтобы их можно было расширять без модификации. Столкнувшись с таким отсутствием эластичности, гибкие разработчики сразу поняли, что направление зависимости от модуля Copy к устройству ввода следует инвертировать, воспользовавшись принципом инверсии зависимости

Слайд 43

Лекция №6 «Интерфейс пользователя», слайд 43
Модификация программы Copy
^ Наверх
X
Благодарим за оценку!

Мы будем признательны, если Вы так же поделитесь этой презентацией со своими друзьями и подписчиками.