Какие компоненты обычно входят в интегрированную среду разработки приложений

Обновлено: 04.05.2024

Интегрированная среда разработки (ИСР) – это система программных средств, используемая программистам для разработки программного обеспечения. В английском языке такая среда называется Integrated development environment или сокращённо IDE.

ИСР обычно включает в себя текстовый редактор, компилятор, интерпретатор, средства автоматизации разработки и сборки программного обеспечения и отладчик. Иногда также содержит средства для интеграции с системами управления версиями и разнообразные инструменты для упрощения конструирования графического интерфейса пользователя. Многие современные среды разработки также включают окно просмотра программных классов, инспектор объектов и диаграмму иерархии классов – для использования при объектно-ориентированной разработке ПО. Большинство современных ИСР предназначенны для разработки программ на нескольких языках программирования одновременно.

Один из частных случаев ИСР – среды визуальной разработки, которые включают в себя возможность визуального редактирования интерфейса программы.

Основным окном, является текстовый редактор, который используется для ввода исходного кода в ИСР и ориентирован на работу с последовательностью символов в текстовых файлах. Такие редакторы обеспечивают расширенную функциональность – подсветку синтаксиса, сортировку строк, шаблоны, конвертацию кодировок, показ кодов символов и т. п. Иногда их называют редакторами кода, так как основное их предназначение – написание исходных кодов компьютерных программ.

Подсветка синтаксиса – выделение синтаксических конструкций текста с использованием различных цветов, шрифтов и начертаний. Обычно применяется в текстовых редакторах для облегчения чтения исходного текста, улучшения визуального восприятия. Часто применяется при публикации исходных кодов в Интернет.

Понятие трансляции, компилятора и интерпретатора было дано в предыдущих лекциях.

Одна из наиболее важных частей ИСР – отладчик, который представляет собой модуль среды разработки или отдельное приложение, предназначенное для поиска ошибок в программе. Отладчик позволяет выполнять пошаговую трассировку, отслеживать, устанавливать или изменять значения переменных в процессе выполнения программы, устанавливать и удалять контрольные точки или условия остановки и т. д.

Наиболее распространёнными отладчиками являются:

- GNU Debugger – отладчик программ от проекта GNU;

- IDA – дизассемблер и низкоуровневый отладчик для операционных систем семейства Windows и GNU/Linux;

- Microsoft Visual Studio – среда разработки программного обеспечения, включающая средства отладки от корпорации Microsoft;

- OllyDbg – бесплатный низкоуровневый отладчик для операционных систем семейства Windows;

- SoftICE – низкоуровневый отладчик для операционных систем семейства Windows;

- Dr. Watson – стандартный отладчик Windows, позволяет создавать дампы памяти;

- WinDbg – бесплатный отладчик от корпорации Microsoft.

Основным процессом отладки является трассировка. Трассировка – это процесс пошагового выполнения программы. В режиме трассировки программист видит последовательность выполнения команд и значения переменных на данном шаге выполнения программы, что позволяет легче обнаруживать ошибки. Трассировка может быть начата и окончена в любом месте программы, выполнение программы может останавливаться на каждой команде или на точках останова, трассировка может выполнятся с заходом в процедуры/функции и без заходов.

Наиболее важным модулем ИСР при совместной разработке проектов средней и высокой степени сложности является система управления версиями. Система управления версиями (английская аббревиатура CVS) - программное обеспечение для облегчения работы с изменяющейся информацией. Она позволяет хранить несколько версий одного и того же документа, при необходимости, возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение и многое другое.

Такие системы наиболее широко применяются при разработке программного обеспечения, для хранения исходных кодов разрабатываемой программы. Однако они могут с успехом применяться и в других областях, в которых ведётся работа с большим количеством непрерывно изменяющихся электронных документов, в частности, они всё чаще применяются в САПР, обычно в составе систем управления данными об изделии. Управление версиями используется в инструментах конфигурационного управления различных устройств и систем.

В нашей стране, возможно в связи с малым количеством масштабных проектов, системы управления версиями распространение не получили, несмотря на то, что их использование является залогом успешной реализации крупных проектов. В связи с этим остановимся подробнее на этой возможности ИСР.

Большинство систем управления версиями используют централизованную модель, когда имеется единое хранилище документов, управляемое специальным сервером, который и выполняет большую часть функций по управлению версиями. Пользователь, работающий с документами, должен сначала получить нужную ему версию документа из хранилища; обычно создаётся локальная копия документа, так называемая «рабочая копия». Может быть получена последняя версия или любая из предыдущих, выбранная по номеру версии или дате создания, иногда и по другим признакам. После того, как в документ внесены нужные изменения, новая версия помещается в хранилище. В отличие от простого сохранения файла, предыдущая версия не стирается, а тоже остаётся в хранилище и может быть получена оттуда в любое время. Сервер может использовать дельта-компрессию – способ хранения документов, при котором сохраняются только изменения между последовательными версиями, что позволяет уменьшить объём хранимых данных.

Иногда создание новой версии выполняется незаметно для пользователя (прозрачно) – либо с помощью прикладной программы, имеющей встроенную поддержку такой функции, либо за счёт использования специальной файловой системы. В последнем случае пользователь просто работает с файлом как обычно, и при сохранении файла автоматически создаётся новая версия.

Часто бывает, что над одним проектом одновременно работают несколько человек. Если два человека изменяют один и тот же файл, то один из них может случайно отменить изменения, сделанные другим. Системы управления версиями отслеживают такие конфликты и предлагают средства их решения. Большинство систем может автоматически объединить (слить) изменения, сделанные разными разработчиками. Однако такое автоматическое объединение изменений, возможно обычно только для текстовых файлов и то, только при условии, что изменялись разные (непересекающиеся) части этого файла. Такое ограничение связано с тем, что большинство систем управления версиями ориентированы на поддержку процесса разработки программного обеспечения, а исходные коды программ хранятся в текстовых файлах. Если автоматическое объединение выполнить не удалось, система может предложить решить проблему вручную.

