8. ХОРОШИЙ РАЗРАБОТЧИК:
• Постоянно читает книги и изучает новое
• Хорошо знает английский, говорит и читает на нём
• Умеет письменно излагать свои мысли
Friday, 2 March, 12
9. ТЕНДЕНЦИИ
• Уровень языков повышается
• Все возвращается на сервер
• Веб-разработка растёт
• Кроссплатформенность – всё еще мечта
Friday, 2 March, 12
10. КРУПНЫЕ СИСТЕМЫ
• Смесь разных языков и технологий
• Длительные сроки разработки
• Разные типы интерфейсов
• Сложная бизнес-логика на сервере
• Огромные объемы данных
• Огромная нагрузка
Friday, 2 March, 12
11. СЛОЖНОСТИ
• Координация: множество людей разных специализаций
• Требования: множество заинтересованных сторон
• Планирование
Friday, 2 March, 12
12. ПРОЦЕСС РАЗРАБОТКИ
• Анализ и сбор требований
• Формирование спецификаций
• Проектирование архитектуры
• Дизайн
• Реализация
• Тестирование
• Релиз
• Поддержка
Friday, 2 March, 12
13. ТРЕБОВАНИЕ
• Функциональные
• Что
система должна делать?
• Качественные
• Ограничения дизайна ради определенного качества
• Платформенные
• Ограничения в платформах/технологиях
• Процесса
• Ограничения процесса разработки
Friday, 2 March, 12
14. ФУНКЦИОНАЛЬНЫЕ
ТРЕБОВАНИЯ
• Какие данные система должна принимать?
• Какие данные система должна отдавать?
• Какие данные система должна хранить?
• Какие вычисления она должна производить?
• Каково время выполнения и синхронизация этих аспектов?
Friday, 2 March, 12
15. КАЧЕСТВЕННЫЕ
ТРЕБОВАНИЯ
• Время отклика
• Использование ресурсов
• Читаемость
• Доступность
• Восстановление после ошибки
Friday, 2 March, 12
16. ПРЕЦЕДЕНТ (USE CASE)
• Сценарий использования
• Спецификация последовательных действий системы
Friday, 2 March, 12
18. ПРОЦЕСС РАЗРАБОТКИ
• Анализ и сбор требований
• Формирование спецификаций
• Проектирование архитектуры
• Дизайн
• Реализация
• Тестирование
• Релиз
• Поддержка
Friday, 2 March, 12
19. СПЕЦИФИКАЦИЯ
• Формальное описание поведения системы
• Когда пользователь нажмет кнопку ОК, контроль должен
быть предыдущему окну, звук должен сигналировать об
удачном завершении процесса.
Friday, 2 March, 12
20. ПРОЦЕСС РАЗРАБОТКИ
• Анализ и сбор требований
• Формирование спецификаций
• Проектирование архитектуры
• Дизайн
• Реализация
• Тестирование
• Релиз
• Поддержка
Friday, 2 March, 12
21. АРХИТЕКТУРА
• Клиент-сервер
• p2p
• Монолитное приложение
• Front end & back end
• ...
Friday, 2 March, 12
22. ПРОЦЕСС РАЗРАБОТКИ
• Анализ и сбор требований
• Формирование спецификаций
• Проектирование архитектуры
• Дизайн
• Реализация
• Тестирование
• Релиз
• Поддержка
Friday, 2 March, 12
23. КОНЦЕПЦИИ ДИЗАЙНА ПО
• Абстракция
• Refinement (абстрактные модели -> структуры данных)
• Модульность
• Иерархия контроля
• Структурное разделение
• Структуры данных
• Скрытие информации
Friday, 2 March, 12
24. АСПЕКТЫ ДИЗАЙНА ПО
• Компактность
• Расширяемость
• Устойчивость к сбоям
• Удобство поддержки
• Модульность
• Удобство переиспользования
• Безопасность
• Юзабилити
Friday, 2 March, 12
25. ПРОЦЕСС РАЗРАБОТКИ
• Анализ и сбор требований
• Формирование спецификаций
• Проектирование архитектуры
• Дизайн
• Реализация
• Тестирование
• Релиз
• Поддержка
Friday, 2 March, 12
27. ПРОЦЕСС РАЗРАБОТКИ
• Анализ и сбор требований
• Формирование спецификаций
• Проектирование архитектуры
• Дизайн
• Реализация
• Тестирование
• Релиз
• Поддержка
Friday, 2 March, 12
28. ТЕСТИРОВАНИЕ
• до 1956 – ориентация на отладку
• 1957 – 1978 – ориентация на демонстрацию
• 1979 – 1982 – ориентация на сбой
• 1983 – 1987 – ориентация на оценку
• 1988 – 2000 – ориентация на предотвращение
Friday, 2 March, 12
30. СТОИМОСТЬ
ИСПРАВЛЕНИЯ ОШИБКИ
Friday, 2 March, 12
31. ПРОЦЕСС РАЗРАБОТКИ
• Анализ и сбор требований
• Формирование спецификаций
• Проектирование архитектуры
• Дизайн
• Реализация
• Тестирование
• Релиз
• Поддержка
Friday, 2 March, 12
35. AGILE MANIFESTO
• Люди и отношения > процессы и инструменты
• Работающий продукт > документация
• Взаимная работа с клиентами > контракты и бумаги
• Отзывчивость к изменениям > следования плану
Friday, 2 March, 12
36. ЦЕННОСТИ
• Совместная работа, парное программирование
• Довольные клиенты
• Принятие любых изменений на любых стадиях
• Постоянство качества и скорости разработки
• Постоянное тесное сотрудничество
• Личное общение с клиентами
• Простота
• Само-организующиеся команды
• Быстрая адаптация к изменениям
Friday, 2 March, 12
38. ОСНОВНЫЕ КОНЦЕПЦИИ
• Короткий цикл разработки
• Через тестирование и планирование
• Заказчик всегда рядом
• Парное программирование
• Непрерывный (не дискретный) процесс
• Непрерывная интеграция
• Рефакторинг
• Частые небольшие релизы
• Общее понимание
• Простота
• Стандарты кодирования
• Коллективное владение кодом
Friday, 2 March, 12
43. ФОРМИРОВАНИЕ
КОМАНДЫ
• 2-3-4 разработчика
• ~1 дизайнер/верстальщик/иллюстратор/креативщик
• Начало 10-недельного проекта (10 спринтов)
• Предположительно, веб-сайт / сервис
Friday, 2 March, 12
44. ФОРМИРОВАНИЕ
КОМАНДЫ
• freetonik@gmail.com
• Тема: команда разработчиков
• Содержание
• Резюме
• Ссылки на все ваши работы, примеры кода, всё-всё
• Всё, что посчитаете нужным
Friday, 2 March, 12