SlideShare a Scribd company logo
1 of 39
О С О Б Е Н Н О С Т И
Р А Б О Т Ы
С
I D E
КОНЦЕПЦИЯ ИНТЕГРИРОВАННОЙ
СРЕДЫ РАЗРАБОТКИ ПРИЛОЖЕНИЙ
• Интегрированная среда (integrated development environment - IDE) - набор
инструментов для разработки и отладки программ, имеющий общую интерактивную
графическую оболочку, поддерживающую выполнение всех основных функций
жизненного цикла разработки программы - набор и редактирование исходного текста
(кода), компиляцию (сборку), исполнение, отладку, профилирование и др.
• Использование интегрированной среды - один из возможных подходов к разработке
программ.Альтернативой ему является более ранний, традиционный подход
системы UNIX, основанный на использовании набора инструментов (toolkit, toolbox),
родственных по тематике и функциональности, но не объединенных в одну
интегрированную интерактивную среду и подчас (в ранних версиях системы UNIX)
вызываемых в режиме командной строки (command line interface).
ИСТОРИЯ ИНТЕГРИРОВАННЫХ СРЕД
• Турбо-среды (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.
ОСНОВНЫЕ ВОЗМОЖНОСТИ СОВРЕМЕННЫХ
ИНТЕГРИРОВАННЫХ СРЕД
• Единая интерактивная оболочка, обеспечивающая вызов всех других компонент, не выходя из среды,
с широким использованием функциональных клавиш;
• Текстовый редактор для набора и редактирования исходных текстов программ. В недавнем прошлом в
отечественной традиции использовался именно термин исходный текст, впоследствии стал
использоваться термин исходный код (source code);
• Система поддержки сборки (build), то есть компиляции проектов из исходных кодов, включающая
компилятор с исходного реализуемого языка и компоновщик (linker) объектных бинарных кодов в
единый исполняемый код (загрузочный модуль); компоновщик используется либо штатный, входящий в
состав операционной системы, либо специфичный для данной среды;
• Отладчик (debugger) для отладки программ в среде с помощью типичного набора команд: установить
контрольную точку остановки; остановиться в заданной процедуры (методе); визуализировать
значения переменных (или, на более низком уровне, регистров и областей памяти).
СОВРЕМЕННЫЕ ВОЗМОЖНОСТИ
ИНТЕГРИРОВАННЫХ СРЕД
• Профилировщик (profiler) - инструмент для накопления и анализа статистических
данных, полученных в результате исполнения программы под управлением
интегрированной среды: число вызовов процедур (методов), объем памяти,
используемой при выполнении программы, и т.д.
• Рефакторинг (refactoring) - инструментарий систематических групповых
модификаций программ в среде, без принципиальных изменений их
функциональности, с целью улучшения кода. К типичным подобным действиям
относится, например, изменение имени метода в его определении и во всех
использованиях, добавление его аргумента, добавление try/catch - блока для
обработки ранее не учтенного исключения и т.п.
ГЕНЕРАТОР ТЕСТОВ
• Генератор тестов (unit test generator) -
инструмент для генерации типовых тестов
для тестирования модулей (units) - методов
или процедур - с различными возможными
сочетаниями значений аргументов;
типичные примеры - инструмент JUnit в
интегрированных Java-средах и
аналогичный инструмент NUnit в среде
Visual Studio
CVS, TEAMWORK
• Система управления версиями исходных кодов
(source code control system) или инструмент
интеграции среды с одной из существующих
версионных систем (CVS, RCS, Mercurial,Visual
SourceSafe и др.) - поддержка управления версиями
файлов исходных кодов проектов в среде при
сопровождении программ
• Инструменты поддержки командной разработки
программ (teamwork) - этапов жизненного цикла
программы (требования и спецификации,
проектирование, реализация, тестирование),
распределения заданий по разработке среди
участников команды программистов, контроля
выполнения заданий менеджером проекта. В среде
Visual Studio такая компонента называлась
сначала Team Foundation Server (TFS), а, начиная с
версииVisual Studio 2013, она реализована в
виде облачного интерфейса и получила название
Visual Studio Online.
АНАЛИЗ КОДА
• Инструменты анализа кода (code analysis) - его семантической корректности: отсутствие
некоторых видов ошибок, обнаруживаемых обычно при исполнении, например,
недостижимые условия; отсутствие необходимых проверок и полномочий безопасности и
др.
ВИЗУАЛИЗАЦИЯ КОДА
• Инструменты визуализации сгенерированного
бинарного кода - методов, переменных, их имен и т.д.
Например, в средеVisual Studio для этой цели имеется
утилита ildasm (IL disassembler), позволяющая
визуализировать единый промежуточный (бинарный) код
платформы .NET - Common Intermediate Language - CIL,
сгенерированный одним из компиляторов среды
• Инструменты "запутывания" кода (obfuscation),
выполняющие именно с этой целью замену имен
элементов кода - классов, методов, полей и т.д. на
непонятные, "случайные", "запутанные" имена, с целью
затруднения изучения декомпилированного бинарного
кода, для защиты от "взлома" кода злоумышленниками,
которые хотят несанкционированным образом присвоить
себе новые идеи, содержащиеся в коде, либо изучить его
со злонамеренными целями организации атак.
ПОДДЕРЖКА ПРОЕКТОВ
• Поддержка создания различных видов программных проектов (projects) и
решений (solutions) на основе типовых шаблонов кода (code patterns);
• Механизм разработки расширений (plug-ins, add-ins, add-ons).
• При современной разработке программ подчас требуется создавать очень
сильно отличающиеся друг от друга разновидности приложений и
инструментов - консольные (простейшие) приложения, Web-приложения и
Web-сервисы, мобильные приложения, облачные приложения и др.
• Для каждой из этих разновидностей требуется разработка специфической
структуры файлов исходного кода, а также конфигурационных файлов
(configuration files), специфицирующих, например, полномочия безопасности
кода, Web-конфигурации и др.
• Современные интегрированные среды автоматизируют создание различного
рода проектов, предоставляя шаблоны исходного кода и генерируя
автоматически необходимые для проекта конфигурационные файлы.
ПОДДЕРЖКА UML
• Современная версия языка UML (2.x)
обеспечивает построение моделей
различного рода программ и
соответствующих этим
моделям диаграмм. Кроме того, UML
поддерживает разработку моделей
деятельности при разработке
программ и взаимодействия
разработчиков между собой (activity
diagrams).
МОНОЯЗЫКОВЫЕ И МНОГОЯЗЫКОВЫЕ
ИНТЕГРИРОВАННЫЕ СРЕДЫ
• Первоначально интегрированные среды разрабатывались для программирования на
каком-либо одном исходном языке/ Например, средаТурбо-Паскаль - для
программирования на расширении языка Паскаль фирмы Borland.
• Однако постепенно проявилась тенденция к превращению
таких моноязыковых интегрированных сред в многоязыковые, поскольку для
разработки проектов на различных языках используются сходные принципы
и механизмы и, кроме того, иногда удобно использовать в большим проекте фрагменты
программы, написанные на разных языках. Например, хотелось бы использовать
готовый унаследованный код (legacy code), написанный на более раннем языке
(например, Си), чтобы не переписывать его заново, например, на C#, с единственной
целью включения в проект.
ПЕРВАЯ ВЕРСИЯ VISUAL STUDIO
Интегрированная среда Microsoft Visual Studio берет свое начало с 1995 года, когда была
выпущена первая версия продукта под таким названием.
• MicrosoftVisual C++ - интерактивная среда программирования на языкеVisual C++,
расширении языка C++, разработанном и реализованном фирмой Microsoft. ЯзыкVisual C++ в
составе всех версийVisual Studio и ныне остается наиболее популярным и широко
используемым языком программирования в мире;
• Visual Basic - объектно-ориентированное расширение языка BASIC, разработанное и
реализованное фирмой Microsoft, которое сразу начало активно использоваться
программистами всего мира, так как сочетало в себе простоту языка BASIC с новейшими
объектно-ориентированными расширениями.
• MicrosoftVisual FoxPro - интерактивная среда программирования на языкеVisual FoxPro -
объектно-ориентированном языке с элементами процедурного программирования,
разработанном под названием FoxBase первоначально небольшой фирмой Fox Software.
• MicrosoftVisual SourceSafe - разработанная фирмой Microsoft система управления версиями
исходных кодов, впоследствии интегрированная со средойVisual Studio.
VISUAL STUDIO 97
• Новая (пятая) версия Visual Studio,
известная также как Visual Studio 97 и
под кодовым названием Boston, была
выпущена в 1997 году.
• Технология ASP - выдающаяся
разработка фирмы Microsoft в области
Web-программирования, появилась в
1994-1995 гг. Предназначена для
разработки активныхWeb-страниц -
шаблонов для генерации HTML-страниц
для клиентских браузеров в качестве
ответов наWeb-запросы.
VISUAL STUDIO 6.0
В нее, кроме уже новых версий уже известных
нам компонент - Visual C++, Visual
Basic, VJ++ и InterDev, (в максимальном варианте -
Visual Studio Enterprise Edition) вошли также
следующие новые компоненты для
поддержки визуального моделирования и анализа
производительности программ:
• Application Performance Explorer
• Automation Manager
• MicrosoftVisual Modeler
• RemAuto Connection Manager
• Visual Studio Analyzer
Visual Studio 6.0 - версия, использованная фирмой
Microsoft в качестве основы для создания новой
версии интегрированной среды, включающей
единую многоязыковую виртуальную платформу
для выполнения программ - .NET.
VISUAL STUDIO.NET (2002)
Наиболее важное нововведение в данной
версии - реализация многоязыковой
платформы .NET Framework, обеспечивающей
надежное и безопасное программирование с
полным контролем типов и безопасности на
базе управляемого кода (managed
code), общей инфраструктуры языков
(Common Language Infrastructure -
CLI), единого промежуточного языка
(Common Intermediate Language - CIL), общей
системы типов (CommonType System - CTS).
VISUAL STUDIO.NET 2003
• С точки зрения развития продукта в
целом, данная версия не внесла
существенных изменений: основная
цель выпуска новой версии состояла в
том, чтобы обеспечить обновление до
версии .NET Framework 1.1.
• Однако весьма важным
нововведением Visual Studio 2003 была
реализация версии .NET для мобильных
устройств - .NET Compact Framework
и поддержка разработки приложений
для мобильных устройств
средствами Visual Studio.
VISUAL STUDIO.NET 2005
• Основные нововведения версии
касались параметризованных типов
данных (generics).Они были реализованы
в версии языка C# 2.0 и в .NET Framework
2.0. Интересно отметить, что в это же
время аналогичные возможности были
реализованы в языке Java 1.5, однако
подчеркнем, что механизм generics на
платформе .NET и в языке C# реализован в
более удобном, гибком и расширенном
варианте, по сравнению с Java.
VISUAL STUDIO.NET 2008
• В версииVS 2008 введен новый
визуальный дизайнер приложений,
использующих Windows Presentation
Foundation (WPF) - API для
поддержки GUI.
• В отладчикеVS 2008
реализована поддержка отладки
многопоточных приложений.
VISUAL STUDIO.NET 2010
• Наиболее важное нововведение
в Visual Studio (внутренний номер версии -
10, кодовое название - Dev10) - появление в
"джентльменском наборе" поддерживаемых
языков еще одного языка -
функционального языка F#. Автором языка
является Дон Сайм (Don Syme) из Microsoft
Research, Кембридж, Великобритания.
• Язык F# сочетает в себе возможности чисто
функционального программирования со
средствами объектно-ориентированного
программирования, параллельного
программирования и средствами
интеграции со всеми остальными
возможностями .NET Framework
и Visual Studio. Это весьма перспективный
язык, нашедший себе много приверженцев,
в особенности среди молодых
программистов.
VISUAL STUDIO 2012
• В августе 2012 года вышла
версия Visual Studio 2012 под кодовым
названием MetroTheme. В ней был
улучшен пользовательский интерфейс,
разработан новый инструмент
просмотра проектов (solution explorer),
улучшена поддержка цветов для
выделения фрагментов кода.
• Как отмечает Microsoft, общий размер
исходного кода для Visual Studio 2012
достиг 50 миллионов (!) строк.
ПОЧЕМУ IDE ВАЖНА?
• Для написания кода можно использовать любой текстовый редактор.
• Однако большинство интегрированных сред разработки (IDE) включают в себя
функции, выходящие за рамки редактирования текста.
• Они предоставляют центральный интерфейс для общих инструментов разработчика,
делая процесс разработки программного обеспечения гораздо более эффективным.
АВТОМАТИЗАЦИЯ
РЕДАКТИРОВАНИЯ КОДА
• В языках программирования существуют
правила структурирования утверждений.
Поскольку IDE знает эти правила, она
содержит множество интеллектуальных
функций для автоматического написания
или редактирования исходного кода.
ВЫДЕЛЕНИЕ СИНТАКСИСА
• IDE может форматировать
написанный текст,
автоматически выделяя
некоторые слова жирным или
курсивом либо используя
различные цвета шрифта. Эти
визуальные подсказки делают
исходный код более
читабельным и мгновенно
информируют о случайных
синтаксических ошибках.
ИНТЕЛЛЕКТУАЛЬНОЕ ЗАВЕРШЕНИЕ
КОДА
• Когда вы начинаете набирать слова в
поисковой системе, появляются
различные поисковые запросы.
• Аналогичным образом IDE может
предлагать завершить ввод кода,
когда разработчик начинает набирать
текст.
ПОДДЕРЖКА РЕФАКТОРИНГА
• Рефакторинг кода – это процесс реструктуризации исходного кода с целью сделать его
более эффективным и читаемым без изменения его основной функциональности.
• IDE могут в некоторой степени использовать авторефакторинг, позволяя
разработчикам быстро и легко улучшать свой код.
АВТОМАТИЗАЦИЯ ЛОКАЛЬНОЙ
СБОРКИ
• IDE повышают производительность труда программистов, выполняя повторяющиеся
задачи разработки, которые обычно являются частью каждого изменения кода. Ниже
приведены примеры регулярных задач кодирования, которые выполняет IDE.
КОМПИЛЯЦИЯ
• IDE компилирует или преобразует код в упрощенный язык, понятный операционной
системе. Некоторые языки программирования реализуют компиляцию «точно в срок»,
при которой IDE преобразует понятный при прочтении код в машинный код внутри
приложения.
ТЕСТИРОВАНИЕ
• IDE позволяет разработчикам
автоматизировать модульные тесты
локально, прежде чем программное
обеспечение будет интегрировано с
кодом других разработчиков и будут
запущены более сложные
интеграционные тесты.
ОТЛАДКА
• Отладка – это процесс исправления любых ошибок или недочетов, которые выявляет
тестирование.
• Одна из самых больших ценностей IDE для целей отладки заключается в том, что вы
можете построчно просматривать код, по мере его выполнения и проверять поведение
кода.
КАКИЕ ВИДЫ IDE СУЩЕСТВУЮТ?
Локальные IDE
Разработчики устанавливают и запускают локальные IDE непосредственно на своих
локальных машинах. Им также приходится загружать и устанавливать различные
дополнительные библиотеки в зависимости от их предпочтений в кодировании, требований
проекта и языка разработки.
• Хотя локальные IDE являются настраиваемыми и не требуют подключения к Интернету
после установки, они сопряжены с несколькими проблемами.
• Их установка может отнимать много времени и быть сложной.
• Они потребляют локальные ресурсы машины и могут значительно замедлить ее работу.
• Различия в конфигурации между локальной машиной и производственной средой могут
привести к ошибкам в программном обеспечении.
ОБЛАЧНЫЕ IDE
• Разработчики используют облачные IDE для написания, редактирования и компиляции
кода непосредственно в браузере, что избавляет их от необходимости загружать
программное обеспечение на локальные машины. Облачные IDE имеют ряд
преимуществ перед традиционными.
СТАНДАРТИЗИРОВАННАЯ СРЕДА
РАЗРАБОТКИ
Команды разработчиков программного обеспечения могут централизованно настроить
облачную IDE для создания стандартной среды разработки. Этот метод помогает им
избежать ошибок, которые могут возникнуть из-за различий в конфигурации локальной
машины.
НЕЗАВИСИМОСТЬ ОТ ПЛАТФОРМЫ
• Облачные IDE работают в браузере и не зависят от локальных сред разработки. Это
означает, что они подключаются непосредственно к облачной платформе поставщика,
поэтому разработчики могут использовать их с любой машины.
УЛУЧШЕННАЯ
ПРОИЗВОДИТЕЛЬНОСТЬ
• Создание и компиляция функций в IDE требует много памяти и может замедлить работу
компьютера разработчика.Облачная IDE использует вычислительные ресурсы из
облака и освобождает ресурсы локальной машины.
КАК ВЫБРАТЬ IDE?
На рынке можно найти множество современных интегрированных сред разработки (IDE) с
различными возможностями и разной ценой. Многие IDE имеют открытый исходный код
или являются бесплатными для использования и настройки.
ЯЗЫК ПРОГРАММИРОВАНИЯ
• Язык программирования, на котором вы хотите писать, часто диктует выбор IDE.
• Специализированные IDE имеют функции автоматизации, которые особенно подходят
для синтаксиса конкретных языков.
• С другой стороны, мультиязычные IDE поддерживают несколько языков.
ОПЕРАЦИОННАЯ СИСТЕМА
• Хотя большинство IDE имеют несколько версий для различных операционных систем,
они могут лучше работать на определенных платформах.
• Например, некоторые IDE могут оптимально работать на платформе Linux, но могут
быть медленными или сложными в использовании на других платформах.
АВТОМАТИЗАЦИЯ ФУНКЦИЙ
Три общие функции большинства IDE – это редактор исходного кода, автоматизация
сборки и отладчик.
Дополнительные функции могут варьироваться и могут включать следующее:
• Улучшения пользовательского интерфейса редактора кода
• Автоматическое тестирование функций
• Поддержка развертывания кода с помощью интеграции плагинов
• Поддержка рефакторинга кода
• Поддержка упаковки приложений

More Related Content

Similar to 2IDE~1.PPT

Обзор Технологий iOS
Обзор Технологий iOSОбзор Технологий iOS
Обзор Технологий iOSk-svirsky
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кодаSergii Shmarkatiuk
 
4 особенности платформы microsoft .net для разработки корпоративных систем
4 особенности платформы microsoft .net для разработки корпоративных систем4 особенности платформы microsoft .net для разработки корпоративных систем
4 особенности платформы microsoft .net для разработки корпоративных системKewpaN
 
терминология vol.2
терминология vol.2терминология vol.2
терминология vol.2SBTech
 
Создаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровожденияСоздаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровожденияOvadiah Myrgorod
 
Workflow: работа над проектом в Яндексе
Workflow: работа над проектом в ЯндексеWorkflow: работа над проектом в Яндексе
Workflow: работа над проектом в ЯндексеDenis Chistyakov
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеYandex
 
Профстандарт "Системный программист"
Профстандарт "Системный программист"Профстандарт "Системный программист"
Профстандарт "Системный программист"Денис Ефремов
 
Промышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. ИнструментыПромышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. ИнструментыMikhail Payson
 
Tool View Interface of Integrated Development Environment / Исследование инте...
Tool View Interface of Integrated Development Environment / Исследование инте...Tool View Interface of Integrated Development Environment / Исследование инте...
Tool View Interface of Integrated Development Environment / Исследование инте...Ivan Ruchkin
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012InTRUEdeR
 

Similar to 2IDE~1.PPT (20)

Обзор Технологий iOS
Обзор Технологий iOSОбзор Технологий iOS
Обзор Технологий iOS
 
Java one presentation
Java one presentationJava one presentation
Java one presentation
 
Net framework
Net frameworkNet framework
Net framework
 
Lekcia3
Lekcia3Lekcia3
Lekcia3
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кода
 
4 особенности платформы microsoft .net для разработки корпоративных систем
4 особенности платформы microsoft .net для разработки корпоративных систем4 особенности платформы microsoft .net для разработки корпоративных систем
4 особенности платформы microsoft .net для разработки корпоративных систем
 
терминология vol.2
терминология vol.2терминология vol.2
терминология vol.2
 
Создаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровожденияСоздаем Drupal дистрибутив: от идеи до сопровождения
Создаем Drupal дистрибутив: от идеи до сопровождения
 
Workflow: работа над проектом в Яндексе
Workflow: работа над проектом в ЯндексеWorkflow: работа над проектом в Яндексе
Workflow: работа над проектом в Яндексе
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
 
TypeScript
TypeScriptTypeScript
TypeScript
 
UML: CASE Tools Overview
UML: CASE Tools OverviewUML: CASE Tools Overview
UML: CASE Tools Overview
 
Профстандарт "Системный программист"
Профстандарт "Системный программист"Профстандарт "Системный программист"
Профстандарт "Системный программист"
 
Промышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. ИнструментыПромышленная разработка ПО. Лекция 2. Инструменты
Промышленная разработка ПО. Лекция 2. Инструменты
 
Artsofte for b2 b
Artsofte for b2 b Artsofte for b2 b
Artsofte for b2 b
 
Tool View Interface of Integrated Development Environment / Исследование инте...
Tool View Interface of Integrated Development Environment / Исследование инте...Tool View Interface of Integrated Development Environment / Исследование инте...
Tool View Interface of Integrated Development Environment / Исследование инте...
 
Lecture 11 1
Lecture 11 1Lecture 11 1
Lecture 11 1
 
Lecture 11 1
Lecture 11 1Lecture 11 1
Lecture 11 1
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012
 

2IDE~1.PPT

  • 1. О С О Б Е Н Н О С Т И Р А Б О Т Ы С I D E
  • 2. КОНЦЕПЦИЯ ИНТЕГРИРОВАННОЙ СРЕДЫ РАЗРАБОТКИ ПРИЛОЖЕНИЙ • Интегрированная среда (integrated development environment - IDE) - набор инструментов для разработки и отладки программ, имеющий общую интерактивную графическую оболочку, поддерживающую выполнение всех основных функций жизненного цикла разработки программы - набор и редактирование исходного текста (кода), компиляцию (сборку), исполнение, отладку, профилирование и др. • Использование интегрированной среды - один из возможных подходов к разработке программ.Альтернативой ему является более ранний, традиционный подход системы UNIX, основанный на использовании набора инструментов (toolkit, toolbox), родственных по тематике и функциональности, но не объединенных в одну интегрированную интерактивную среду и подчас (в ранних версиях системы UNIX) вызываемых в режиме командной строки (command line interface).
  • 3. ИСТОРИЯ ИНТЕГРИРОВАННЫХ СРЕД • Турбо-среды (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.
  • 4. ОСНОВНЫЕ ВОЗМОЖНОСТИ СОВРЕМЕННЫХ ИНТЕГРИРОВАННЫХ СРЕД • Единая интерактивная оболочка, обеспечивающая вызов всех других компонент, не выходя из среды, с широким использованием функциональных клавиш; • Текстовый редактор для набора и редактирования исходных текстов программ. В недавнем прошлом в отечественной традиции использовался именно термин исходный текст, впоследствии стал использоваться термин исходный код (source code); • Система поддержки сборки (build), то есть компиляции проектов из исходных кодов, включающая компилятор с исходного реализуемого языка и компоновщик (linker) объектных бинарных кодов в единый исполняемый код (загрузочный модуль); компоновщик используется либо штатный, входящий в состав операционной системы, либо специфичный для данной среды; • Отладчик (debugger) для отладки программ в среде с помощью типичного набора команд: установить контрольную точку остановки; остановиться в заданной процедуры (методе); визуализировать значения переменных (или, на более низком уровне, регистров и областей памяти).
  • 5. СОВРЕМЕННЫЕ ВОЗМОЖНОСТИ ИНТЕГРИРОВАННЫХ СРЕД • Профилировщик (profiler) - инструмент для накопления и анализа статистических данных, полученных в результате исполнения программы под управлением интегрированной среды: число вызовов процедур (методов), объем памяти, используемой при выполнении программы, и т.д. • Рефакторинг (refactoring) - инструментарий систематических групповых модификаций программ в среде, без принципиальных изменений их функциональности, с целью улучшения кода. К типичным подобным действиям относится, например, изменение имени метода в его определении и во всех использованиях, добавление его аргумента, добавление try/catch - блока для обработки ранее не учтенного исключения и т.п.
  • 6. ГЕНЕРАТОР ТЕСТОВ • Генератор тестов (unit test generator) - инструмент для генерации типовых тестов для тестирования модулей (units) - методов или процедур - с различными возможными сочетаниями значений аргументов; типичные примеры - инструмент JUnit в интегрированных Java-средах и аналогичный инструмент NUnit в среде Visual Studio
  • 7. CVS, TEAMWORK • Система управления версиями исходных кодов (source code control system) или инструмент интеграции среды с одной из существующих версионных систем (CVS, RCS, Mercurial,Visual SourceSafe и др.) - поддержка управления версиями файлов исходных кодов проектов в среде при сопровождении программ • Инструменты поддержки командной разработки программ (teamwork) - этапов жизненного цикла программы (требования и спецификации, проектирование, реализация, тестирование), распределения заданий по разработке среди участников команды программистов, контроля выполнения заданий менеджером проекта. В среде Visual Studio такая компонента называлась сначала Team Foundation Server (TFS), а, начиная с версииVisual Studio 2013, она реализована в виде облачного интерфейса и получила название Visual Studio Online.
  • 8. АНАЛИЗ КОДА • Инструменты анализа кода (code analysis) - его семантической корректности: отсутствие некоторых видов ошибок, обнаруживаемых обычно при исполнении, например, недостижимые условия; отсутствие необходимых проверок и полномочий безопасности и др.
  • 9. ВИЗУАЛИЗАЦИЯ КОДА • Инструменты визуализации сгенерированного бинарного кода - методов, переменных, их имен и т.д. Например, в средеVisual Studio для этой цели имеется утилита ildasm (IL disassembler), позволяющая визуализировать единый промежуточный (бинарный) код платформы .NET - Common Intermediate Language - CIL, сгенерированный одним из компиляторов среды • Инструменты "запутывания" кода (obfuscation), выполняющие именно с этой целью замену имен элементов кода - классов, методов, полей и т.д. на непонятные, "случайные", "запутанные" имена, с целью затруднения изучения декомпилированного бинарного кода, для защиты от "взлома" кода злоумышленниками, которые хотят несанкционированным образом присвоить себе новые идеи, содержащиеся в коде, либо изучить его со злонамеренными целями организации атак.
  • 10. ПОДДЕРЖКА ПРОЕКТОВ • Поддержка создания различных видов программных проектов (projects) и решений (solutions) на основе типовых шаблонов кода (code patterns); • Механизм разработки расширений (plug-ins, add-ins, add-ons). • При современной разработке программ подчас требуется создавать очень сильно отличающиеся друг от друга разновидности приложений и инструментов - консольные (простейшие) приложения, Web-приложения и Web-сервисы, мобильные приложения, облачные приложения и др. • Для каждой из этих разновидностей требуется разработка специфической структуры файлов исходного кода, а также конфигурационных файлов (configuration files), специфицирующих, например, полномочия безопасности кода, Web-конфигурации и др. • Современные интегрированные среды автоматизируют создание различного рода проектов, предоставляя шаблоны исходного кода и генерируя автоматически необходимые для проекта конфигурационные файлы.
  • 11. ПОДДЕРЖКА UML • Современная версия языка UML (2.x) обеспечивает построение моделей различного рода программ и соответствующих этим моделям диаграмм. Кроме того, UML поддерживает разработку моделей деятельности при разработке программ и взаимодействия разработчиков между собой (activity diagrams).
  • 12. МОНОЯЗЫКОВЫЕ И МНОГОЯЗЫКОВЫЕ ИНТЕГРИРОВАННЫЕ СРЕДЫ • Первоначально интегрированные среды разрабатывались для программирования на каком-либо одном исходном языке/ Например, средаТурбо-Паскаль - для программирования на расширении языка Паскаль фирмы Borland. • Однако постепенно проявилась тенденция к превращению таких моноязыковых интегрированных сред в многоязыковые, поскольку для разработки проектов на различных языках используются сходные принципы и механизмы и, кроме того, иногда удобно использовать в большим проекте фрагменты программы, написанные на разных языках. Например, хотелось бы использовать готовый унаследованный код (legacy code), написанный на более раннем языке (например, Си), чтобы не переписывать его заново, например, на C#, с единственной целью включения в проект.
  • 13. ПЕРВАЯ ВЕРСИЯ VISUAL STUDIO Интегрированная среда Microsoft Visual Studio берет свое начало с 1995 года, когда была выпущена первая версия продукта под таким названием. • MicrosoftVisual C++ - интерактивная среда программирования на языкеVisual C++, расширении языка C++, разработанном и реализованном фирмой Microsoft. ЯзыкVisual C++ в составе всех версийVisual Studio и ныне остается наиболее популярным и широко используемым языком программирования в мире; • Visual Basic - объектно-ориентированное расширение языка BASIC, разработанное и реализованное фирмой Microsoft, которое сразу начало активно использоваться программистами всего мира, так как сочетало в себе простоту языка BASIC с новейшими объектно-ориентированными расширениями. • MicrosoftVisual FoxPro - интерактивная среда программирования на языкеVisual FoxPro - объектно-ориентированном языке с элементами процедурного программирования, разработанном под названием FoxBase первоначально небольшой фирмой Fox Software. • MicrosoftVisual SourceSafe - разработанная фирмой Microsoft система управления версиями исходных кодов, впоследствии интегрированная со средойVisual Studio.
  • 14. VISUAL STUDIO 97 • Новая (пятая) версия Visual Studio, известная также как Visual Studio 97 и под кодовым названием Boston, была выпущена в 1997 году. • Технология ASP - выдающаяся разработка фирмы Microsoft в области Web-программирования, появилась в 1994-1995 гг. Предназначена для разработки активныхWeb-страниц - шаблонов для генерации HTML-страниц для клиентских браузеров в качестве ответов наWeb-запросы.
  • 15. VISUAL STUDIO 6.0 В нее, кроме уже новых версий уже известных нам компонент - Visual C++, Visual Basic, VJ++ и InterDev, (в максимальном варианте - Visual Studio Enterprise Edition) вошли также следующие новые компоненты для поддержки визуального моделирования и анализа производительности программ: • Application Performance Explorer • Automation Manager • MicrosoftVisual Modeler • RemAuto Connection Manager • Visual Studio Analyzer Visual Studio 6.0 - версия, использованная фирмой Microsoft в качестве основы для создания новой версии интегрированной среды, включающей единую многоязыковую виртуальную платформу для выполнения программ - .NET.
  • 16. VISUAL STUDIO.NET (2002) Наиболее важное нововведение в данной версии - реализация многоязыковой платформы .NET Framework, обеспечивающей надежное и безопасное программирование с полным контролем типов и безопасности на базе управляемого кода (managed code), общей инфраструктуры языков (Common Language Infrastructure - CLI), единого промежуточного языка (Common Intermediate Language - CIL), общей системы типов (CommonType System - CTS).
  • 17. VISUAL STUDIO.NET 2003 • С точки зрения развития продукта в целом, данная версия не внесла существенных изменений: основная цель выпуска новой версии состояла в том, чтобы обеспечить обновление до версии .NET Framework 1.1. • Однако весьма важным нововведением Visual Studio 2003 была реализация версии .NET для мобильных устройств - .NET Compact Framework и поддержка разработки приложений для мобильных устройств средствами Visual Studio.
  • 18. VISUAL STUDIO.NET 2005 • Основные нововведения версии касались параметризованных типов данных (generics).Они были реализованы в версии языка C# 2.0 и в .NET Framework 2.0. Интересно отметить, что в это же время аналогичные возможности были реализованы в языке Java 1.5, однако подчеркнем, что механизм generics на платформе .NET и в языке C# реализован в более удобном, гибком и расширенном варианте, по сравнению с Java.
  • 19. VISUAL STUDIO.NET 2008 • В версииVS 2008 введен новый визуальный дизайнер приложений, использующих Windows Presentation Foundation (WPF) - API для поддержки GUI. • В отладчикеVS 2008 реализована поддержка отладки многопоточных приложений.
  • 20. VISUAL STUDIO.NET 2010 • Наиболее важное нововведение в Visual Studio (внутренний номер версии - 10, кодовое название - Dev10) - появление в "джентльменском наборе" поддерживаемых языков еще одного языка - функционального языка F#. Автором языка является Дон Сайм (Don Syme) из Microsoft Research, Кембридж, Великобритания. • Язык F# сочетает в себе возможности чисто функционального программирования со средствами объектно-ориентированного программирования, параллельного программирования и средствами интеграции со всеми остальными возможностями .NET Framework и Visual Studio. Это весьма перспективный язык, нашедший себе много приверженцев, в особенности среди молодых программистов.
  • 21. VISUAL STUDIO 2012 • В августе 2012 года вышла версия Visual Studio 2012 под кодовым названием MetroTheme. В ней был улучшен пользовательский интерфейс, разработан новый инструмент просмотра проектов (solution explorer), улучшена поддержка цветов для выделения фрагментов кода. • Как отмечает Microsoft, общий размер исходного кода для Visual Studio 2012 достиг 50 миллионов (!) строк.
  • 22. ПОЧЕМУ IDE ВАЖНА? • Для написания кода можно использовать любой текстовый редактор. • Однако большинство интегрированных сред разработки (IDE) включают в себя функции, выходящие за рамки редактирования текста. • Они предоставляют центральный интерфейс для общих инструментов разработчика, делая процесс разработки программного обеспечения гораздо более эффективным.
  • 23. АВТОМАТИЗАЦИЯ РЕДАКТИРОВАНИЯ КОДА • В языках программирования существуют правила структурирования утверждений. Поскольку IDE знает эти правила, она содержит множество интеллектуальных функций для автоматического написания или редактирования исходного кода.
  • 24. ВЫДЕЛЕНИЕ СИНТАКСИСА • IDE может форматировать написанный текст, автоматически выделяя некоторые слова жирным или курсивом либо используя различные цвета шрифта. Эти визуальные подсказки делают исходный код более читабельным и мгновенно информируют о случайных синтаксических ошибках.
  • 25. ИНТЕЛЛЕКТУАЛЬНОЕ ЗАВЕРШЕНИЕ КОДА • Когда вы начинаете набирать слова в поисковой системе, появляются различные поисковые запросы. • Аналогичным образом IDE может предлагать завершить ввод кода, когда разработчик начинает набирать текст.
  • 26. ПОДДЕРЖКА РЕФАКТОРИНГА • Рефакторинг кода – это процесс реструктуризации исходного кода с целью сделать его более эффективным и читаемым без изменения его основной функциональности. • IDE могут в некоторой степени использовать авторефакторинг, позволяя разработчикам быстро и легко улучшать свой код.
  • 27. АВТОМАТИЗАЦИЯ ЛОКАЛЬНОЙ СБОРКИ • IDE повышают производительность труда программистов, выполняя повторяющиеся задачи разработки, которые обычно являются частью каждого изменения кода. Ниже приведены примеры регулярных задач кодирования, которые выполняет IDE.
  • 28. КОМПИЛЯЦИЯ • IDE компилирует или преобразует код в упрощенный язык, понятный операционной системе. Некоторые языки программирования реализуют компиляцию «точно в срок», при которой IDE преобразует понятный при прочтении код в машинный код внутри приложения.
  • 29. ТЕСТИРОВАНИЕ • IDE позволяет разработчикам автоматизировать модульные тесты локально, прежде чем программное обеспечение будет интегрировано с кодом других разработчиков и будут запущены более сложные интеграционные тесты.
  • 30. ОТЛАДКА • Отладка – это процесс исправления любых ошибок или недочетов, которые выявляет тестирование. • Одна из самых больших ценностей IDE для целей отладки заключается в том, что вы можете построчно просматривать код, по мере его выполнения и проверять поведение кода.
  • 31. КАКИЕ ВИДЫ IDE СУЩЕСТВУЮТ? Локальные IDE Разработчики устанавливают и запускают локальные IDE непосредственно на своих локальных машинах. Им также приходится загружать и устанавливать различные дополнительные библиотеки в зависимости от их предпочтений в кодировании, требований проекта и языка разработки. • Хотя локальные IDE являются настраиваемыми и не требуют подключения к Интернету после установки, они сопряжены с несколькими проблемами. • Их установка может отнимать много времени и быть сложной. • Они потребляют локальные ресурсы машины и могут значительно замедлить ее работу. • Различия в конфигурации между локальной машиной и производственной средой могут привести к ошибкам в программном обеспечении.
  • 32. ОБЛАЧНЫЕ IDE • Разработчики используют облачные IDE для написания, редактирования и компиляции кода непосредственно в браузере, что избавляет их от необходимости загружать программное обеспечение на локальные машины. Облачные IDE имеют ряд преимуществ перед традиционными.
  • 33. СТАНДАРТИЗИРОВАННАЯ СРЕДА РАЗРАБОТКИ Команды разработчиков программного обеспечения могут централизованно настроить облачную IDE для создания стандартной среды разработки. Этот метод помогает им избежать ошибок, которые могут возникнуть из-за различий в конфигурации локальной машины.
  • 34. НЕЗАВИСИМОСТЬ ОТ ПЛАТФОРМЫ • Облачные IDE работают в браузере и не зависят от локальных сред разработки. Это означает, что они подключаются непосредственно к облачной платформе поставщика, поэтому разработчики могут использовать их с любой машины.
  • 35. УЛУЧШЕННАЯ ПРОИЗВОДИТЕЛЬНОСТЬ • Создание и компиляция функций в IDE требует много памяти и может замедлить работу компьютера разработчика.Облачная IDE использует вычислительные ресурсы из облака и освобождает ресурсы локальной машины.
  • 36. КАК ВЫБРАТЬ IDE? На рынке можно найти множество современных интегрированных сред разработки (IDE) с различными возможностями и разной ценой. Многие IDE имеют открытый исходный код или являются бесплатными для использования и настройки.
  • 37. ЯЗЫК ПРОГРАММИРОВАНИЯ • Язык программирования, на котором вы хотите писать, часто диктует выбор IDE. • Специализированные IDE имеют функции автоматизации, которые особенно подходят для синтаксиса конкретных языков. • С другой стороны, мультиязычные IDE поддерживают несколько языков.
  • 38. ОПЕРАЦИОННАЯ СИСТЕМА • Хотя большинство IDE имеют несколько версий для различных операционных систем, они могут лучше работать на определенных платформах. • Например, некоторые IDE могут оптимально работать на платформе Linux, но могут быть медленными или сложными в использовании на других платформах.
  • 39. АВТОМАТИЗАЦИЯ ФУНКЦИЙ Три общие функции большинства IDE – это редактор исходного кода, автоматизация сборки и отладчик. Дополнительные функции могут варьироваться и могут включать следующее: • Улучшения пользовательского интерфейса редактора кода • Автоматическое тестирование функций • Поддержка развертывания кода с помощью интеграции плагинов • Поддержка рефакторинга кода • Поддержка упаковки приложений