Часто выполнить слияние невозможно ни в автоматическом, ни в ручном режиме, например, в случае, если формат файла слишком сложен или вообще неизвестен. Некоторые системы управления версиями дают возможность заблокировать файл в хранилище. Блокировка не позволяет другим пользователям получить рабочую копию или препятствует изменению рабочей копии файла (например, средствами файловой системы) и обеспечивает таким образом исключительный доступ только тому пользователю, который работает с документом.

Другие возможности системы управления версиями состоят:

- в создании разных вариантов одного документа-ветки, с общей историей изменений до точки ветвления и с разными – после неё.

- возможности узнать, кто и когда добавил или изменил конкретный набор строк в файле;

- ведении журнала изменений, куда пользователи могут записывать пояснения о том, что и почему они изменили в данной версии;

- контролирует права доступа пользователей, разрешении или запрете чтения или изменения данных в зависимости от того, кто запрашивает это действие.

Отдельным классом являются распределённые системы управления версиями. Такие системы используют распределённую модель вместо традиционной клиент-серверной. Они, в общем случае, не нуждаются в централизованном хранилище: вся история изменения документов хранится на каждом компьютере, в локальном хранилище, и при необходимости отдельные фрагменты истории локального хранилища синхронизируются с аналогичным хранилищем на другом компьютере. В некоторых таких системах локальное хранилище располагается непосредственно в каталогах рабочей копии.

Когда пользователь такой системы выполняет обычные действия, такие, как извлечение определённой версии документа, создание новой версии и тому подобное, он работает со своей локальной копией хранилища. По мере внесения изменений хранилища, принадлежащие разным разработчикам, начинают различаться, и возникает необходимость в их синхронизации. Такая синхронизация может осуществляться с помощью обмена патчами или так называемыми наборами изменений (англ. change sets) между пользователями.

Основное преимущество распределённых систем заключается в их гибкости. Каждый разработчик может вести работу независимо, так, как ему удобно, сохраняя промежуточные варианты документов и передавая результаты другим участникам, когда посчитает нужным. При этом обмен наборами изменений может осуществляться по различным схемам. В небольших коллективах участники работы могут обмениваться изменениями по принципу «каждый с каждым», за счет чего отпадает необходимость в создании выделенного сервера. Крупное сообщество, наоборот, может использовать централизованный сервер, с которым синхронизируются копии всех его участников. Возможны и более сложные варианты, например, с созданием групп для работы по отдельным направлениям внутри более крупного проекта.

Для использования систем управления версиями необходимо владеть терминологией этих систем. Общепринятой терминологии не существует, в разных системах могут использоваться различные названия для одних и тех же действий.

Ниже приведены некоторые, наиболее часто используемые варианты. В связи с тем, что системы разрабатывались англоязычным сообществом, а русскоязычная терминология ещё на выработана, используются английские термины.

branch (ветвь) – направление разработки, независимое от других. Ветвь представляет собой копию части (как правило, одного каталога) хранилища, в которую можно вносить свои изменения, не влияющие на другие ветви. Документы в разных ветвях имеют одинаковую историю до точки ветвления и разные – после неё.

check-in, commit, submit – создание новой версии, публикация изменений. Распространение изменений, сделанных в рабочей копии, на хранилище документов. При этом в хранилище создаётся новая версия изменённых документов.

C heck-out, clone – извлечение документа из хранилища и создание рабочей копии.

C onflict – конфликтная ситуация, когда несколько пользователей сделали изменения одного и того же участка документа. Конфликт обнаруживается в случае, когда один пользователь уже опубликовал свои изменения, а второй только пытается их опубликовать и система сама не может корректно слить конфликтующие изменения. Поскольку программа может быть недостаточно разумна для того, чтобы определить, какое изменение является «корректным», второму пользователю нужно самому разрешить конфликт (resolve).

M erge, integration (слияние) - объединение независимых изменений в единую версию документа. Осуществляется, когда два человека изменили один и тот же файл или при переносе изменений из одной ветки в другую.

R epository (хранилище документов) - место, где система управления версиями хранит все документы вместе с историей их изменения и другой служебной информацией.

R evision (версия документа). Системы управления версиями различают версии по номерам, которые назначаются автоматически.

T ag, label (метка) – которую можно присвоить определённой версии документа. Метка представляет собой символическое имя для группы документов, причём описывает она не только набор имён файлов, но и ревизию каждого файла. Ревизии включённых в метку документов могут принадлежать разным моментам времени.

T runk, mainline (ствол) – основная ветвь разработки проекта. Политика работы со стволом может отличаться от проекта к проекту, но в целом она такова: большинство изменений вносится в ствол; если требуется серьёзное изменение, способное привести к нестабильности, создаётся ветвь, которая сливается со стволом, когда нововведение будет в достаточной мере испытано; перед выпуском очередной версии создаётся «релизная» ветвь, в которую вносятся только исправления.

U pdate, sync (обновление, синхронизация) – синхронизация рабочей копии до некоторого заданного состояния хранилища. Чаще всего это действие означает обновление рабочей копии до самого свежего состояния хранилища. Однако при необходимости можно синхронизировать рабочую копию и к более старому состоянию, чем текущее.

W orking copy (рабочая копия) – рабочая (локальная) копия документов.

Рассмотрим возможности ИСР на примере наиболее доступных и популярных версий.

Первоначально Eclipse разрабатывалась фирмой «IBM» в качестве корпоративного стандарта ИСР для разработки на разных языках под платформы от данной компании. По сведениям «IBM», проектирование и разработка стоили 40 млн. долл. Исходный код был полностью открыт и сделан доступным после того, как Eclipse был передан для дальнейшего развития независимому от «IBM» сообществу.

В основе Эклипс лежат фреймворк OSGi и SWT/JFace, на основе которых разработан следующий слой – RCP (Rich Client Platform, платформа для разработки полноценных клиентских приложений). RCP служит основой не только для Эклипс, но и для других RCP-приложений, например, Azureus и File Arranger. Следующий слой – сам Эклипс, представляющий собой набор расширений RCP: редакторы, панели, перспективы, модуль CVS и модуль Java Development Tools (JDT).

