Язык программирования С++
Если вы новичок в C++, предлагаю Вам прочитать этот бесплатный учебник. Здесь собрано большое количество статей для начинающих программистов по С++. Условно все статьи разделены на группы, кратко характеризующие их содержание. После прочтения статьи, можно закрепить материал, написав несколько программ. Для проверки своих теоретических знаний можно пройти тестирование по С++. В таблице после теоретических статей идет подраздел практики, в котором вы можете пройти тестирование и написать программы.
Основы языка программирования C++ | |
---|---|
Введение в C++ | Установка IDE, введение в язык C++, объявление и использование переменных и многое другое. |
Структура программы в C++ | Структура программ это разметка рабочей области (области кода) с целью чёткого определения основных блоков программ и синтаксиса. |
Первая программа на С++ | Самая простая программа на С++, это программа, выводящая на экран в консоли текстовое сообщение. |
Управляющие символы С++ | Символы которые выталкиваются в поток вывода, с целью форматирования вывода или печати некоторых управляющих знаков С++ |
Арифметические операции С++ | Операции, которые присутствуют во всех программах, сложнее "Hello world" . Любые манипуляции с переменными выполняются именно благодаря арифметическим операциям. |
Типы данных С++ | Огромную роль в программировании играет процесс отладки программ. Если при отладки программы возникла ошибка, вы должны знать, как её исправить. |
Таблица ASCII | Американский стандартный код для обмена информацией в ОС Windows. Если вы программируете в этой ОС, обязательно прочитайте эту статью. |
Операции присваивания в С++ | Для сокращённой записи выражений в языке программирования С++ есть специальные операции, которые называются операциями присваивания. |
Операции инкремента и декремента в С++ | Инкремент ++ – это увеличение на единицу. Декремент -- – это уменьшение на единицу. |
Оператор выбора if | Операторы выбора позволяют принять программе решение, основываясь на истинности или ложности условия. |
Оператор выбора if else | Оператор if else позволяет определить программисту действие, когда условие истинно и альтернативное действие, когда условие ложно. |
Логические операции в C++ | Логические операции образуют сложное (составное) условие из нескольких простых (два или более) условий. Эти операции упрощают структуру программного кода в несколько раз. |
Поразрядные логические операции C++ | Данные операции работают с битами ячеек памяти и применяются в бинарной арифметике. |
Приоритет операций в С++ | Очерёдность выполнения операций в выражении. |
Условная операция (операция выбора) в С++ | Единственная в С++ трехместная (тернарная) операция, используется вместо оператора выбора if else . |
Оператор множественного выбора switch | Если в программе требуется рассмотреть более чем два варианта ветвления, используйте оператор switch. |
Явное и неявное преобразование типов данных C++ | Неявное преобразование типов данных выполняет компилятор С++, а явное преобразование данных выполняет сам программист. |
Форматированный ввод/вывод в С++ | Возможность управлять вводом-выводом в С++, обеспечивают форматирующие функции-члены, флаги и манипуляторы. |
Генератор случайных чисел rand() в С++ | Программа для генерации псевдослучайных чисел. |
Цикл for в C++ | Многократное прохождение по одному и тому же коду программы. |
Цикл while в C++ | Цикл, повторяющий одно и то же действие, пока условие продолжения цикла while остаётся истинным. |
Цикл do while в C++ | В do while сначала выполняется тело цикла, а затем проверяется условие продолжения цикла. |
Оператор break | Операторы применяются для изменения управления в программе. |
Оператор continue | Оператор continue выполняет пропуск оставшейся части кода тела цикла и переходит к следующей итерации цикла |
Исключения в С++ (exception) | Исключения в языке С++ — это хороший инструмент для обработки нестандартных ситуаций, возникающих в результате работы программы. | Указатели, массивы и строки |
Массивы в С++ | Массивы используются для обработки большого количества однотипных данных. |
Как найти время работы программы на С++ | В этой статье показаны примеры программ, в которых мы нашли время работы. |
Квалификатор const в С++ | Константы или константные переменные, то есть — переменные, значения которых, после объявления, модифицировать нельзя. |
Указатели в С++ | Специальные переменные, которые ссылаются на блок данных из области памяти, причём на самое его начало. |
Указатель на указатель + динамическое выделение памяти (часть 1) | Указатели на указатели — эффективный способ организации хранения данных в памяти. |
Указатель на указатель + динамическое выделение памяти (часть 2) | Вставка и удаление элементов динамического массива в С++ с помощью указателей. |
Ссылки в С++ | Особый тип данных, являющийся скрытой формой указателя, который при использовании автоматически разименовывается. |
Динамический массив в С++ | Одномерные и двумерные динамические массивы, выделение и высвобождение памяти. |
Литералы в программировании | Литералы используются в тексте программы для обозначения числовых значений, строк, символов или логических констант. |
Символы и строки в С++ | Введение в работу со строками в С++, основные функции для работы со строками и символами. |
Кириллица в консоли | Корректное отображение русских букв (кириллицы) в консольном приложении. | Структуры и файлы |
Структуры в С++ | Для чего используются структуры в программировании, способы их объявления и инициализации, примеры программ с использованием структур. |
Перечисления в С++ (enum) | Вы узнаете, для чего нужны перечисления, научитесь их использовать в своих программах. Вот увидите, с использованием enum, ваш код станет намного понятнее. |
Работа с файлами в С++ | Большинство компьютерных программ работают с файлами, и поэтому возникает необходимость создавать, удалять, записывать читать, открывать файлы. | Функции, локальные и глобальные переменные, рекурсия |
Функции в С++ | Для написания больших программ, опыт показывает, что лучше пользоваться функциями. |
Прототипы функций в С++ | Прототип и описание функции используются компилятором для того, чтобы вызов функции происходил правильным образом. |
Перегрузка функций в С++ | Под перегрузкой функции понимается, определение нескольких функций (две или больше) с одинаковым именем, но различными параметрами. |
Аргументы функций по умолчанию | Значения параметров в функции по умолчанию называют аргументами функций по умолчанию. |
Встроенные функции в C++ | Основная идея в том, чтобы ускорить программу ценой занимаемого места. |
Математические функции в С++ | В заголовочном файле <cmath> определены функции выполняющие некоторые часто используемые математические задачи. |
Локальные и глобальные переменные в С++ | Каждая переменная имеет свою область видимости, то есть такую область, в которой можно работать с переменной. |
Рекурсия в С++ | Функция, которая вызывает саму себя, непосредственно (в своём теле) или косвенно (через другую функцию). |
Параметры функции main (argc, argv) | Если программу запускать через командную строку, то ей можно передать информацию, для этого и существуют параметры argc и argv[] . |
Передача строки в функцию | Как передавать строки в функцию? Способы передачи строк как параметров функции. Примеры программ, исходный код. | Введение в объектно ориентированное программирование |
Классы в С++ | Классы и объекты в С++ являются основными концепциями объектно-ориентированного программирования — ООП. |
Конструктор и деструктор классов в C++ | Специальные методы класса — конструктор и деструктор. |
Директивы #ifndef и #endif | Данная препроцессорная обёртка предотвращает попытку многократного включения заголовочных файлов. |
Static: Многоцелевое ключевое слово | Ключевое слово static , хотя и означает «неизменный», имеет несколько способов использования. |
Перегрузка операторов в С++ | Перегрузите оператор + и вы сможете складывать массивы строки и, даже, целые объекты, простой записью вида a + b. |
Перегрузка операторов в С++ (часть 2) | Перегрузка операций = (присваивание), == (равенство) и [ ] (индексация). |
Разработка интерфейсов классов в C++ | Что такое интерфейсы классов и для чего они нужны? |
Дружественные функции С++ | Хотя дружественные функции и нарушают целостность классов, бывают такие случаи, когда необходимо дать доступ к закрытым свойствам классов и без дружественных функций никак не обойтись. |
Указатель this C++ | В этой статье вы узнаете что такое указатель this, как его использовать и зачем он нужен. |
Дружественные классы С++ | Зачем нужны дружественные классы? Пример с использованием дружественных классов. |
Конструктор копирования в С++ | Конструктор копирования нужен нам для того, чтобы создавать «реальные» копии объектов класса, а не побитовую копию объекта. |
Наследование классов | Введение в одну из главных концепций ООП — наследование. | Шаблоны в С++ (template) |
Шаблоны функций в С++ | Объявление и использование шаблонов для создания шаблонов функций. |
Шаблоны классов в С++ | Объявление и использование шаблонов классов, пример создания шаблона класса Стек. | Стандартная библиотека шаблонов (STL) |
string: шаблонный строковый класс STL | Введение в основы шаблона класса string стандартной библиотеки шаблонов С++. |
Обсудить на форуме
Автор: Marienko L.
Дата:
Поделиться:
Сборник задач для практики
- Сборник задач для практики
Этот раздел предназначен для самостоятельного решения задач по С++. Для закрепления пройденного материала вам предлагается решить немалый список заданий по программированию. Есть простые и достаточно сложные задачи, как для новичков так и для бывалых программистов. Вы также можете просматривать наш вариант решения задачи или попытаться решить задачу самим. Решение задач — это единственный способ научиться хорошо программировать. Поэтому, приступим сразу к делу!
Условно, мы попытались разделить задачи на несколько уровней сложности — Beginner(самые простые задачи), Easy (простые задачи, но немного сложнее), Normal (задачи среднего уровня сложности), Hard(сложные задачи) и Experienced(самые сложные задачи на нашем сайте). Ещё раз напоминаю, что возможно некоторые задачи сложнее или проще и находятся не в том уровне сложности, сообщите нам и мы все исправим. Такое присвоение уровней сложности — это сугубо наше мнение, поэтому не стоит воспринимать это как за должное. Внизу страницы вы можете оставить свой комментарий. Удачи!
Beginner 10 / 10 | Раз вы попали на эту страницу, значит вы хотите попрактиковаться в решении задач. В таблице, ниже, представлен список задач, которые являются типовыми задачами в программировании. Список задач со временем будет пополняться все новыми и новыми заданиями. |
Easy 32 / 32 | Тут собраны задачки для новичков, эти задачи немного сложнее предыдущего уровня сложности, но все равно они достаточно простые даже для новичков. Эти задачки постарайтесь решить самостоятельно, раньше времени не подсматривайте в готовый исходный код. |
Normal 37 / 38 | На этой странице я собрал список задач, сложность которых я оцениваю как среднюю. Эти задачи несомненно сложнее простых задач по программированию, но не такие сложные как — эти задачи. |
Hard 18 / 21 | Если вы уже решили большое количество задач, написали множество программ и считаете, что уже неплохо знаете С++, то этот сборник задач для вас. Тут собраны достаточно сложные задачи, но все же они не самые сложные. |
Experienced 1 / 15 | На мой взгляд, в этом разделе собраны самые сложные задачи, которые есть на нашем сайте. Если у вас не получается решать эти задачи, попробуйте решить задачи средней сложности или простые задачи, которые есть на нашем сайте. |
Обсудить на форуме
Автор: Marienko L.
Дата:
Поделиться:
Что такое кодирование? Часть I: Понимание основ
От команды The Fullstack Academy
Это первая из двух вводных статей по программированию. Сегодня мы рассмотрим основы программирования, включая типы данных, переменные, функции и многое другое. На следующей неделе мы рассмотрим, что значит быть профессиональным программистом.
Для начинающего разработчика написание компьютерного кода может показаться иностранным языком, что имеет смысл, потому что это именно то, чем он является.
Любой язык программирования, от JavaScript до C++, — это просто способ приказать компьютеру выполнить определенную задачу. Точно так же, как при разговоре с другим человеком вы должны использовать правильные слов на правильном языке на правильном порядке , чтобы быть понятым, то же самое относится и к общению с компьютерами.
Что это за слова и порядок их использования различаются в разных языках программирования. Однако в основе каждого языка лежат одни и те же основные компоненты и понятия.
Почему важно изучение основ программирования
Изучение основ языка программирования — это первое, с чего должен начать любой начинающий разработчик, потому что эти концепции можно перенести на любой язык программирования — и они необходимы для всех языков, говорит разработчик программного обеспечения Винисиус Бразил. .
Какой бы язык программирования вы ни решили изучать, вам придется переварить огромное количество новых терминов и понятий. Все это может показаться немного ошеломляющим, если вы еще не знакомы с основами компьютерных наук в целом, говорит разработчик Микке Гоес. «После изучения основ информатики у вас будет четкое представление о том, что компьютеры могут сделать для вас», — пишет Гоес. «Вы также научитесь кодировать намного быстрее, поскольку уже будете знакомы с большей частью технической терминологии, которую слышите, изучая программирование».
Последний пункт очень важен. В конце концов, вы, вероятно, не собираетесь изучать только один язык программирования за всю свою карьеру. Скорее всего, вам придется выучить несколько, одно за другим.
Адам Вульф, основатель Milestone Made, считает, что изменение технологических стеков неизбежно. «Прямо сейчас я считаю, что вы должны планировать изучение совершенно новых технологических стеков каждые ~ 4 года», — пишет он. Это означает, что ваша карьера будет зависеть от вашей способности быстро изучать новые языки, чему способствует четкое понимание основных концепций программирования.
Концепции кодирования, которые должны знать начинающие разработчики
Строки компьютерного кода могут показаться вам совершенно неразборчивыми прямо сейчас, но если вы сможете понять следующие ключевые концепции, вы скоро сможете начать понимать конкретные языки программирования.
Поток данных
Программирование связано с потоком данных. У программиста есть данные, которые он может ввести в программу. Программа имеет свои собственные данные, которые она может использовать для интерпретации входных данных. Все эти данные можно комбинировать для представления идей и использования как программой, так и пользователем.
В программировании данные обычно представляются тем, что мы называем типами данных , которые могут включать слова, числа и другие типы сложных данных.
Типы данных можно сгруппировать в три группы, говорит программист Грег Богдан:
- Первые — это типы данных, которые управляют текстом, называемые строками . Это наиболее часто используемый тип данных почти во всех языках программирования.
- Вторая корзина содержит числовых данных для расчетов или алгоритмов.
- Третий сегмент содержит все другие формы данных, например логических значений и нулевых значений .
Переменные
Данные необходимы, но программа может использовать эти данные только в том случае, если она знает, как их запрашивать и что делать с ними при их получении. Вот почему мы объявляем переменные в начале программы, — говорит Ричард Холовчак, адъюнкт-профессор компьютерных информационных систем в Колледже Баруха в Нью-Йорке. «Чтобы использовать переменную внутри программы, компилятору нужно заранее знать тип данных, которые будут в ней храниться».
Объявление переменной просто означает присвоение имени фрагменту данных. После того, как вы назвали его, вы можете снова обращаться к этим данным столько раз, сколько захотите.
Есть две причины, по которым вы даете своим данным имена, говорит программист Исаак Лайман. Во-первых, вы не знаете что такое данные до того, как они будут введены. Компьютерные программы недостаточно умны, чтобы понять, что, скажем, дата является датой, если вы ее не определите. Во-вторых, вы не хотите, чтобы программа забыла, что означают данные позже, когда вам нужно будет на них рисовать.
Важно отметить, что переменные не содержат данных, говорит Самер Буна, куратор сайта jsComplete. com. Переменные просто указывают на данные , которые хранятся в памяти компьютера.
Структуры управления
Когда у вас есть данные и вы назвали эти данные переменными, вашей программе нужны правила и инструкции, позволяющие ей делать выбор и выполнять команды. Это делается с помощью управляющих структур .
Думайте о структурах управления как о вышибалах в баре. Вышибала (контролирующая структура) проинструктирована не пускать никого моложе 21 года. Они проверяют каждое удостоверение личности, и если день рождения раньше определенной даты, этого человека пускают в бар. Если день рождения после требуемой даты, вышибала не пускает этого человека в бар.
Новые программисты часто упускают из виду важность управляющих структур, говорит разработчик Филип Браун. Но они являются фундаментальной концепцией, которая позволяет вам диктовать, как ваш код будет работать в различных условиях или до тех пор, пока не будет выполнено определенное условие.
Функции
Для того, чтобы что-то построить, вам придется дать вашей программе множество инструкций, но если вы будете просить компьютер повторять одни и те же шаги снова и снова, писать одно и то же дюжина инструкций стала бы невероятно повторяющейся.
Введите: Функции, способ сбора часто используемых инструкций и присвоения им имени, к которому вы можете обратиться. Вместо того, чтобы писать все инструкции каждый раз, вы можете просто использовать вместо этого имя функции, и инструкции, содержащиеся в этой функции, будут выполняться сами по себе.
Бен Стегнер из MakeUseOf отмечает, что вы можете использовать функции для достижения огромного количества вещей , в том числе:
- Инкапсуляция кода без необходимости знать код внутри.
- Разделение кода на сегменты, чтобы над ним могли работать несколько разработчиков.
- Повторное использование кода.
- Упрощение тестирования и отладки.
Фактически, можно создавать целые программные приложения только с функциями , говорит Тим Славин из Beanz. Существуют даже целые языки программирования, в которых в основном используются функции, и они удачно названы «функциональными языками программирования».
Синтаксис
Последняя основная концепция программирования, которую вам нужно знать, это синтаксис. С технической точки зрения 9Синтаксис 0039 — это порядок, в котором некоторые предопределенные управляющие структуры, переменные и ключевые слова могут быть записаны в . Этот порядок определяет ожидаемый результат чтения и выполнения кода компьютером.
Чтобы упростить эту концепцию, вы можете думать о синтаксисе кодирования точно так же, как о синтаксисе английского языка. Порядок, в котором вы пишете код, очень важен. Напишите это в неправильном порядке, и, как и в случае с английским языком, смысл того, что вы говорите, может резко измениться.
Однако, в отличие от английского, заметить синтаксические ошибки в коде не так просто. Это самые неприятные из всех ошибок, говорит Мэтт Адесанья, технический директор Workforce Group, потому что программа обычно запускается с наличием синтаксических ошибок. Это просто не даст нужного результата.
Разработчик Java Тревор Пейдж (Trevor Page) считает, что синтаксис , вероятно, является самым трудным препятствием для начинающих программистов, преодолевающих . Но становится легче, и по нескольким причинам. Во-первых, чем больше кода вы видите, тем лучше вы будете обнаруживать синтаксические ошибки. Во-вторых, разработчики создали интегрированные среды разработки (IDE), которые могут обнаруживать ошибочный синтаксис так же, как проверка орфографии в Microsoft Word.
Теперь, когда вы понимаете основные понятия кодирования, почему бы не начать изучать свой первый язык программирования? Сделайте первый шаг на своем пути, записавшись на курс Fullstack Academy JavaScript 101 , где вы получите базовое понимание JavaScript и даже создадите свое первое приложение.
Изображения: NESA by Makers, Mimi Thian, Markus Spiske10 основных принципов программирования, которые должен знать каждый программист
Код писать легко. Трудно писать хороший код.
Плохой код бывает разных форм. Беспорядочный код, массивные цепочки if-else, программы, которые ломаются после одной корректировки, переменные, которые не имеют смысла — программа может сработать один раз, но после проверки она никогда не сможет выстоять.
Если вы хотите стать программистом, никогда не соглашайтесь на ярлыки. Старайтесь писать код, который легко поддерживать — легко поддерживать вам и любому другому разработчику в вашей команде.
Как написать эффективный код? Будучи дисциплинированным и целеустремленным. Вот 10 принципов программирования, которые сделают вас лучшим программистом.
1. Будь проще, глупый (KISS)
Звучит немного грубо, но это один из самых важных принципов кодирования, которому нужно следовать. Что означает ПОЦЕЛУЙ?
Это означает, что вы должны писать как можно более простой код. Одно из правил базового программирования — никогда не пытаться быть слишком умным или хвастаться толстым блоком сложного кода. Если вы можете написать сценарий в одну строку, напишите его в одну строку.
Вот простая функция:
function addNumbers(num1, num2) {
return num1 + num2;
}
Довольно просто. Это легко читать, и вы точно знаете, что происходит.
Одним из принципов программирования в этом духе является использование понятных имен переменных. Воспользуйтесь преимуществами библиотек кодирования и используйте существующие инструменты. Сделайте так, чтобы было легко вернуться через шесть месяцев и вернуться к работе. Упрощение вещей избавит вас от многих ненужных страданий в будущем.
2. Напишите СУХОЙ код
Принцип компьютерного программирования «Не повторяйся» (DRY) означает, что код не должен повторяться. Это распространенная ошибка кодирования. При написании кода избегайте дублирования данных или логики. Если вы когда-либо копировали и вставляли код в свою программу, это не СУХОЙ код.
Взгляните на этот скрипт:
function addNumberSequence(number) {
number = число + 1;
число = число + 2;
число = число + 3;
число = число + 4;
число = число + 5;
номер возврата;
}
Вместо дублирования строк попробуйте найти алгоритм, использующий цикл.
Код DRY прост в обслуживании. Легче отладить один цикл, который обрабатывает 50 повторений, чем 50 блоков кода, каждый из которых обрабатывает одно повторение.
Связано: Лучшие проекты по программированию для начинающих
3. Открытый/Закрытый
Этот принцип программирования означает, что вы должны стремиться сделать свой код открытым для расширения, но закрытым для модификации. Это важный принцип при выпуске библиотеки или фреймворка, который будут использовать другие.
Например, предположим, что вы поддерживаете структуру графического интерфейса. Вы можете выпустить версию для кодеров, чтобы напрямую модифицировать и интегрировать ваш выпущенный код. Что произойдет, если вы выпустите крупное обновление четыре месяца спустя?
Их код сломается. Это, вероятно, сделает ваши когорты очень несчастными. Они больше не захотят пользоваться вашей библиотекой, какой бы полезной она ни была в период своего расцвета.
Вместо этого выпустите код, который предотвращает прямое изменение и поощряет расширение. Базовые принципы программирования, подобные этому, отделяют базовое поведение от измененного поведения. Код стал более стабильным и простым в обслуживании.
4. Композиция вместо наследования
Если вы пишете код с использованием объектно-ориентированного программирования, вы обнаружите, что этот принцип программирования очень полезен. Принцип композиции над наследованием гласит: объекты со сложным поведением должны содержать экземпляры объектов с индивидуальным поведением. Они не должны наследовать класс и добавлять новое поведение.
Использование наследования вызывает две основные проблемы. Во-первых, иерархия наследования может быстро запутаться. У вас также меньше гибкости для определения поведения в особых случаях. Допустим, вы хотите реализовать поведение, чтобы делиться им:
Композиционное программирование проще в написании, проще в обслуживании и позволяет определять поведение, определяющее гибкость. Каждое отдельное поведение представляет собой отдельный класс. Вы можете создавать сложные модели поведения, комбинируя отдельные модели поведения.
Принцип единой ответственности гласит, что каждый класс или модуль в программе должен предоставлять только одну конкретную функциональность. Как выразился Роберт К. Мартин, «у класса должна быть только одна причина для изменения».
Классы и модули часто начинаются таким образом. Будьте осторожны, чтобы не добавить слишком много обязанностей, поскольку классы становятся более сложными. Рефакторинг и разбить их на более мелкие классы и модули.
Последствия перегрузки классов двояки. Во-первых, это усложняет отладку, когда вы пытаетесь изолировать определенный модуль для устранения неполадок. Во-вторых, становится сложнее создать дополнительный функционал для конкретного модуля. Хорошие принципы программирования предотвращают эти проблемы до того, как они станут проблемами, с которыми нужно справиться.
6. Разделение ответственности
Концепция разделения ответственности является абстрактной версией принципа единой ответственности. Эта идея гласит, что программа должна быть разработана с использованием разных контейнеров, и эти контейнеры не должны иметь доступа друг к другу.
Хорошо известным примером этого является схема модель-представление-контроллер (MVC). MVC разделяет программу на три отдельные области: данные (модель), логика (контроллер) и то, что отображается на странице (представление). Вариации MVC распространены в самых популярных сегодня веб-фреймворках.
Например, коду, работающему с базой данных, не нужно знать, как отображать данные в браузере. Код рендеринга принимает ввод от пользователя, но логический код обрабатывает обработку. Каждый фрагмент кода полностью независим.
В результате получается код, который легко отлаживать. Если вам когда-нибудь понадобится переписать код рендеринга, вы можете сделать это, не беспокоясь о том, как сохраняются данные или обрабатывается логика.
7. Вам это не понадобится (YAGNI)
Этот принцип означает, что вы никогда не должны кодировать функциональность на случай, если вам что-то может понадобиться в будущем. Один из наиболее важных принципов компьютерного программирования, который необходимо изучить, заключается в том, что вы не должны пытаться решить проблему, которой не существует.
Пытаясь написать СУХОЙ код, программисты могут нарушить этот принцип. Часто неопытные программисты пытаются написать как можно более абстрактный и общий код. Однако излишняя абстракция приводит к раздуванию кода, который невозможно поддерживать.
Применяйте принципы СУХОГО программирования только тогда, когда это необходимо; если вы заметили куски кода, написанные снова и снова, реализуйте уровень абстракции. Не заглядывайте слишком далеко вперед за счет текущего пакета кода.
8. Задокументируйте свой код
За всеми этими разговорами о принципах кодирования легко забыть о человеке с другой стороны, который со временем может сам проникнуть в ваш код.
Любой старший разработчик подчеркнет важность документирования кода с надлежащими комментариями. Все языки предлагают их; Вы должны взять за привычку их писать. Оставляйте комментарии, чтобы объяснять объекты, улучшать определения переменных и делать функции более понятными.
Вот функция JavaScript с комментариями, которые помогут вам в коде:
// Эта функция добавит к входным данным 5, если нечетное, или вернет число, если четное обратный номер;
}
// Если число нечетное, это добавит 5 и вернет
else {
return number + 5;
}
}
Оставлять комментарии — это немного больше работы во время написания кода. Это требует времени и отвлекает ваше внимание от реальной работы. Вы все равно хорошо понимаете свой код, верно? Какая разница? Стоит помнить, что нет ничего одноразового, даже в мире технологий. В конце концов, что такое принцип компьютерного программирования, если человек на другой стороне в конечном итоге потеряется?
Мы рекомендуем делать все возможное и оставлять комментарии везде, где вы опасаетесь, что что-то станет неясным или неясным, особенно при совместной работе с другими. Не расстраивайте своих коллег-разработчиков, заставляя их расшифровывать ваш синтаксис.
Попробуйте написать программу, оставить ее в покое на шесть месяцев и вернуться, чтобы изменить ее. Вы будете рады, что задокументировали свою программу вместо того, чтобы останавливаться на каждой функции, чтобы запомнить, как она работает.
9. Рефакторинг
Это трудно принять, но ваш код не будет идеальным с первого раза. Рефакторинг кода означает просмотр вашего кода и поиск способов его оптимизации, повышения его эффективности при неизменном результате.
Кодовые базы постоянно развиваются. Один из принципов программирования — помнить, что пересматривать, переписывать или даже переделывать целые куски кода — это совершенно нормально. Это не значит, что вы не добились успеха при первом написании программы; со временем вы неизбежно познакомитесь с проектом поближе. Используйте это знание, чтобы приспособиться к своему прогрессу.
10. Чистый код любой ценой
Оставьте свое эго за дверью и забудьте о написании умного кода. Говоря это, мы имеем в виду такой код, который больше похож на загадку, чем на решение. Вы не программируете, чтобы произвести впечатление на незнакомцев. Вы пришли в эту профессию, чтобы решать проблемы.
Не пытайтесь уместить тонну логики в одну строку. Оставляйте четкие инструкции в своих комментариях и документации. Если ваш код легко читается, его обычно также легко поддерживать.
Хорошие программисты и читаемый код идут рука об руку. Оставляйте комментарии, когда это необходимо, придерживайтесь руководств по стилю и по возможности ставьте себя на место другого парня.