В искусство программирования входит выбор языка программирования, наиболее полно подходящего для решения поставленной задачи.
Программирование
Слово «программирование» используется также в некоторых устоявшихся словосочетаниях, например, динамическое программирование, линейное программирование, математическое программирование, где оно обычно является синонимом слова «планирование».
Программирование — это процесс создания компьютерных программ. По выражению одного из основателей языков программирования Никлауса Вирта «Программы = алгоритмы + структуры данных». Программирование основывается на использовании языков программирования, на которых записываются исходные тексты программ.
Как дисциплина программирование изучает принципы построения и функционирования программ, используя методы и технические приёмы, а также способы организации как крупных программных систем (выбор архитектуры, выделение компонентов и организация эффективного взаимодействия между ними), так и небольших элементов программ (выбор алгоритмов работы, организация кода отдельного компонента, использование особенностей языков программирования).
Программирование — это процесс создания компьютерных программ или программного обеспечения, а также дисциплина, изучающая методы и приёмы создания и развития компьютерных программ (более точное название дисциплины – инженерия программного обеспечения или программная инженерия).
Программирование включает: анализ предметной области – выделение требований к программе и точную постановку решаемых задач; проектирование программы – выделение компонентов или модулей на основе отдельных решаемых задач, определение способов взаимодействий между ними, определение алгоритмов работы и структур данных, используемых каждым модулем; кодирование – написание отдельных модулей на определённых языках программирования; выявление дефектов и ошибок при помощи тестирования (проверка программы на наборе заранее выбранных сценариев, позволяющем оценить её корректность) и других методов верификации, а также отладку программы; развёртывание – размещение программы в её рабочем окружении, настройка и подготовка её к работе, обучение пользователей работе с программой; сопровождение – поддержка работоспособности, настройка под изменяющееся окружение, выявление дефектов и новых задач, внесение исправлений и изменений.
Сопровождение играет особую роль, поскольку многие программы используются в течение десятилетий и должны изменяться в соответствии с изменением решаемых задач или их масштабов, появлением новых устройств или необходимости во взаимодействии с другими программами. В рамках сопровождения много раз проводится перепроектирование, кодирование и тестирование, а также добавление новых компонентов, поэтому большая часть затрат на разработку программы падает на него. Дополнительные сложности для сопровождения и развития программ возникают из-за размеров и сложности современных программных систем, достигающих десятков миллионов строк кода, на различных языках программирования. Такие масштабы программных систем стали возможны за счёт использования подпрограмм и компонентов, позволяющих создавать иерархические системы из большого количества небольших программ.
Перечисленные виды деятельности при программировании обычно выполняются не в жёстко заданной последовательности, а по мере необходимости; например, исправление ошибки, обнаруженной при тестировании, может потребовать дополнительного анализа требований, уточнения задач и выбора другого алгоритма работы содержащего ошибку модуля. Процессы разработки программного обеспечения, предписывающие определённые правила создания программ, с целью упрощения планирования работ могут налагать различные ограничения на возможные последовательности выполнения таких действий.
В зависимости от поставленных целей, размерности задачи, методов решения различают параллельное программирование, распределённое программирование и др. Языки программирования поддерживают различные стили программирования (парадигмы программирования). В искусство программирования входит выбор языка программирования, наиболее полно подходящего для решения поставленной задачи.
Большинство методов и технических приёмов программирования не универсальны, применимы лишь для специфических видов программ (прикладные, системные, встроенные). Однако можно выделить как базовые следующие три принципа программирования: модульность – существенно различные задачи должны решаться разными программными компонентами, взаимодействующими друг с другом через чётко определённые интерфейсы, и не зависеть от внутренних алгоритмов и структур данных друг друга; использование абстракций – решение любой задачи необходимо оформлять в терминах набора сущностей, достаточных для описания всех существенных элементов задачи и не содержащих лишней, несущественной информации; многократное использование кода – каждый отдельный элемент знания о задаче или её решения должен быть описан однократно, следует избегать дублирования информации и описаний одних и тех же знаний и/или решений в нескольких различных местах в коде программы, поскольку при изменении требований исправлять такую программу гораздо сложнее.
Разделы на сайте со статьями по программированию:
- Информация о материале
- Родительская категория: Программирование
- Категория: CSS

- Информация о материале
- Родительская категория: Программирование
- Категория: JavaScript

- Информация о материале
- Родительская категория: Программирование
- Категория: HTML

- Информация о материале
- Родительская категория: Программирование
- Категория: HTML

- Информация о материале
- Родительская категория: Программирование
- Категория: JavaScript

- Информация о материале
- Родительская категория: Программирование
- Категория: HTML

- Информация о материале
- Родительская категория: Программирование
- Категория: HTML

- Информация о материале
- Родительская категория: Программирование
- Категория: HTML

- Информация о материале
- Родительская категория: Программирование
- Категория: HTML