Эклипс – в первую очередь, полноценная Java ИСР, нацеленная на групповую разработку: поддержка CVS входит в поставку Эклипс, активно развиваются несколько вариантов SVN-модулей, существует поддержка VSS и других. В силу бесплатности и высокого качества, Эклипс во многих организациях является корпоративным стандартом для разработки приложений.

Второе назначение Эклипс – служить платформой для разработки новых расширений, чем он и завоевал популярность: любой разработчик может расширить Эклипс своими модулями. Уже существуют C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно с «IBM», и средства для языков COBOL, FORTRAN, PHP и прочие от различных разработчиков. Множество расширений дополняет среду Эклипс менеджерами для работы с базами данных, серверами приложений и др.


Рисунок 69 . Интерфейс главного окна Эклипс

Эклипс написана на Java, потому является платформо-независимым продуктом, за исключением библиотеки SWT, которая разрабатывается для всех распространённых платформ. Библиотека SWT используется вместо стандартной для Java библиотеки Swing. Она полностью опирается на нижележащую платформу (операционную систему), что обеспечивает быстроту и натуральный внешний вид пользовательского интерфейса, но иногда вызывает на разных платформах проблемы совместимости и устойчивости приложений.

Основой Eclipse является платформа расширенного клиента (RCP - от англ. rich client platform). Её компоненты:

- ядро платформы (загрузка Eclipse, запуск модулей);

- OSGi (стандартная среда поставки комплектов (англ. bundles));

- SWT (портируемый инструментарий виджетов);

- JFace (файловые буферы, работа с текстом, текстовые редакторы);

- рабочая среда Эклипс (панели, редакторы, проекции, мастеры).


Рисунок 70. Интерфейс KDevelop

KDevelop не включает в свой состав компилятор, вместо этого он использует любой компилятор для создания исполняемого кода.

Текущая стабильная версия поддерживает большое количество языков программирования, таких как Ада, Bash, C, C++, Фортран, Java, Pascal, Perl, PHP, Python, Ruby и SQL.

КДевелоп использует встроенный компонент – текстовый редактор – через технологию KParts. Основным редактором является Kate.

- подсветка исходного кода с учетом синтаксиса используемого языка программирования, который определяется автоматически;

- менеджер проектов для проектов разного типа, таких как Automake, qmake для проектов базирующихся на технологиях Qt и Ant для проектов, базирующихся на Java;

- навигатор классов (Class Browser);

- Front-end для GNU Compiler Collection;

- Front-end для GNU Debugger;

- помощников для генерации и обновления определения классов и платформы (framework);

- автоматическая система завершения кода (Си/C++);

- встроенная поддержка системы документирования исходных кодов (Doxygen);

- одна из систем контроля версий: SCM, CVS, Subversion, Perforce и ClearCase;

- функция Quick Open позволяющая быстро перемещаться по файлам.

KDevelop представляет собой «подключаемую» архитектуру. Когда разработчик делает изменения, он должен лишь скомпилировать плагин. Предусмотрена возможность сохранения профилей, указывающих какие плагины должны быть загружены. KDevelop не поставляется со встроенным текстовым редактором, он подключается как плагин. KDevelop не зависит от языка программирования и от платформы, на которой он запускается, поддерживая KDE, GNOME и много других технологий (например, Qt, GTK+ и wxWidgets).

Встроенный отладчик KDevelop позволяет работать графически со всеми средствами отладки, такими как точки останова и трассировки. Он также может работать с динамически подгружаемыми плагинами, в отличие от консольного gdb.

На данный момент существует примерно от 50 до 100 плагинов для данной IDE. Среди наиболее полезных – persistent project-wide code bookmarks, Code abbreviations, позволяющие быстро разворачивать текст, Source formatter, который переформатирует текст для style guide до сохранения, поиск по регулярным выражениям и project-wide поиск/замена.

Последней рассматриваемой ИСР является Microsoft Visual Studio (Microsoft Visual Studio, рис. 71). По сути, Microsoft Visual Studio является линейкой продуктов компании «Майкрософт», включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств.


Рисунок 71. Интерфейс Microsoft Visual Studio

Одним из главных преимуществ Майкрософт Визуал Студия является высокое качество документирования процесса разработки и описания возможных проблем в MSDN Library. Однако наиболее интересная для профессионала часть, посвящённая тонкостям разработки, существует только на английском языке.

Также компания «Майкрософт» предлагает бесплатный аналог продукта Visual Studio Express.

Интегрированные среды разработки IDE ( англ. Integrated development environment) были созданы для того, чтобы максимизировать производительность программиста благодаря тесно связанным компонентам с простым пользовательским интерфейсом. Это позволяет разработчику сделать меньше действий для переключения различных режимов, в отличие от дискретных программ разработки. Однако, так как интегрированные среды разработки являются сложным программным комплексом, то лишь после долгого процесса обучения среда разработки сможет качественно ускорить процесс разработки программного обеспечения.

Первые IDE были созданы для работы через консоль или терминал, которые сами по себе были новинкой: до того программы создавались на бумаге, вводились в машину с помощью предварительно подготовленных бумажных носителей (перфокарт, перфолент) и т. д.

Dartmouth BASIC был первым языком, который был создан с IDE, и был также первым, который был разработан для использования в консоли или терминале. Эта IDE (часть Dartmouth Time Sharing System) управлялась при помощи команд, поэтому существенно отличалась от более поздних, управляемых с помощью меню и горячих клавиш, и тем более графических IDE, распространённых в XXI веке. Однако она позволяла редактировать исходный код, управлять файлами, компилировать, отлаживать и выполнять программы способом, принципиально подобным современным IDE.

Maestro I — продукт от Softlab Munich, был первой в мире интегрированной средой разработки для программного обеспечения в 1975 г. и, возможно, мировым лидером в этой рыночной нише в течение 1970-х и 1980-х годов.

Одной из первых IDE с возможностью подключения плагинов была Softbench .

Начиная с 1980-х годов произошло бурное развитие и разнообразие интегрированных сред.

