1 added
1 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>Программирование - это…</a><ul><li><a>Разработка или программирование</a></li>
1
<ul><li><a>Программирование - это…</a><ul><li><a>Разработка или программирование</a></li>
2
</ul></li>
2
</ul></li>
3
<li><a>Термины - что может пригодиться</a></li>
3
<li><a>Термины - что может пригодиться</a></li>
4
<li><a>Жизненный цикл</a><ul><li><a>Особенности ЖЦ</a></li>
4
<li><a>Жизненный цикл</a><ul><li><a>Особенности ЖЦ</a></li>
5
</ul></li>
5
</ul></li>
6
<li><a>Типы методологий</a><ul><li><a>Процедурное</a></li>
6
<li><a>Типы методологий</a><ul><li><a>Процедурное</a></li>
7
<li><a>Объектно-ориентированное</a></li>
7
<li><a>Объектно-ориентированное</a></li>
8
<li><a>Функциональное</a></li>
8
<li><a>Функциональное</a></li>
9
<li><a>Логическое</a><ul><li><a>Нисходящий подход</a></li>
9
<li><a>Логическое</a><ul><li><a>Нисходящий подход</a></li>
10
<li><a>Снизу-вверх</a></li>
10
<li><a>Снизу-вверх</a></li>
11
</ul></li>
11
</ul></li>
12
</ul></li>
12
</ul></li>
13
<li><a>Основные модели разработки ПО</a><ul><li><a>"Водопад"</a><ul><li><a>Преимущества и недостатки</a></li>
13
<li><a>Основные модели разработки ПО</a><ul><li><a>"Водопад"</a><ul><li><a>Преимущества и недостатки</a></li>
14
</ul></li>
14
</ul></li>
15
<li><a>V-образ</a></li>
15
<li><a>V-образ</a></li>
16
<li><a>Инкрементный вариант</a></li>
16
<li><a>Инкрементный вариант</a></li>
17
<li><a>Итератив</a></li>
17
<li><a>Итератив</a></li>
18
<li><a>Спираль</a></li>
18
<li><a>Спираль</a></li>
19
</ul></li>
19
</ul></li>
20
<li><a>RAD</a></li>
20
<li><a>RAD</a></li>
21
</ul><p>Программирование - перспективное направление деятельности, которое активно развивается на рынке труда. Каждый разработчик может создавать утилиты и игры для широкой публики. Для этого необходимо знать<a>языки программирования</a>, а также разбираться в методологиях разработки. Это поможет оптимизировать весь процесс, достичь максимальных результатов с минимальными затратами.</p>
21
</ul><p>Программирование - перспективное направление деятельности, которое активно развивается на рынке труда. Каждый разработчик может создавать утилиты и игры для широкой публики. Для этого необходимо знать<a>языки программирования</a>, а также разбираться в методологиях разработки. Это поможет оптимизировать весь процесс, достичь максимальных результатов с минимальными затратами.</p>
22
<p>В данной статье будет рассказано о том, какие методологии программирования существуют. Каждый вариант рассмотрен с его преимуществами и недостатками. Также предложена разница между разработкой и программированием программного продукта, раскрыто понятие жизненного цикла. С "базой" по терминологии тоже предстоит ознакомиться. Предложенная информация будет одинаково полезна как новичкам, так и опытным создателям приложений.</p>
22
<p>В данной статье будет рассказано о том, какие методологии программирования существуют. Каждый вариант рассмотрен с его преимуществами и недостатками. Также предложена разница между разработкой и программированием программного продукта, раскрыто понятие жизненного цикла. С "базой" по терминологии тоже предстоит ознакомиться. Предложенная информация будет одинаково полезна как новичкам, так и опытным создателям приложений.</p>
23
<h2>Программирование - это…</h2>
23
<h2>Программирование - это…</h2>
24
<p>Программирование - процесс создания компьютерных, мобильных или консольных утилит. Базируется на применении так называемых языков программирования. На них получается исходных текст утилиты.</p>
24
<p>Программирование - процесс создания компьютерных, мобильных или консольных утилит. Базируется на применении так называемых языков программирования. На них получается исходных текст утилиты.</p>
25
<p>Сегодня существует более 300 ЯП, но знать их для успешного продвижения по карьерной лестнице вовсе не обязательно. Огромным спросом пользуются:</p>
25
<p>Сегодня существует более 300 ЯП, но знать их для успешного продвижения по карьерной лестнице вовсе не обязательно. Огромным спросом пользуются:</p>
26
<ul><li>Java;</li>
26
<ul><li>Java;</li>
27
<li>Си-семейство (C Sharp, C++, C);</li>
27
<li>Си-семейство (C Sharp, C++, C);</li>
28
<li>Python;</li>
28
<li>Python;</li>
29
<li>JavaScript.</li>
29
<li>JavaScript.</li>
30
</ul><p>Перед тем, как заучивать тот или иной язык, необходимо разобраться с методологиями создания программного обеспечения. А еще - определиться с нишей, для которой будет осуществляться коддинг приложений. Все это поможет сделать максимально правильный и грамотный выбор.</p>
30
</ul><p>Перед тем, как заучивать тот или иной язык, необходимо разобраться с методологиями создания программного обеспечения. А еще - определиться с нишей, для которой будет осуществляться коддинг приложений. Все это поможет сделать максимально правильный и грамотный выбор.</p>
31
<h3>Разработка или программирование</h3>
31
<h3>Разработка или программирование</h3>
32
<p>При рассмотрении темы, связанной с созданием программного обеспечения, часто встречаются два схожих между собой термина - "разработка" и "программирование". Отсюда произошли "разработчики" и "программисты".</p>
32
<p>При рассмотрении темы, связанной с созданием программного обеспечения, часто встречаются два схожих между собой термина - "разработка" и "программирование". Отсюда произошли "разработчики" и "программисты".</p>
33
<p>Многие называют соответствующими терминами одни и те же "вещи". Это не совсем правильно. Такой подход является заведомо проигрышным, если человек хочет работать в выбранном направлении.</p>
33
<p>Многие называют соответствующими терминами одни и те же "вещи". Это не совсем правильно. Такой подход является заведомо проигрышным, если человек хочет работать в выбранном направлении.</p>
34
<p>Программирование в узком смысле - это процедура написания решений для конкретной задачи. Программисты занимаются созданием кодов, которые необходимы при возникновении обозначенной проблемы. Код - это все, что их интересует.</p>
34
<p>Программирование в узком смысле - это процедура написания решений для конкретной задачи. Программисты занимаются созданием кодов, которые необходимы при возникновении обозначенной проблемы. Код - это все, что их интересует.</p>
35
<p>Разработка - это тоже создание приложений и программных проектов, но в более широком понятии. Здесь предстоит разбираться в:</p>
35
<p>Разработка - это тоже создание приложений и программных проектов, но в более широком понятии. Здесь предстоит разбираться в:</p>
36
<ul><li>архитектуре контента;</li>
36
<ul><li>архитектуре контента;</li>
37
<li>методологиях создания ПО;</li>
37
<li>методологиях создания ПО;</li>
38
<li>функциональных возможностях ЯП;</li>
38
<li>функциональных возможностях ЯП;</li>
39
<li><a>тестировании</a>;</li>
39
<li><a>тестировании</a>;</li>
40
<li>принципах релиза.</li>
40
<li>принципах релиза.</li>
41
</ul><p>Разработчики - это своеобразные мастера-универсалы. Они создают программное обеспечение "с нуля", полностью продумывая его концепции. Также отвечают за взаимодействие внутри команды, сопровождение утилиты вплоть до релизов и обновлений.</p>
41
</ul><p>Разработчики - это своеобразные мастера-универсалы. Они создают программное обеспечение "с нуля", полностью продумывая его концепции. Также отвечают за взаимодействие внутри команды, сопровождение утилиты вплоть до релизов и обновлений.</p>
42
<h2>Термины - что может пригодиться</h2>
42
<h2>Термины - что может пригодиться</h2>
43
<p>Во время процесса разработки и написания исходного кода программеру потребуются хорошие знания в области терминологии. Стоит обратить внимание на то, что, в зависимости от выбранного ЯП, будут меняться ключевые понятия, связанные с коддингом.</p>
43
<p>Во время процесса разработки и написания исходного кода программеру потребуются хорошие знания в области терминологии. Стоит обратить внимание на то, что, в зависимости от выбранного ЯП, будут меняться ключевые понятия, связанные с коддингом.</p>
44
<p>Вот "база", которая потребуется при любой разработке:</p>
44
<p>Вот "база", которая потребуется при любой разработке:</p>
45
<ol><li>Алгоритм - набор инструкций, а также указаний и принципов, которые помогают решать конкретную задачу/проблему.</li>
45
<ol><li>Алгоритм - набор инструкций, а также указаний и принципов, которые помогают решать конкретную задачу/проблему.</li>
46
<li>API - интерфейс прикладного программирования. Правила, структуры и<a>протоколы</a>, помогающие софту взаимодействовать друг с другом. Позволяет улучшать код и обеспечивает контактирование ПО с разного рода службами.</li>
46
<li>API - интерфейс прикладного программирования. Правила, структуры и<a>протоколы</a>, помогающие софту взаимодействовать друг с другом. Позволяет улучшать код и обеспечивает контактирование ПО с разного рода службами.</li>
47
<li>Переменная - именованная ячейка хранения в памяти. Может быть сохранена, изменена, а также считана или удалена.</li>
47
<li>Переменная - именованная ячейка хранения в памяти. Может быть сохранена, изменена, а также считана или удалена.</li>
48
<li>Аргумент - значение, передаваемое в команды, функции.</li>
48
<li>Аргумент - значение, передаваемое в команды, функции.</li>
49
<li>ASCII - американский стандартный код для обмена информацией. Присваивает буквам, цифрам и иным символам слоты, доступные в 8-битном коде.</li>
49
<li>ASCII - американский стандартный код для обмена информацией. Присваивает буквам, цифрам и иным символам слоты, доступные в 8-битном коде.</li>
50
<li>Символ - элементарная единица информации. Выражается одной цифирной или буквенной записью.</li>
50
<li>Символ - элементарная единица информации. Выражается одной цифирной или буквенной записью.</li>
51
<li>Объект - комбинация связанных между собой переменных, констант и иных структурных данных. Они могут быть выбраны и обработаны совместным образом</li>
51
<li>Объект - комбинация связанных между собой переменных, констант и иных структурных данных. Они могут быть выбраны и обработаны совместным образом</li>
52
<li>Класс - набор связанных объектов с общими свойствами.</li>
52
<li>Класс - набор связанных объектов с общими свойствами.</li>
53
<li>Компиляция - процедура получения исполняемой утилиты при помощи кода, прописанного на скомпилированном ЯП.</li>
53
<li>Компиляция - процедура получения исполняемой утилиты при помощи кода, прописанного на скомпилированном ЯП.</li>
54
<li>Константы - значения, которые ни при каких обстоятельствах не подлежат корректировке. Они сохраняют свое значение на протяжении всей работы ПО.</li>
54
<li>Константы - значения, которые ни при каких обстоятельствах не подлежат корректировке. Они сохраняют свое значение на протяжении всей работы ПО.</li>
55
<li>Тип данных - классификация информации определенного типа.</li>
55
<li>Тип данных - классификация информации определенного типа.</li>
56
<li>Массив - множество значений. Схожие типы данных, которые выбраны совместным образом.</li>
56
<li>Массив - множество значений. Схожие типы данных, которые выбраны совместным образом.</li>
57
<li>Фреймворк - готовый блок кода, необходимый для ускорения разработки. Программер может его корректировать для собственных утилит.</li>
57
<li>Фреймворк - готовый блок кода, необходимый для ускорения разработки. Программер может его корректировать для собственных утилит.</li>
58
<li>Итерация - один проход через набор операций, работающих с программным кодом.</li>
58
<li>Итерация - один проход через набор операций, работающих с программным кодом.</li>
59
<li>Ключевое слово -<a>в разработке это</a>зарезервированные при помощи ЯП специальные слова. Они помогают обозначать функции, инструменты или команды.</li>
59
<li>Ключевое слово -<a>в разработке это</a>зарезервированные при помощи ЯП специальные слова. Они помогают обозначать функции, инструменты или команды.</li>
60
<li>Операнд - объекты, которыми можно управлять через операторы.</li>
60
<li>Операнд - объекты, которыми можно управлять через операторы.</li>
61
<li>Оператор - элемент кодификации, управляющий операндами.</li>
61
<li>Оператор - элемент кодификации, управляющий операндами.</li>
62
<li>Указатель - переменная, содержащая адрес места в памяти.</li>
62
<li>Указатель - переменная, содержащая адрес места в памяти.</li>
63
<li>Пакет - организованный модуль связанных интерфейсов и классов.</li>
63
<li>Пакет - организованный модуль связанных интерфейсов и классов.</li>
64
</ol><p>Для разработки программного обеспечения также требуется понимание термина "синтаксис". Это - принципы и правила передачи операторов в пределах выбранного ЯП. То, как будет выглядеть исходный код во время работы программера.</p>
64
</ol><p>Для разработки программного обеспечения также требуется понимание термина "синтаксис". Это - принципы и правила передачи операторов в пределах выбранного ЯП. То, как будет выглядеть исходный код во время работы программера.</p>
65
<h2>Жизненный цикл</h2>
65
<h2>Жизненный цикл</h2>
66
<p>Несколько ключевых терминов и понятий изучить получилось. Перед тем, как рассматривать основные методики и модели разработки, необходимо разобраться с жизненным циклом утилиты.</p>
66
<p>Несколько ключевых терминов и понятий изучить получилось. Перед тем, как рассматривать основные методики и модели разработки, необходимо разобраться с жизненным циклом утилиты.</p>
67
<p>Это - этапы, через которые проходит ПО от начала создания до конца разработки, а также релиза. Обычно сюда включены следующие шаги:</p>
67
<p>Это - этапы, через которые проходит ПО от начала создания до конца разработки, а также релиза. Обычно сюда включены следующие шаги:</p>
68
<ul><li>подготовка;</li>
68
<ul><li>подготовка;</li>
69
<li>проектирование;</li>
69
<li>проектирование;</li>
70
<li>создание;</li>
70
<li>создание;</li>
71
<li>поддержка.</li>
71
<li>поддержка.</li>
72
</ul><p>Этапы могут дробиться на более мелкие и важные основные части, а также иметь различные названия.</p>
72
</ul><p>Этапы могут дробиться на более мелкие и важные основные части, а также иметь различные названия.</p>
73
<h3>Особенности ЖЦ</h3>
73
<h3>Особенности ЖЦ</h3>
74
<p>У всех программ есть жизненный<a>цикл</a>. Чтобы лучше понимать каждый из ключевых его этапов, стоит обратить внимание на наглядные примеры. В основе заложен интернет-магазин:</p>
74
<p>У всех программ есть жизненный<a>цикл</a>. Чтобы лучше понимать каждый из ключевых его этапов, стоит обратить внимание на наглядные примеры. В основе заложен интернет-магазин:</p>
75
<ol><li>Подготовка. Заказчик решает собственный интернет-магазин по продаже книг. Он проводит анализ того, какие подобные сервисы уже представлены потенциальной целевой аудитории. Далее происходит сбор данных о трафике и функциональности.</li>
75
<ol><li>Подготовка. Заказчик решает собственный интернет-магазин по продаже книг. Он проводит анализ того, какие подобные сервисы уже представлены потенциальной целевой аудитории. Далее происходит сбор данных о трафике и функциональности.</li>
76
<li>Проектирование. Потенциальный заказчик обращается к подрядчикам и обсуждает будущий софт со специалистами. В этот момент ведется разработка архитектуры и дизайна.</li>
76
<li>Проектирование. Потенциальный заказчик обращается к подрядчикам и обсуждает будущий софт со специалистами. В этот момент ведется разработка архитектуры и дизайна.</li>
77
<li>Создание. Происходит заключение договора с программерами. Сотрудники начали писать итоговую кодификацию, заниматься отрисовкой дизайна, составлять документацию, необходимую юзерам в будущем.</li>
77
<li>Создание. Происходит заключение договора с программерами. Сотрудники начали писать итоговую кодификацию, заниматься отрисовкой дизайна, составлять документацию, необходимую юзерам в будущем.</li>
78
<li>Поддержка. Подписан акт приемки-передачи. Подрядчики разместили магазин на "боевых" серверах. Пользователи стали его посещать и говорить об обнаруженных багах и неполадках, направляя обращения в службу поддержки. Программеры оперативно и быстро все исправляют.</li>
78
<li>Поддержка. Подписан акт приемки-передачи. Подрядчики разместили магазин на "боевых" серверах. Пользователи стали его посещать и говорить об обнаруженных багах и неполадках, направляя обращения в службу поддержки. Программеры оперативно и быстро все исправляют.</li>
79
</ol><p>Модель написания ПО - это описание того, какие стадии жизненного цикла проходит утилита. А еще - что происходит на каждом шаге.</p>
79
</ol><p>Модель написания ПО - это описание того, какие стадии жизненного цикла проходит утилита. А еще - что происходит на каждом шаге.</p>
80
<p>Методология - набор методов по управлению разработкой. Это - принципы, техники, а также правила, которые делают процедуру коддинга наиболее эффективной.</p>
80
<p>Методология - набор методов по управлению разработкой. Это - принципы, техники, а также правила, которые делают процедуру коддинга наиболее эффективной.</p>
81
<h2>Типы методологий</h2>
81
<h2>Типы методологий</h2>
82
<p>Каждую идею будущего проекта необходимо тщательно продумывать. От организации коддинга зависит не только скорость релиза, но и его успех. Перед выбором методологии стоит обратить внимание на их типы. От данного момента будет зависеть, какой ЯП использовать.</p>
82
<p>Каждую идею будущего проекта необходимо тщательно продумывать. От организации коддинга зависит не только скорость релиза, но и его успех. Перед выбором методологии стоит обратить внимание на их типы. От данного момента будет зависеть, какой ЯП использовать.</p>
83
<h3>Процедурное</h3>
83
<h3>Процедурное</h3>
84
<p>Проблема (задача) разбивается на отдельные блоки кода или процедуры. Каждая "часть" отвечает за выполнение конкретной операции. Все процедуры, взятые вместе - это итоговый контент. Подход годится для небольших проектов с низким уровнем сложности.</p>
84
<p>Проблема (задача) разбивается на отдельные блоки кода или процедуры. Каждая "часть" отвечает за выполнение конкретной операции. Все процедуры, взятые вместе - это итоговый контент. Подход годится для небольших проектов с низким уровнем сложности.</p>
85
<p>Пример - это калькуляторы. Сложение, вычитание и другие математические операции - это самостоятельные задачи.</p>
85
<p>Пример - это калькуляторы. Сложение, вычитание и другие математические операции - это самостоятельные задачи.</p>
86
<h3>Объектно-ориентированное</h3>
86
<h3>Объектно-ориентированное</h3>
87
<p>Решение будет вращаться около сущностей и объектов. Они - часть поставленной задачи. Решение будет иметь дело с тем, как осуществлять хранение информации, связанной с объектами. А еще - как соответствующие элементы ведут себя, взаимодействуют друг с другом для выдачи оптимальных решений.</p>
87
<p>Решение будет вращаться около сущностей и объектов. Они - часть поставленной задачи. Решение будет иметь дело с тем, как осуществлять хранение информации, связанной с объектами. А еще - как соответствующие элементы ведут себя, взаимодействуют друг с другом для выдачи оптимальных решений.</p>
88
<p>Пример - создание системы управления зарплатой. Там должны быть пункты "Сотрудники", "Структура выплат", "Правила отпуска" и так далее. Вокруг них строятся непосредственные решения.</p>
88
<p>Пример - создание системы управления зарплатой. Там должны быть пункты "Сотрудники", "Структура выплат", "Правила отпуска" и так далее. Вокруг них строятся непосредственные решения.</p>
89
<h3>Функциональное</h3>
89
<h3>Функциональное</h3>
90
<p>Проблема или желаемое решение делится на функциональные единицы. Каждый юнит - самостоятелен. Он отвечает за выполнение конкретной задачи. Единицы смешиваются вместе для формирования полного решения.</p>
90
<p>Проблема или желаемое решение делится на функциональные единицы. Каждый юнит - самостоятелен. Он отвечает за выполнение конкретной задачи. Единицы смешиваются вместе для формирования полного решения.</p>
91
<p>Пример - разработка платежной ведомости. Обработка этой "документации" может иметь функциональные единицы: ведение данных о подчиненных, расчет базы з/п, брутто-зарплата, обработка отпусков, погашение займов и так далее.</p>
91
<p>Пример - разработка платежной ведомости. Обработка этой "документации" может иметь функциональные единицы: ведение данных о подчиненных, расчет базы з/п, брутто-зарплата, обработка отпусков, погашение займов и так далее.</p>
92
<h3>Логическое</h3>
92
<h3>Логическое</h3>
93
<p>Возможно применение логической разработки. Первоначальная задача разбивается на логические единицы. Программеры могут выбрать одну или комбинацию представленных методологий для получения на выходе качественного ПО.</p>
93
<p>Возможно применение логической разработки. Первоначальная задача разбивается на логические единицы. Программеры могут выбрать одну или комбинацию представленных методологий для получения на выходе качественного ПО.</p>
94
<p>Каждый вариант предусматривает разбиение задачи на более мелкие составляющие. Для этого применяется:</p>
94
<p>Каждый вариант предусматривает разбиение задачи на более мелкие составляющие. Для этого применяется:</p>
95
<ul><li>нисходящий подход;</li>
95
<ul><li>нисходящий подход;</li>
96
<li>"снизу-вверх".</li>
96
<li>"снизу-вверх".</li>
97
</ul><p>Все это важно понимать при реализации желаемого проекта. Если используется не самая лучшая "метода", разработка доставит немало хлопот. Программерам предстоит вносить множество изменений, а также снова продумывать концепции оптимизации проекта.</p>
97
</ul><p>Все это важно понимать при реализации желаемого проекта. Если используется не самая лучшая "метода", разработка доставит немало хлопот. Программерам предстоит вносить множество изменений, а также снова продумывать концепции оптимизации проекта.</p>
98
<h4>Нисходящий подход</h4>
98
<h4>Нисходящий подход</h4>
99
<p>Модульный подход предусматривает ситуацию, когда проблема разбита на более мелкие составляющие. Они тоже могут дробиться в будущем. Каждый блок - это модуль. Он выступает в качестве самодостаточного. В таких "блоках" есть все необходимое для выполнения обозначенной функции.</p>
99
<p>Модульный подход предусматривает ситуацию, когда проблема разбита на более мелкие составляющие. Они тоже могут дробиться в будущем. Каждый блок - это модуль. Он выступает в качестве самодостаточного. В таких "блоках" есть все необходимое для выполнения обозначенной функции.</p>
100
<h4>Снизу-вверх</h4>
100
<h4>Снизу-вверх</h4>
101
-
<p>Можно писать c использованием подхода ��снизу-вверх". Тут проектирование систему осуществляется с самого низкого уровня компонентов. Они будут группироваться и формировать компоненты более высокого значения.</p>
101
+
<p>Можно писать c использованием подхода "снизу-вверх". Тут проектирование систему осуществляется с самого низкого уровня компонентов. Они будут группироваться и формировать компоненты более высокого значения.</p>
102
<p>Процесс продолжается до тех пор, пока в не получите сгенерированную иерархию всех элементов системы. В реальном сценарии их достаточно трудно распознать. Модель пригодится, если речь идет о программировании элементарных задач.</p>
102
<p>Процесс продолжается до тех пор, пока в не получите сгенерированную иерархию всех элементов системы. В реальном сценарии их достаточно трудно распознать. Модель пригодится, если речь идет о программировании элементарных задач.</p>
103
<h2>Основные модели разработки ПО</h2>
103
<h2>Основные модели разработки ПО</h2>
104
<p>Программеры разрабатывают софт различными подходами. Вот основные:</p>
104
<p>Программеры разрабатывают софт различными подходами. Вот основные:</p>
105
<ul><li>code and fix - устранение ошибок и кодирование;</li>
105
<ul><li>code and fix - устранение ошибок и кодирование;</li>
106
<li>waterfall - "водопад" или каскадная модель;</li>
106
<li>waterfall - "водопад" или каскадная модель;</li>
107
<li>V-model - разработка через тестирование;</li>
107
<li>V-model - разработка через тестирование;</li>
108
<li>spiral - спиральная;</li>
108
<li>spiral - спиральная;</li>
109
<li>chaos - модель так называемого хаоса;</li>
109
<li>chaos - модель так называемого хаоса;</li>
110
<li>prototype - прототипирование;</li>
110
<li>prototype - прототипирование;</li>
111
<li>incremental - инкрементная модель;</li>
111
<li>incremental - инкрементная модель;</li>
112
<li>iterative - итерационная.</li>
112
<li>iterative - итерационная.</li>
113
</ul><p>В случаях "эффективного программирования" принято использовать пять ключевых вариантов: "каскад", V-образ, инкремент, итерационный вариант, спиральный. Четко понимая их до последнего, разраб сможет осуществить анализ требований заказчика и получить на выходе максимально эффективное приложение.</p>
113
</ul><p>В случаях "эффективного программирования" принято использовать пять ключевых вариантов: "каскад", V-образ, инкремент, итерационный вариант, спиральный. Четко понимая их до последнего, разраб сможет осуществить анализ требований заказчика и получить на выходе максимально эффективное приложение.</p>
114
<h3>"Водопад"</h3>
114
<h3>"Водопад"</h3>
115
<p>Разбираясь в методологиях программирования, стоит обратить внимание на "водопад". Здесь написание ПО происходит поэтапно: каждая следующая стадия начинается лишь после того, как предыдущая подошла к концу.</p>
115
<p>Разбираясь в методологиях программирования, стоит обратить внимание на "водопад". Здесь написание ПО происходит поэтапно: каждая следующая стадия начинается лишь после того, как предыдущая подошла к концу.</p>
116
<p>Если все реализовывать правильно, "каскад" позволит быстро и просто писать софт любой сложности. Этот вариант применяется на практике с 1970-х годов.</p>
116
<p>Если все реализовывать правильно, "каскад" позволит быстро и просто писать софт любой сложности. Этот вариант применяется на практике с 1970-х годов.</p>
117
<h4>Преимущества и недостатки</h4>
117
<h4>Преимущества и недостатки</h4>
118
<p>К сильным сторонам относят:</p>
118
<p>К сильным сторонам относят:</p>
119
<ul><li>возможность быстрой и простой разработки с тщательным контролем;</li>
119
<ul><li>возможность быстрой и простой разработки с тщательным контролем;</li>
120
<li>стоимость проекта будет определяться на начальном этапе;</li>
120
<li>стоимость проекта будет определяться на начальном этапе;</li>
121
<li>не нужно нанимать тестировщиков с хорошей технической подготовкой.</li>
121
<li>не нужно нанимать тестировщиков с хорошей технической подготовкой.</li>
122
</ul><p>К слабым сторонам водопада относят:</p>
122
</ul><p>К слабым сторонам водопада относят:</p>
123
<ul><li>тестирование ПО, которое создали, осуществляется достаточно поздно;</li>
123
<ul><li>тестирование ПО, которое создали, осуществляется достаточно поздно;</li>
124
<li>обратную связь от заказчика можно получить только в самом конце;</li>
124
<li>обратную связь от заказчика можно получить только в самом конце;</li>
125
<li>разработчикам приходится создавать объемную документацию.</li>
125
<li>разработчикам приходится создавать объемную документацию.</li>
126
</ul><p>Основная задача, если хочется использовать модель "водопад" - это создание подробного технического задания.</p>
126
</ul><p>Основная задача, если хочется использовать модель "водопад" - это создание подробного технического задания.</p>
127
<h3>V-образ</h3>
127
<h3>V-образ</h3>
128
<p>Следующая "версия" к быстрой разработке ПО - это V model. Усовершенствованный каскадный вариант, в которой требования к системе и описание составляется заказчиком вместе с программерами. Здесь фиксируется, как происходит<a>тестинг</a>на каждом шаге.</p>
128
<p>Следующая "версия" к быстрой разработке ПО - это V model. Усовершенствованный каскадный вариант, в которой требования к системе и описание составляется заказчиком вместе с программерами. Здесь фиксируется, как происходит<a>тестинг</a>на каждом шаге.</p>
129
<p>Подход, который позволяет к минимуму свести ошибки и рассмотреть сразу требования к системе. Но такой прием обойдется дорого при обнаружении неполадок.</p>
129
<p>Подход, который позволяет к минимуму свести ошибки и рассмотреть сразу требования к системе. Но такой прием обойдется дорого при обнаружении неполадок.</p>
130
<h3>Инкрементный вариант</h3>
130
<h3>Инкрементный вариант</h3>
131
<p>Чтобы давать максимальную эффективность в коддинге, можно составлять ПО частями - инкрементно. Вот пример с социальной сетью:</p>
131
<p>Чтобы давать максимальную эффективность в коддинге, можно составлять ПО частями - инкрементно. Вот пример с социальной сетью:</p>
132
<ol><li>Появилась идея, заказчик составляет ТЗ. Программеры предлагают реализовывать основные функции - страницы с анкетами и чат. Далее - провести тестинг на ЦА.</li>
132
<ol><li>Появилась идея, заказчик составляет ТЗ. Программеры предлагают реализовывать основные функции - страницы с анкетами и чат. Далее - провести тестинг на ЦА.</li>
133
<li>Разработчики показали продукт заказчику, выпустили его на рынок. Если клиент и ЦА довольны результатом разработанных утилит, можно продолжать их поддержку и реализацию. Происходит это по частям.</li>
133
<li>Разработчики показали продукт заказчику, выпустили его на рынок. Если клиент и ЦА довольны результатом разработанных утилит, можно продолжать их поддержку и реализацию. Происходит это по частям.</li>
134
<li>Программеры создают и внедряют новые функции вроде сервисов для загрузки мультимедиа, обмена документацией, прослушивания музыки. Инкремент за инкрементом они совершенствуют софт.</li>
134
<li>Программеры создают и внедряют новые функции вроде сервисов для загрузки мультимедиа, обмена документацией, прослушивания музыки. Инкремент за инкрементом они совершенствуют софт.</li>
135
</ol><p>На первоначальном этапе здесь не нужно тратить много денег. Прием обеспечивает качественный фидбек в короткий срок. А еще - ошибки обходятся дешевле.</p>
135
</ol><p>На первоначальном этапе здесь не нужно тратить много денег. Прием обеспечивает качественный фидбек в короткий срок. А еще - ошибки обходятся дешевле.</p>
136
<p>Возможны конфликты между командами разрабов, так как каждая из них видит ПО "собственными глазами". В больших проектах это - настоящая проблема. Программеры также часто откладывают релиз" и "допиливают мелочевку".</p>
136
<p>Возможны конфликты между командами разрабов, так как каждая из них видит ПО "собственными глазами". В больших проектах это - настоящая проблема. Программеры также часто откладывают релиз" и "допиливают мелочевку".</p>
137
<h3>Итератив</h3>
137
<h3>Итератив</h3>
138
<p>Модель, где заказчик не должен понимать, какой продукт он хочет получить в итоге. Оценка происходит через техническое задание, которое обсуждается с разрабами.</p>
138
<p>Модель, где заказчик не должен понимать, какой продукт он хочет получить в итоге. Оценка происходит через техническое задание, которое обсуждается с разрабами.</p>
139
<p>Подход славится быстрой реализацией продукта, а также оперативностью обратной связи от заказчика и пользователей. Также выделяется постоянным тестированием. Но на первых порах возникают сложности с базами данных и серверами. Расходы и сроки не имеют четких границ.</p>
139
<p>Подход славится быстрой реализацией продукта, а также оперативностью обратной связи от заказчика и пользователей. Также выделяется постоянным тестированием. Но на первых порах возникают сложности с базами данных и серверами. Расходы и сроки не имеют четких границ.</p>
140
<h3>Спираль</h3>
140
<h3>Спираль</h3>
141
<p>С ее помощью заказчики и разрабы будут анализировать риски проекта. Далее - выполнять его итерациями. Последующие стадии опираются на предыдущие. В конце каждого "витка" - цикла итераций - принимается решение относительно продолжения идеи.</p>
141
<p>С ее помощью заказчики и разрабы будут анализировать риски проекта. Далее - выполнять его итерациями. Последующие стадии опираются на предыдущие. В конце каждого "витка" - цикла итераций - принимается решение относительно продолжения идеи.</p>
142
<p>Здесь огромное значение уделяется проработке возможных рисков. Если они обнаруживаются на первоначальных этапах, можно бесконечно долго заниматься "началом", не переходя к новым версиям. Подход дорогой и долгий.</p>
142
<p>Здесь огромное значение уделяется проработке возможных рисков. Если они обнаруживаются на первоначальных этапах, можно бесконечно долго заниматься "началом", не переходя к новым версиям. Подход дорогой и долгий.</p>
143
<h2>RAD</h2>
143
<h2>RAD</h2>
144
<p>Но есть и еще один интересный вариант. Это - модель быстрой разработки приложений. Носит названием RAD. Представлена концепцией организации технологического процесса разработки ПО, ориентированной на максимально быстрое получение итога в условиях сильных ограничений по срокам и бюджету. Требования к контенту будут размыты. Ускорение происходит за счет использования специального инструментария и постоянного, параллельного с написанием контента, уточнения пожеланий.</p>
144
<p>Но есть и еще один интересный вариант. Это - модель быстрой разработки приложений. Носит названием RAD. Представлена концепцией организации технологического процесса разработки ПО, ориентированной на максимально быстрое получение итога в условиях сильных ограничений по срокам и бюджету. Требования к контенту будут размыты. Ускорение происходит за счет использования специального инструментария и постоянного, параллельного с написанием контента, уточнения пожеланий.</p>
145
<p>Здесь стоит учитывать следующее:</p>
145
<p>Здесь стоит учитывать следующее:</p>
146
<ol><li>Программер должен уметь работать<a>с CASE</a>-инструментами. Это - ПО для проектирования приложений.</li>
146
<ol><li>Программер должен уметь работать<a>с CASE</a>-инструментами. Это - ПО для проектирования приложений.</li>
147
<li>Подходит тем, кто пишет софт с независимыми или слабосвязанными модулями.</li>
147
<li>Подходит тем, кто пишет софт с независимыми или слабосвязанными модулями.</li>
148
<li>Обеспечивает качественный уровень для пользователей.</li>
148
<li>Обеспечивает качественный уровень для пользователей.</li>
149
<li>Можно оперативно корректировать проект.</li>
149
<li>Можно оперативно корректировать проект.</li>
150
</ol><p>RAD необходимо использовать только в больших командах. Результат зависит от вовлеченности заказчика в работу.</p>
150
</ol><p>RAD необходимо использовать только в больших командах. Результат зависит от вовлеченности заказчика в работу.</p>
151
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em></p>
151
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em></p>
152
152