0.4 – Введение в разработку на C++
Прежде чем мы сможем написать и выполнить нашу первую программу на C++, нам нужно более подробно понять, как разрабатываются программы на C++. Ниже приведен рисунок, описывающий упрощенный подход:
Шаг 1. Определите задачу, которую вы хотите решить
На этом этапе вы выясняете, какую задачу собираетесь решить. Придумать первоначальную идею того, что вы хотите запрограммировать, может быть самым простым или самым трудным шагом. Но концептуально он самый простой. Всё, что вам нужно, это четко сформулированная идея, и вы готовы к следующему шагу.
Вот несколько примеров:
- «Я хочу написать программу, которая позволит мне вводить много чисел, а затем вычислять среднее значение».
- «Я хочу написать программу, которая генерирует двумерный лабиринт и позволяет пользователю перемещаться по нему. Пользователь выигрывает, если доходит до конца ».
- «Я хочу написать программу, которая читает файл с ценами на акции и предсказывает, пойдет ли цена вверх или вниз».
Шаг 2. Определите, как вы собираетесь решать проблему
Это шаг «как», на котором вы определяете, как вы собираетесь решить задачу, возникшую на шаге 1. Это также шаг, которым больше всего пренебрегают при разработке программного обеспечения. Суть проблемы в том, что есть много способов решить задачу, однако некоторые из них хорошие, а некоторые – плохие. Слишком часто программист, получив идею, садится и немедленно начинает писать код решения. Это часто приводит к решению, которое попадает в категорию плохих.
Обычно хорошие решения обладают следующими характеристиками:
- они простые (не слишком сложные или запутанные);
- они хорошо задокументированы (особенно в отношении любых сделанных предположений или ограничений);
- они построены по модульному принципу, поэтому их части могут быть повторно использованы или изменены позже, не влияя на другие части программы;
- они надежны и могут восстанавливать или выдавать полезные сообщения об ошибках, когда происходит что-то неожиданное.
Когда вы садитесь и сразу начинаете писать код, вы обычно думаете: «Я хочу сделать <что-то>», поэтому вы реализуете решение, которое поможет вам быстрее всего. Это может привести к тому, что программы станут хрупкими, их сложно будет изменить или расширить позднее, или будут иметь много багов (технических дефектов).
В порядке отсутпления...
Термин баг впервые был использован Томасом Эдисоном еще в 1870-х годах! Однако этот термин был популяризирован в 1940-х годах, когда инженеры обнаружили настоящую моль, застрявшую в аппаратном обеспечении одного из ранних компьютеров и вызывающую короткое замыкание. И журнал, в котором была зарегистрирована ошибка, и сама моль теперь являются частью Смитсоновского музея американской истории. Это можно посмотреть здесь.
Исследования показали, что только 20% времени программиста тратится на написание начальной программы. Остальные 80% тратятся на поддержку, которая может состоять из отладки (удаления багов), обновлений для обработки изменений в среде (например, для запуска в новой версии ОС), улучшений (незначительных изменений для улучшения удобства использования или возможностей) или внутренних улучшений (для повышения надежности или поддерживаемости).
Следовательно, стоит потратить немного времени заранее (до того, как вы начнете писать код), подумав о том, как лучше всего решить задачу, какие предположения вы делаете, и как запланировать будущее так, чтобы сохранить себе кучу времени и избежать проблем в будущем.
Шаг 3. Напишите программу
Чтобы написать программу, нам нужны две вещи: во-первых, нам нужно знание языка программирования – для этого и предназначена эта серия статей! Во-вторых, нам нужен редактор. Написать программу можно в любом редакторе, каком захотите, даже таком простом, как блокнот Windows, vi или pico в Unix. Однако мы настоятельно рекомендуем вам использовать редактор, предназначенный для написания кода. Не волнуйтесь, если у вас его еще нет. Вскоре мы расскажем, как установить редактор кода.
Типовой редактор, предназначенный для написания кода, имеет несколько функций, которые значительно упрощают программирование, в том числе:
1) Нумерация строк. Нумерация строк полезна, когда компилятор выдает нам ошибку, поскольку в типовой ошибке компилятора указывается: код ошибки / сообщение, строка 64. Без редактора, который показывает номера строк, поиск строки 64 может быть настоящей проблемой.
2) Подсветка и раскраска синтаксиса. Подсветка и раскраска синтаксиса изменяют цвет различных частей вашей программы, чтобы облегчить идентификацию различных ее компонентов. Вот пример программы на C++ с нумерацией строк и подсветкой синтаксиса:
#include <iostream>
int main()
{
std::cout << "Colored text!";
return 0;
}
Примеры, которые мы показываем в данном руководстве, всегда будут иметь как нумерацию строк, так и подсветку синтаксиса, чтобы их было легче понять.
3) Однозначный шрифт. Шрифты, не предназначенные для программирования, часто затрудняют различение между цифрой 0 и буквой O или между цифрой 1, буквой l (нижний регистр L) и буквой I (верхний регистр i). Хороший для программирования шрифт будет различать эти символы, чтобы один из них случайно не использовался вместо другого.
В C++ ваши программы обычно будут называться name.cpp, где name заменяется на имя, выбранное вами для программы (например, calculator, hi-lo и т.д.). Расширение .cpp сообщает компилятору (и вам), что это файл исходного кода C++, содержащий инструкции C++. Обратите внимание, что некоторые люди используют расширение .cc вместо .cpp, но мы рекомендуем вам использовать .cpp.
Лучшая практика
Называйте файлы с исходным кодом в формате name.cpp, где name – это имя на ваш выбор, а .cpp – это расширение, указывающее, что файл является исходным файлом C++.
Также обратите внимание, что многие сложные программы на C++ имеют несколько файлов .cpp. Хотя большинство программ, которые вы будете создавать изначально, будут иметь только один файл .cpp, можно написать программы, содержащие десятки или сотни файлов .cpp.
После того, как мы написали нашу программу, следующие шаги – преобразовать ее во что-то, что мы можем запустить, а затем посмотреть, работает ли она! Мы обсудим эти шаги (4-7) в следующей статье.