Одной из первых интегрированных сред, которая была качественная, недорогая и с быстрым компилятором стала среда Turbo Pascal фирмы Borland, руководителем разработки которой в середине 1980-х гг. стал Филипп Кан, ученик Никлауса Вирта.

Корпорация Microsoft внесла особо выдающийся вклад в развитие интегрированных сред, благодаря созданию и развитию среды Visual Studio , которая является одним из лучших образцов современной интегрированной среды.

Интегрированные среды

Программное обеспечение (ПО) - все или часть программ, процедур, правил и соответствующей документации системы обработки информации.

Среда разработки программного обеспечения (ПО) — совокупность программных средств, используемая программистами для разработки программного обеспечения .

Простая среда разработки включает в себя:

· средства автоматизации сборки,

Когда эти компоненты собраны в единый программный комплекс, говорят об интегрированной среде разработки .

Интегрированная среда разработки , IDE (англ. IDE, Integrated Development Environment или Integrated Debugging Environment ) — система программных средств, используемая программистами для разработки программного обеспечения (ПО). Такая среда представлена одной программой, не выходя из которой можно производить весь цикл разработки.

В состав комплекса кроме перечисленных выше компонент могут входить

· средства управления проектами

· инструменты для упрощения разработки интерфейса пользователя

· стандартные заготовки («мастера»), упрощающие разработку стандартных задач

Современные среды разработки, поддерживающие объектно-ориентированную разработку ПО, также включают

· диаграмму иерархии классов

Обычно IDE ориентирована на определенный язык программирования, предоставляя набор функций, который наиболее близко соответствует парадигмам этого языка программирования. Однако, есть некоторые IDE с поддержкой нескольких языков, такие как Eclipse, ActiveState Komodo, последние версии NetBeans, Microsoft Visual Studio, WinDev и Xcode

Если IDE включает в себя возможность визуального редактирования интерфейса программы, она называется средой визуальной разработки .

Пример задачи в интегрированной среде:

Вывести привет мир!


Интегрированные среды разработки также часто поддерживают пометки в комментариях в исходном тексте программ, отмечающие места, требующие дальнейшего внимания или предполагающие внесение изменений, такие как TODO. В дальнейшем эти пометки могут выделяться редакторами (напр. vim, emacs, встроенный редактор Visual Studio) или использоваться для организации совместной работы с построением тегов и задач (например, в IntelliJ). Использование комментариев с TODO так же является стандартом оформления кода на Object Pascal, Delphi. Microsoft в руководстве по Visual Studio рекомендует использовать тег TODO (наравне с HACK, UNDONE) для следующих пометок:

  • добавление новых функций;
  • известных проблем, которые нужно устранить;
  • предполагаемых к реализации классов;
  • мест размещения кода обработчиков ошибок;
  • напоминаний о необходимости переработки участка кода.

Обычно интегрированная среда разработки - это совокупность программных средств, поддерживающая все этапы разработки программного обеспечения от написания исходного текста программы до ее компиляции и отладки, и обеспечивающая простое и быстрое взаимодействие с другими инструментальными средствами (программным отладчиком-симулятором, внутрисхемным эмулятором, эмулятором ПЗУ и программатором).

Строго говоря, интегрированные среды разработки не относятся к числу средств отладки. Отладка – лишь одно из свойств интегрированных сред, которые представляют собой основу любой визуальной среды разработки.

При традиционном подходе, начальный этап написания программы строится следующим образом:

1. Исходный текст набирается при помощи какого-либо текстового редактора.

2. По завершении набора, работа с текстовым редактором прекращается и запускается кросс компилятор.

3. Как правило, вновь написанная программа содержит синтаксические ошибки, и компилятор сообщает о них на консоль оператора.

И этот цикл может повторяться не один раз. Если программа имеет большой объем, собирается из различных частей, и подвергается длительному редактированию или модернизации, то даже этот начальный этап может потребовать много сил и времени. После этого наступает этап отладки программы и к редактору с компилятором добавляется эмулятор или симулятор, за работой которого хотелось бы следить прямо по тексту программы в текстовом редакторе.

Интегрированные среды (оболочки) разработки (Integrated Development Environment, IDE) позволяют избежать большого объема однообразных действий и тем самым существенно повысить эффективность процесса разработки и отладки позволяют, то есть они являются RAD-средами различной степени автоматизации процесса программирования.

Рассмотрим по подробнее основные компоненты интегрированных сред.

Основные компоненты интегрированных сред

Как говорилось выше, простая среда разработки включает в себя:

· средства автоматизации сборки,

1)Текстовый редактор — самостоятельная компьютерная программа или компонент программного комплекса (например, редактор исходного кода интегрированной среды разработки или окно ввода в браузере), предназначенная для создания и изменения текстовых данных в общем и текстовых файлов в частности.

Текстовые редакторы предназначены для работы с текстовыми файлами в интерактивном режиме. Они позволяют просматривать содержимое текстовых файлов и производить над ними различные действия — вставку, удаление и копирование текста, контекстный поиск и замену, сортировку строк, просмотр кодов символов и конвертацию кодировок , печать и т. п.

Текстовые редакторы содержат дополнительную функциональность, призванную автоматизировать действия по редактированию (от записываемых последовательностей нажатий клавиш до полноценных встроенных языков программирования ), или отображают текстовые данные специальным образом (например, с подсветкой синтаксиса ).

Виды текстовых редакторов:

· Построчный (строковый) текстовый редактор ( англ. line editor) работает с текстом как последовательностью пронумерованных строк, выполняя операции над текстом в указанных строках. Примером такого редактора может быть edlin, входивший в состав MS-DOS .

· Контекстный (строковый) редактор ( англ. context editor), примером которого может быть ECCE ( англ. Edinburgh Compatible Context Editor), выполняет операции над текстом в текущей позиции.

· Экранный текстовый редактор позволяет пользователю перемещать курсор в тексте с помощью клавиш или других устройств ввода.

2)Компилятор — программа , выполняющая компиляцию.

Компилировать — проводить трансляцию машинной программы с объектно-ориентированного языка на машинно-ориентированный язык.

