Прогрессивное программирование¶
Прогрессивное программирование (также прога, от англ. progressive programming) — подход к разработке программного обеспечения, при котором программист последовательно наращивает функциональность программы, начиная с минимально работающего варианта и постепенно добавляя новые возможности. В русскоязычном инженерном сленге «прога» — это также разговорное сокращение от слова «программа» (программный продукт, скрипт, утилита).
¶Два значения термина
¶«Прога» как разговорное название программы
В неформальной речи разработчиков слово «прога» является уменьшительно-просторечным эквивалентом слова «программа». Оно употребляется в значении:
- исполняемого файла или приложения;
- скрипта, написанного на языке программирования;
- утилиты, утилитарного инструмента;
- тестового задания или учебной программы (в контексте обучения программированию).
Термин не имеет строгого определения и используется преимущественно в устной речи. В официальной документации и учебной литературе вместо него применяется полное слово «программа».
¶Прогрессивное программирование
Прогрессивное программирование — методология, в которой разработка ведётся итеративно. Базовый принцип: каждая итерация заканчивается работающим программным продуктом, который можно запустить, протестировать и показать. Это отличает подход от каскадной модели, при которой программа становится исполняемой лишь на поздних этапах.
Ключевые черты метода:
- Инкрементность — новая функциональность добавляется порциями, каждая из которых расширяет предыдущую.
- Ранняя обратная связь — программа запускается с первых дней разработки.
- Рефакторинг — структура кода регулярно перерабатывается без изменения внешнего поведения.
- Тестирование с первого дня — пишутся автотесты, прогоняемые после каждого изменения.
¶История
Идеи инкрементной разработки появились в 1960-е годы в работах по итеративным жизненным циклам. Термин «прогрессивное программирование» закрепился в 2000-е годы в контексте agile-движения и методов XP (Extreme Programming) и Scrum. В русскоязычной практике слово «прога» как название подхода используется редко; чаще встречается как разговорное название самого программного продукта.
¶Пример прогрессивной разработки
Рассмотрим создание простого калькулятора:
- Итерация 1 — программа складывает два числа, введённых пользователем.
- Итерация 2 — добавляется вычитание, деление, умножение.
- Итерация 3 — появляется графический интерфейс.
- Итерация 4 — добавляется история вычислений, сохранение в файл.
- Итерация 5 — поддержка научных функций: корень, логарифм, степени.
На каждом шаге продукт остаётся рабочим и может быть выдан пользователю.
¶Прога в образовании
В учебных курсах по программированию «прогой» иногда называют контрольную или практическое задание, которое студент должен выполнить, написав программу. Типовое задание: «Написать прогу, сортирующую массив» означает «написать программу для сортировки массива».
¶См. также
- Программирование
- Итеративная разработка
- Agile-методологии
- Extreme Programming
¶Источники
- Мэйерс К. «Эффективное использование C++» — о постепенной доводке программного кода.
- Бек К. «Extreme Programming Explained» — итеративная разработка.
- Соммервилл И. «Инженерия программного обеспечения» — жизненные циклы разработки.
- Рунге А. В., Тропин И. Н. «Программирование на C++» — учебные задания.
