Академический Документы
Профессиональный Документы
Культура Документы
TP
TP
2. Agile-манифест
Мы постоянно открываем для себя более совершенные методы разработки программного
обеспечения, занимаясь разработкой непосредственно и помогая в этом другим. Благодаря
проделанной работе мы смогли осознать, что:
То есть, не отрицая важности того, что справа, мы всё-таки больше ценим то, что слева.
3. Scrum Framework (Роли, артефакты, мероприятия)
Роли:
Артефакты:
Мероприятия:
На пример Kanban доски выше виден прицнип ограничения незавершённой работы (WIP) путём
ограничения количества карточек в колонке, что вынуждает команду реагировать на любой затык
до того как это приведёт к проблемам.
Диаграмма выполнения работ в Kanban Method отображает Cycle Time (время на выполнение
одной карточки) и Work In Progress (количество незавершённой работы в момент времени).
5. Системы управления версиями. Subversion и Git
SVN – централизованная VCS
Базовые знания о процессе работы SVN: edit file -> svn add file -> svn commit
Базовые знания о процессе работы Git: edit file -> git add file -> git commit file -> git push
• git merge
• git rebase
• git cherry-pick
GitLab flow
Недостатки
• Такие списки могут занимать сотни страниц. Фактически невозможно прочитать такие
документы в целом и получить чёткое понимание системы.
• Такие списки требований перечисляют отдельные требования абстрактно, оторванно
друг от друга и от контекста использования (и возможно с противоречиями)
• Эти списки создают ложное чувство взаимопонимания между заинтересованными
лицами и разработчиками.
• Эти списки дают заинтересованным лицам ложное чувство защищённости, что
разработчики должны достигнуть определённых вещей. Однако, из-за природы этих
списков, они неизбежно упускают важные требования, которые будут выявлены позже
в процессе. Разработчики могут использовать новые требования для пересмотра
сроков и условий в их пользу.
Недостатки
• Сложно объяснить почему нужно время на разработку окончательного продукта
• Зачастую приходится использовать прототип в реальной системе из-за нежелания
начинать всё сначала
• Риск потратить слишком много времени дизайн не оставив запаса на разработку
системы
• Мало полезны для сложной обработки данных
• Один пользователь
• Одно действие
• Одна ценность
Примеры:
• Independent Независимая
• Negotiable Обсуждаемая
• Valuable Ценная
• Estimable Оцениваемая
• Small Маленькая
• Testable Тестируемая
10. Очки истории (Story Points)
Очки истории это еденица измерения задач, позволяющая сравнить две задачи по сложности
выполнения. Эта оценка не привязана ко времени (если набор задач на 100SP занимает 1000
часов это вовсе не значит что 1SP = 10 ч.) и к конкретному участнику команды
Идея в том, что бы от предсказаний «мы угадаем мелодию за 10 часов» перейти к статистике «мы
угадываем мелодии на 20-25SP каждые 2 недели, давайте построим прогноз из соображений
лучшего и худшего сценариев»:
Диаграммы SADT:
Пример диаграммы:
18. Порождающие шаблоны проектирования
Порождающие шаблоны проектирования абстрагируют процесс создания объектов и скрывают
детали создания конкретных объектов.
● Одиночка (Singleton)
● Фабричный метод
● Абстрактная фабрика
● Итератор
● Наблюдатель
● Команда
● Состояние
● Заместитель (Proxy)
● Адаптер (Wrapper)
● Фасад (Facade)
Существует несколько подходов реализации MVP, однако здесь и далее речь идёт о подходе
Passive View.
● Представление (View) — Отображение данных от модели.
● Модель — бизнес-логика приложения.
● Представитель (Presenter) — Изменение модели и обновление отображения данных.
Типы значений:
Целочисленные типы (byte, sbyte, short, ushort, int, uint, long, ulong)
Тип decimal
Тип bool
Тип char
Перечисления enum
Структуры (struct)
Ссылочные типы:
Тип object
Тип string
Классы (class)
Интерфейсы (interface)
Делегаты (delegate)
24. Конструкторы
a. Оператор new
Оператор new динамически выделяет память для объекта и возвращает
ссылку на эту область памяти. Таким образом переменная, определенная в
данной конструкции не является объектом, она лишь ссылается на объект,
который был физически создан в памяти компьютера оператором new
b. Конструктор по умолчанию
Каждый класс C# снабжается конструктором по умолчанию, который при
необходимости может быть переопределен. По определению
такой конструктор никогда не принимает аргументов. После размещения
нового объекта в памяти конструктор по умолчанию гарантирует
установку всех полей в соответствующие стандартные значения.
25. Деструкторы
e. Интерфейс Idisposable
Интерфейс IDisposable объявляет один единственный метод Dispose, в
котором при реализации интерфейса в классе должно происходить
освобождение неуправляемых ресурсов.
f. Конструкция using
g. «сборка мусора»
При использовании же ссылочных типов, например, объектов классов, для
них также будет отводиться место в стеке, только там будет храниться не
значение, а адрес на участок памяти в хипе или куче, в котором и будут
находиться сами значения данного объекта. И если объект класса
перестает использоваться, то при очистке стека ссылка на участок памяти
также очищается, однако это не приводит к немедленной очистке самого
участка памяти в куче. Впоследствии сборщик мусора (garbage collector)
увидит, что на данный участок памяти больше нет ссылок, и очистит его.
26. Методы
h. Вызов методов
Если переменные хранят некоторые значения, то методы содержат собой
набор инструкций, которые выполняют определенные действия. По сути
метод - это именованный блок кода, который выполняет некоторые
действия.
i. Передача параметров / аргументов в методы
По умолчанию, в языке программирования C#, аргументы в методы передаются
по значению! Но большинство типов, используемых программистами, являются
всё-таки ссылочными типами, и в результате, в метод попадает копия ссылки,
j. Использование параметров с модификаторами ref и out
Модификатор ref предназначен для указания того, что параметр метода
должен передаваться по ссылке а не по значению. Другими словами, если у
методу нужно принудительно передать аргумент по ссылке, то при
объявлении метода перед соответствующим формальным параметром
нужно указать модификатор ref.
28. Наследование
Предотвращение наследования
Предотвращение наследования с помощью ключевого слова sealed
Характеристики качества:
● Функциональная пригодность
● Уровень производительности
● Совместимость
● Удобство использования
● Надёжность
● Защищённость
● Сопровождаемость
● Переносимость (мобильность)
Уровни тестирования:
● System tests
● Integration tests
● Unit tests
Стратегии тестирования:
● Black box
● White box
● Gray box