Программа-компилятор ( от слова compile – составлять, собирать) переводит исходный текст в машинный код и записывает его на диск в форме исполняемого(загрузочного) файла. После этого программа выполняется независимо от исходного текста.

Интерпретатор — программа (разновидность транслятора ), выполняющая интерпретацию.

Интерпретация — пооператорный (покомандный, построчный) анализ, обработка и тут же выполнение исходной программы или запроса (в отличие от компиляции , при которой программа транслируется без её выполнения).

Программа-интерпретатор всегда работает совместно с исходным текстом. Она разбирает каждую инструкцию исходного текста (интерпретирует ее) и немедленно исполняет (т.е. файл на машинном языке не создается). Программа в режиме интерпретации работает гораздо медленнее, чем та же программа в машинном коде. Это связано с тем, что каждую инструкцию приходится разбирать во время выполнения (а не заранее, как при компиляции). Многие инструкции в программе выполняются многократно, - и при каждом выполнении интерпретируются заново. Поэтому всюду, где возможно стараются заменить режим интерпретации режимом компиляции. Правда, интерпретация имеет и свои преимущества: с ее помощью проще отлаживать программу. Иногда пользуются режимом «псевдокомпиляции»: ускоряют интерпретацию. За счет предварительного запоминания тех или иных элементов разобранных команд в памяти машины.

Типы интерпретаторов:

· Простой интерпретатор анализирует и тут же выполняет (собственно интерпретация) программу по командно (или построчно), по мере поступления её исходного кода на вход интерпретатора. Достоинством такого подхода является мгновенная реакция. Недостаток — такой интерпретатор обнаруживает ошибки в тексте программы только при попытке выполнения команды (или строки) с ошибкой.

· Интерпретатор компилирующего типа — это система из компилятора , переводящего исходный код программы в промежуточное представление, например, в байт-код или p-код , и собственно интерпретатора, который выполняет полученный промежуточный код (так называемая виртуальная машина ). Достоинством таких систем является большее быстродействие выполнения программ (за счёт выноса анализа исходного кода в отдельный, разовый проход, и минимизации этого анализа в интерпретаторе). Недостатки — большее требование к ресурсам и требование на корректность исходного кода. Применяется в таких языках, как Java и др., а также в различных СУБД .

3)Автоматизация сборки — этап написания скриптов или автоматизация широкого спектра задач, применяемого разработчиками в их повседневной деятельности. Включает в себя такие действия, как:

  • компиляцияисходного кода в бинарный код
  • сборка бинарного кода
  • выполнение тестов
  • разворачивание программы на производственной платформе
  • написание сопроводительной документации или описание изменений новой версии

4)Отладчик (дебаггер, англ. debugger) — компьютерная программа , предназначенная для поиска ошибок в других программах , ядрах операционных систем, SQL-запросах и других видах кода. Отладчик позволяет выполнять трассировку , отслеживать, устанавливать или изменять значения переменных в процессе выполнения кода, устанавливать и удалять контрольные точки или условия остановки и т.д.

Основные функции IDE

IDE очень часто представляет из себя единственную программу, в которой проводилась вся разработка. Она содержит много функций для:

· отладки программного обеспечения

Цель среды разработки заключается в абстрагировании конфигурации, необходимой, чтобы объединить утилиты командной строки в одном модуле, который позволит уменьшить время, чтобы изучить язык, и повысить производительность разработчика. Также считается, что трудная интеграция задач разработки может далее повысить производительность. Например, IDE позволяет проанализировать код и тем самым обеспечить мгновенную обратную связь и уведомить о синтаксических ошибках. В то время как большинство современных IDE являются графическими, они использовались еще до того, как появились системы управления окнами (которые реализованы в Microsoft Windows или X11 для *nix-систем). Они были основаны на тексте, используя функциональные клавиши или горячие клавиши, чтобы выполнить различные задачи (например, Turbo Pascal). Использование IDE для разработки программного обеспечения является прямой противоположностью способа, в котором используются несвязанные инструменты, такие как vi (текстовый редактор), GCC (компилятор), и т.п.

Для больших проектов в среду разработки включаются разнородные продукты разных фирм, разных версий. Пример такого набора: файловый менеджер, набор вспомогательных утилит и пакетных файлов, С++ Builder – как IDE , PLSQL Developer – для работы с СУБД Oracle , Cristal Reports – для создания отчетов , StarTeam – для ведения версий и поддержки коллективной работы.

Работа в интегрированной среде дает программисту:

  • Возможность использования встроенного многофайлового текстового редактора, специально ориентированного на работу с исходными текстами программ;
  • Иметь автоматическую диагностику выявленных при компиляции ошибок, когда исходный текст программы, доступный редактированию, выводится одновременно с диагностикой в многооконном режиме;
  • Возможность параллельной работы над несколькими проектами. Менеджер проектов позволяет использовать любой проект в качестве шаблона для вновь создаваемого проекта;
  • Минимум перекомпиляции. Ей подвергаются только редактировавшиеся модули;
  • Возможность загрузки отлаживаемой программы в имеющиеся средства отладки, и возможность работы с ними без выхода из оболочки;
  • Возможность подключения к оболочке практически любых программных средств.

В последнее время, функции интегрированных сред разработки становятся стандартной принадлежностью программных интерфейсов эмуляторов и отладчиков-симуляторов

Ознакомление с концепцией интегрированной среды разработки приложений, ее типовыми возможностями, историей развития интегрированных сред, возможностями наиболее известных из них.

1.1. Введение

Данный курс познакомит Вас с возможностями новой версии интегрированной среды Visual Studio 2013 и использованием данной среды для облачных вычислений на платформе Microsoft Azure.

1.2. Концепция интегрированной среды разработки приложений

Интегрированная среда (integrated development environment - IDE) - набор инструментов для разработки и отладки программ, имеющий общую интерактивную графическую оболочку, поддерживающую выполнение всех основных функций жизненного цикла разработки программы - набор и редактирование исходного текста (кода), компиляцию (сборку), исполнение , отладку, профилирование и др.

Использование интегрированной среды - один из возможных подходов к разработке программ. Альтернативой ему является более ранний, традиционный подход системы UNIX , основанный на использовании набора инструментов ( toolkit , toolbox ), родственных по тематике и функциональности, но не объединенных в одну интегрированную интерактивную среду и подчас (в ранних версиях системы UNIX ) вызываемых в режиме командной строки (command line interface).

Разумеется, использовать интегрированную среду гораздо удобнее для разработчика, чем и объясняется бурное развитие и разнообразие интегрированных сред, начиная с 1980-х годов.

Одной из первых интегрированных сред стала среда Turbo Pascal [1] фирмы Borland, руководителем разработки которой в середине 1980-х гг. стал Филипп Кан, ученик Никлауса Вирта.

Корпорация Microsoft внесла особо выдающийся вклад в развитие интегрированных сред, благодаря созданию и развитию среды Visual Studio , которая является одним из лучших образцов современной интегрированной среды. Ее новую версию, Visual Studio 2013, мы и рассмотрим в данном курсе.

1.3. История интегрированных сред

Идея интегрированных сред достигла еще большего развития к середине 1980-х гг., когда появились две группы популярных интегрированных сред:

  • Турбо-среды (Turbo Pascal, Turbo C, Turbo C++, Delphi и др.) фирмы Borland для поддержки программирования на этих языках, реализованные сначала для операционной системы MS DOS, затем - для ОС Windows;
  • GNU Emacs [2] - многоязыковая и многоплатформная интегрированная среда разработки, реализованная для MS DOS, затем для Windows, OpenVMS и для Linux. Среди сотрудников моей группы разработчиков, работавших с фирмой Sun Microsystems в 1990-х гг., было немало пользователей и энтузиастов среды GNU Emacs, благодаря ее реализации для платформы Solaris.

Следует также упомянуть интегрированную среду тех лет для разработки программ на объектно-ориентированном языке Smalltalk [3] фирмы Xeror PARC - одну из первых интегрированных сред ООП , в которой впервые появилось понятие байт-кода как бинарной постфиксной формы промежуточного представления программы и понятие just-in-time (JIT, динамического) компилятора, выполняющего при первом вызове метода его компиляцию в платформно-зависимый (native) код целевого компьютера.

Турбо-среды фирмы Borland оказали огромное влияние на разработчиков ПО и создателей инструментов разработки ПО . Их характерной чертой стала поддержка непрерывного цикла разработки: набор и редактирование исходного текста - компиляция - анализ и исправление ошибок - завершение компиляции - исполнение и отладка - без выхода из интегрированной среды, причем все эти этапы управлялись простым набором функциональных клавиш и не требовали явного вызова каких-либо отдельных инструментов. Привлекательным качеством Турбо-сред стала также высокая скорость компиляции. Хотя в первых версиях Турбо-Паскаля компиляция осуществлялась до первой ошибки, и для поиска и диагностики всех ошибок приходилось, после исправления предыдущей, запускать компиляцию снова, но это выполнялось мгновенно с помощью функциональных клавиш.

Турбо-среды имели встроенный механизм сборки ( build ) для полной компиляции всех исходных текстов проекта в бинарный код, а также режим make (F9), аналогичный функциональности классической утилиты make системы UNIX , для повторной компиляции только измененных модулей исходного текста.

Самым важным нововведением в среде Турбо- Паскаль было расширение входного языка объектно-ориентированными концепциями ( класс , объект ) и конструкцией unit ( модуль ), воплощающей в себе идею независимой единицы компиляции ( compilation unit ). Поддержка ООП появилась в версии 5.5. Впоследствии эти идеи были развиты, уже на платформе Windows , в новых версиях интегрированных сред фирмы Borland - Borland Pascal и Delphi ( язык программирования фирмы Borland, развивающий идеи Паскаля в сочетании с ООП ).

Я со своей группой в начале 1990-х гг. разработал большое число инструментов и приложений на объектно-ориентированном Турбо-Паскале (5.5, 6.0), объемом до нескольких десятков тысяч строк исходного текста (компиляторов, экспертных систем, систем расчета непотопляемости судов, для ВМФ, и др.), используя, по современным понятиям, более чем скромную конфигурацию оборудования - IBM PC с 640 килобайтами памяти под управлением MS DOS . Для размещения в памяти попеременно больших исполняемых модулей использовалась оверлейная структура ( overlay ). Ограничение в 640 килобайт (максимальный размер исполняемой программы в MS DOS ) накладывало весьма серьезные ограничения на размер единицы компиляции, даже если фактически память компьютера имела больший объем, например, 2 МБ. Вследствие ограниченного объема памяти приходилось искусственно разбивать модули (units) на части. Тем не менее, комфортные интегрированные Турбо-среды были для нас просто бальзамом после неуклюжей поддержки основных инструментов на традиционных mainframe-компьютерах, на которых приходилось работать в режиме командной строки. Производительность работы программистов возросла в Турбо-средах просто фантастически, в десятки раз. "И уйду на PC, и утешусь на Турбо-Паскале" - пели мы в нашем программистском фольклоре тех лет.

1.4. Основные возможности современных интегрированных сред

Суммируем теперь основные возможности интегрированных сред разработки программ. Для каждой из них характерно наличие следующих компонент :

  • Единая интерактивная оболочка, обеспечивающая вызов всех других компонент, не выходя из среды, с широким использованием функциональных клавиш;
  • Текстовый редактор для набора и редактирования исходных текстов программ. В недавнем прошлом в отечественной традиции использовался именно термин исходный текст, впоследствии стал использоваться термин исходный код (source code);
  • Система поддержки сборки (build), то есть компиляции проектов из исходных кодов, включающая компилятор с исходного реализуемого языка и компоновщик (linker) объектных бинарных кодов в единый исполняемый код (загрузочный модуль); компоновщик используется либо штатный, входящий в состав операционной системы, либо специфичный для данной среды;
  • Отладчик (debugger) для отладки программ в среде с помощью типичного набора команд: установить контрольную точку остановки; остановиться в заданной процедуры (методе); визуализировать значения переменных (или, на более низком уровне, регистров и областей памяти).

Современные текстовые редакторы в интегрированных средах обеспечивают также режим автоматического завершения кода (code completion), который в них включен по умолчанию и в котором редактор среды подсказывает разработчику кода возможные и синтаксически правильные его продолжения - например, отсутствие закрывающей скобки, отсутствие точки с запятой; возможные варианты имен методов при вызове метода от объекта какого-либо определенного класса, и т.д.

В современных версиях интегрированных сред появились также следующие возможности (компоненты):

10 лучших IDE

IDE (Integrated Development Environment) – это интегрированная, единая среда разработки, которая используется разработчиками для создания различного программного обеспечения. IDE представляет собой комплекс из нескольких инструментов, а именно: текстового редактора, компилятора либо интерпретатора, средств автоматизации сборки и отладчика. Помимо этого, IDE может содержать инструменты для интеграции с системами управления версиями и другие полезные утилиты. Есть IDE, которые предназначены для работы только с одним языком программирования, однако большинство современных IDE позволяет работать сразу с несколькими.

Сегодня я расскажу вам о 10 лучших средах разработки как в платном, так и в бесплатном сегменте.

А еще мы поговорили с опытными разработчиками о том, какие IDE они считают наилучшими и могли бы порекомендовать новичкам. С их мнениями вы можете ознакомиться в конце статьи.

Чем IDE отличается от текстового редактора?

IDE представляет собой более сложный инструмент, чем обычный текстовый редактор. Несмотря на то что в текстовых редакторах есть масса полезных функций вроде подсветки синтаксиса, единственная их задача – обеспечивать работу с кодом. То есть для полноценной разработки вам понадобится еще хотя бы компилятор и отладчик.

IDE уже содержит в себе все эти и другие полезные компоненты. По сути, термин IDE обозначает то, что у вас под рукой будет все, что необходимо для разработки приложений и программ.

Какая среда разработки подойдет конкретно для вас? В этом вопросе надо основываться на четырех факторах:

  • язык разработки;
  • простота использования;
  • на каких платформах работает;
  • стоимость.

Итак, давайте рассмотрим лучшие среды разработки.

Лучшие платные IDE

PhpStorm

PhpStorm

Платформы: Windows/Linux/macOS

Поддерживаемые языки: PHP, JavaScript, HTML, CSS, SASS, LESS и т.д.

Стоимость: от 199$ в год (последующие года будут стоить дешевле).

Умная среда от известной компании JetBrains предназначена для разработки на PHP, JavaScript, HTML и CSS и идеально подходит для работы с различными CMS: Drupal, Wordpress, Symfony, Joomla и многими другими. Среда разработки глубоко анализирует структуру кода, помогая избегать ошибок, а также поддерживает базы данных и SQL.

Преимущества

  • Автодополнение кода и качественная отладка.
  • Удобная навигация.
  • Безопасный рефакторинг – применить изменения во всем проекте можно за пару кликов.
  • Функция Live Edit позволяет мгновенно посмотреть все изменения в браузере.
  • Интерфейс будет понятен даже новичкам.

Недостатки

  • Нет бесплатной версии. Но можно скачать триал.

CLion

CLion

Платформы: Windows/Linux/macOS

Поддерживаемые языки: С++, C, Objective C, Kotlin, Python, Swift, Fortran, JavaScript, CSS и другие.

Стоимость: от 199$ в год (последующие года будут стоить дешевле).

И снова продукт JetBrains. CLion – идеальное кроссплатформенное решение для тех, кто работает на C и C++ (и не только). Умный редактор, удобный генератор кода, статический и динамический анализ, безопасный рефакторинг… Особенности данной среды разработки можно перечислять бесконечно.

Преимущества

  • Поддержка удаленной разработки по SSH.
  • Просмотр значений переменных прямо в редакторе.
  • Умная помощь при написании кода.
  • Возможность кастомизировать редактор.
  • Быстрый и безопасный рефакторинг.
  • Широкий функционал. IDE можно использовать даже для программирования микроконтроллеров.

Недостатки

  • Нет бесплатной версии. Но, как и в случае с PhpStorm, можно скачать пробную версию.

Лучшие условно-бесплатные IDE

Microsoft Visual Studio

Microsoft Visual Studio

Платформы: Windows/macOS (для Linux есть только редактор кода)

Стоимость: от 45$ в месяц. Есть бесплатная версия (Community) для частного использования, студентов и создателей опенсорсовых проектов.

Microsoft Visual Studio – это премиум IDE, стоимость которой зависит от редакции и типа подписки. Она позволяет создавать самые разные проекты, начиная с мобильных и веб-приложений и заканчивая видеоиграми. Microsoft Visual Studio включает в себя множество инструментов для тестирования совместимости – вы сможете проверить свое приложение на более чем 300 устройствах и браузерах. Благодаря своей гибкости, эта IDE отлично подойдет как для студентов, так и для профессионалов.

Особенности:

  • Огромная коллекция всевозможных расширений, которая постоянно пополняется.
  • Технология автодополнения IntelliSense.
  • Возможность кастомизировать рабочую панель.
  • Поддержка разделенного экрана (split screen).

Из недостатков можно выделить тяжеловесность этой IDE. Для выполнения даже небольших правок могут потребоваться значительные ресурсы, поэтому если нужно выполнить какую-то простую и быструю задачу, удобнее использовать более легкий редактор.

PyCharm

PyCharm

Платформы: Windows/Linux/macOS

Поддерживаемые языки: Python, Jython, Cython, IronPython, PyPy, AngularJS, Coffee Script, HTML/CSS, Django/Jinja2 templates, Gql, LESS/SASS/SCSS/HAML, Mako, Puppet, RegExp, Rest, SQL, XML, YAML и т.д.

Стоимость: от 199$ в год. Есть бесплатная версия, но она работает только с Python.

Это интегрированная среда разработки на языке Python, которая была разработана международной компанией JetBrains (да, и снова эти ребята). Эта IDE распространяется под несколькими лицензиями, в том числе как Community Edition, где чуть урезан функционал. Сами разработчики характеризуют свой продукт как «самую интеллектуальную Python IDE с полным набором средств для эффективной разработки на языке Python».

Преимущества

  • Поддержка Google App Engine; IronPython, Jython, Cython, PyPy wxPython, PyQt, PyGTK и др.
  • Поддержка Flask-фреймворка и языков Mako и Jinja2.
  • Редактор Javascript, Coffescript, HTML/CSS, SASS, LESS, HAML.
  • Интеграция с системами контроля версий (VCS).
  • UML диаграммы классов, диаграммы моделей Django и Google App Engine.

Недостатки

  • Иногда встречаются баги, которые, как правило, не вызывают сильных неудобств.

IntelliJ IDEA

IntelliJ IDEA

Платформы: Windows/Linux/macOS

Поддерживаемые языки: Java, AngularJS, Scala, Groovy, AspectJ, CoffeeScript, HTML, Kotlin, JavaScript, LESS, Node JS, PHP, Python, Ruby, Sass,TypeScript, SQL и другие.

Стоимость: от 499$ в год. Бесплатная версия работает только с Java и Android.

Еще одна IDE, разработанная компанией Jet Brains. Здесь тоже есть возможность использовать бесплатную версию Community Edition, а у платной версии есть тестовый 30-дневный период. Изначально IntelliJ IDEA создавалась как среда разработки для Java, но сейчас разработчики определяют эту IDE как «самую умную и удобную среду разработки для Java, включающую поддержку всех последних технологий и фреймворков». Используя плагины, эту IDE можно использовать для работы с другими языками.

Преимущества

  • Инструменты для анализа качества кода, удобная навигация, расширенные рефакторинги и форматирование для Java, Groovy, Scala, HTML, CSS, JavaScript, CoffeeScript, ActionScript, LESS, XML и многих других языков.
  • Интеграция с серверами приложений, включая Tomcat, TomEE, GlassFish, JBoss, WebLogic, WebSphere, Geronimo, Resin, Jetty и Virgo.
  • Инструменты для работы с базами данных и SQL файлами.
  • Интеграция с коммерческими системами управления версиями Perforce, Team Foundation Server, ClearCase, Visual SourceSafe.
  • Инструменты для запуска тестов и анализа покрытия кода, включая поддержку всех популярных фреймворков для тестирования.

Недостатки

Придется потратить время для того, чтобы разобраться в этой IDE, поэтому начинающим программистам она может показаться сложноватой.

Лучшие бесплатные IDE

Eclipse

Eclipse IDE

Платформы: Windows/Linux/macOS

Поддерживаемые языки: C, C++, Java, Perl, PHP, Python, Ruby и другие.

Это бесплатная опенсорсная среда разработки, которая хорошо подойдет как новичкам, так и опытным разработчикам. Помимо инструментов отладки и поддержки Git/CVS, Eclipse поставляется с Java и инструментом для создания плагинов. Изначально Eclipse использовалась только для Java, но сейчас, благодаря плагинам и расширениям, ее функции значительно расширились. Именно из-за возможности расширить Eclipse своими модулями эта платформа и завоевала свою популярность среди разработчиков. Функционал Eclipse не такой большой, как у IntelliJ IDEA, зато эта среда разработки распространяется с открытым исходным кодом.

Преимущества

  • Возможность программировать на множестве языков.
  • Значительная гибкость среды за счет модульности.
  • Возможность интеграции JUnit.
  • Удаленная отладка (при использовании JVM).

Недостатки

  • Новичкам может быть сложно разобраться в многообразии возможностей.

NetBeans

Netbeans logo

Платформы: Windows/Linux/macOS/BSD

Поддерживаемые языки: C, C++, C++ 11, Fortan, HTML 5, Java, PHP и другие.

Это бесплатная опенсорсная IDE. Прекрасно подойдет как для работы с уже имеющимися проектами, так и для создания нового. Это одна из лучших IDE для разработки Java-приложений, в которую можно установить пакеты, обеспечивающие и поддержку других языков.

Преимущества

  • Интуитивно понятный интерфейс drag-and-drop.
  • Динамические и статические библиотеки.
  • Возможность удаленной разработки.
  • Совместима с Windows, Linux, macOS и Solaris.
  • Поддержка Qt.
  • Поддерживает различные компиляторы, в том числе CLang/LLVM, Cygwin, GNU, MinGW и Oracle Solaris Studio.

Недостатки

  • NetBeans требуется много памяти, поэтому на некоторых машинах эта среда может подтормаживать.

Xcode

XCode

Платформы: macOS

Поддерживаемые языки: AppleScript, C, C++, Java, Objective-C, Swift. ​

Функциональная среда для создания приложений под продукты Apple – iPhone, iPad, Mac, Apple TV и Apple Watch. В IDE могут работать как индивидуальные, так и корпоративные разработчики. Чтобы разместить созданное приложение в App Store, необходимо купить лицензию разработчика.

Преимущества

  • Фирменный компилятор Apple.
  • Создание прототипов без написания кода.
  • Умный анализатор кода.

Недостатки

Code::Blocks

Code::Blocks

Платформы: Windows/Linux/macOS

Поддерживаемые языки: C, C++, Fortran

Опенсорсная среда разработки – простая, нетребовательная к ресурсам и очень производительная. Поддерживает огромное количество компиляторов и отладчиков. Расширить функционал можно с помощью бесплатных плагинов.

Преимущества

  • Удобная структура меню.
  • Высокая производительность.
  • Встроенная система быстрой сборки.

Недостатки

  • Не подойдет профессионалам.
  • Много багов.
  • Несколько устаревший интерфейс

Komodo

KOMODO IDE

Платформы: Windows/Linux/macOS

Поддерживаемые языки: CSS, JavaScript, HTML, NodeJS, Perl, PHP, Python, Ruby и другие.

IDE Komodo поддерживает огромное множество языков программирования, что делает ее невероятно популярной для веб и мобильной разработки. Кроме того, с недавних пор среда распространяется бесплатно.

Читайте также: