10 лучших ide

Содержание разделаIn this section

ЗаголовокTitle ОписаниеDescription
Пошаговое руководство. Создание стандартной программы на языке C++Walkthrough: Creating a Standard C++ Program Создайте консольное приложение Windows.Create a Windows console application.
Пошаговое руководство. Создание классических приложений Windows (C++)Walkthrough: Creating Windows Desktop Applications (C++) Создайте собственное классическое приложение для Windows.Create a native Windows desktop application.
Мастер классической версии WindowsWindows Desktop Wizard Используйте мастер для создания новых проектов Windows.Use the wizard to create new Windows projects.
Библиотека шаблонных классов (ATL)Active Template Library (ATL) Использование библиотеки ATL для создания COM-компонентов в C++.Use the ATL library to create COM components in C++.
Microsoft Foundation Classes (MFC)Microsoft Foundation Classes (MFC) Использование MFC для создания крупных или небольших приложений Windows с помощью диалоговых окон и элементов управленияUse MFC to create large or small Windows applications with dialogs and controls
Общие классы ATL и MFCATL and MFC Shared Classes Используйте такие классы, как CString, которые являются общими в ATL и MFC.Use classes such as CString that are shared in ATL and MFC.
Доступ к даннымData Access OLE DB и ODBCOLE DB and ODBC
Текст и строкиText and Strings Различные типы строк в Windows.Various string types on Windows.
Ресурсы для создания игры с помощью DirectXResources for Creating a Game Using DirectX
Как использовать пакет SDK для Windows 10 в классическом приложении WindowsHow to: Use the Windows 10 SDK in a Windows Desktop Application Пакет Windows SDKWindows SDK
Работа с файлами ресурсовWorking with Resource Files Добавление изображений, значков, таблиц строк и других ресурсов в классическое приложение.How to add images, icons, string tables, and other resources to a desktop application.
Ресурсы для создания игры с использованием DirectX (C++)Resources for Creating a Game Using DirectX (C++) Ссылки на материалы по созданию игр на C++.Links to content for creating games in C++.
Как использовать пакет SDK для Windows 10 в классическом приложении WindowsHow to: Use the Windows 10 SDK in a Windows Desktop Application Содержит инструкции по настройке проекта для построения с помощью пакета SDK для Windows 10.Contains steps for setting up your project to build using the Windows 10 SDK.
Развертывание классических приложенийDeploying Native Desktop Applications Развертывание собственных приложений в Windows.Deploy native applications on Windows.

C это следующая буква после B

В 1969 в компании Bell Labs Кен Томпсон и Деннис Ритчи решили написать язык B, чтобы улучшать операционную систему UNIX.

Кен Томпсон

Изначально ОС UNIX была написана на ассемблере, что сильно замедляло ее доработку.

Деннис Ритчи

Дальше произошла история, которую некоторые считают легендой. Сотрудники Bell Labs Брайан Керниган и Деннис Ритчи любили одну компьютерную игру. Но она запускалась на сервере. Они решили перенести эту игру на компьютер, который стоял у них в офисе. Попытка перенести игру кончилась неудачей, так как операционная система была написана на ассемблере и машинные коды компьютеров не совпадали.

Брайан Керниган

Тогда им пришло в голову, что нужно написать операционную систему на языке более высокого уровня. За основу взяли язык B и назвали новый язык New B. Но это было неудобно и поэтому позже переименовали этот язык в язык C, взяв следующую букву алфавита.

В 1973 язык С уже стал достаточно развит и на нем переписали операционную систему UNIX. С того момента язык С становится основным языком системного программирования.

Что нужно для программирования на C++

Самое нужное — это желание. Не имея желания программировать, Вам придется очень сложно себя пересиливать и вскоре это надоест. Программирование — это умственный процесс, оно может утомлять, даже если у вас сильно очень «загорелось». Кстати, у многих желание пропадает после прочтения половины учебной книги по языку программирования, т.к. появляются какие-то сложные конструкции или неинтересные для вас вещи. Например, Вы хотели сразу начать писать игры и изучать для этого нужные команды(классы и функции), а вам рассказывают об умных указателях, перегрузке функций или лямбда-выражениях. Если Вас не пугает то, что Вам придется изучить множество всего, что может показаться не нужным на первый взгляд, то милости просим в ряды начинающих программистов.

Для самого процесса программирования нужен сам программист и его рабочее место(компьютер с нужным софтом). Если вы читаете это, то наверняка с компьютера, поэтому всё необходимое вы уже имеете, за исключением IDE.

Итак, вам нужно:

  • Желание
  • Компьютер
  • Установленная IDE

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

Существует множество различных IDE для различных операционных систем.

IDE для Windows

Dev-C++. Самым оптимальным вариантом для программирования является IDE Dev-C++, есть все что нужно для начала, весит примерно 50 мегабайт. Простой интерфейс, легко разобраться. Скачать можно здесь.

IDE для Linux

Geany. Самый оптимальный вариант — Geany. Легковесно, просто, быстро и удобно.

QtCreator. Лучшая, на мой взгляд, IDE для Linux (И не только, она кроссплатформенная). Есть всё что нужно + Qt Framework из коробки.

Редакторы и IDE, разработанные для Python

PyCharm

Тип: IDE
Сайт: https://www.jetbrains.com/pycharm/

Одной из лучших полнофункциональных IDE, предназначенных именно для Python, является PyCharm. Существует как бесплатный open-source (Community), так и платный (Professional) варианты IDE. PyCharm доступен на Windows, Mac OS X и Linux.

PyCharm «из коробки» поддерживает разработку на Python напрямую — откройте новый файл и начинайте писать код. Вы можете запускать и отлаживать код прямо из PyCharm. Кроме того, в IDE есть поддержка проектов и системы управления версиями.

Преимущества: это среда разработки для Python с поддержкой всего и вся и хорошим коммьюнити. В ней «из коробки» можно редактировать, запускать и отлаживать Python-код.

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

Spyder

Тип: IDE
Сайт: https://github.com/spyder-ide/spyder

Spyder — open-source IDE для Python, оптимизированная для data science. Spyder идёт в комплекте с менеджером пакетов Anaconda, поэтому вполне возможно, что он у вас уже установлен.

Что в Spyder интересно, так это то, что его целевой аудиторией являются data scientist’ы, использующие Python. Например, Spyder хорошо взаимодействует с такими библиотеками для data science, как SciPy, NumPy и Matplotlib.

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

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

Про Spyder можно сказать, что он более «приземлённый», чем другие IDE. Его можно рассматривать как инструмент для определённой цели, а не как основную среду разработки. Что в нём хорошо, так это, что он бесплатный, open-source и доступный на Windows, macOS и Linux.

Преимущества: вы data scientist, который пользуется Anaconda.

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

Thonny

Тип: IDE
Сайт: http://thonny.org/

Thonny называют IDE для новичков. Написанный и поддерживаемый Институтом информатики Тартуского университета в Эстонии, Thonny доступен на всех основных платформах.

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

Преимущества: вы начинающий Python-программист и вам нужна IDE, с которой можно сразу идти в бой.

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

Начало работы с C++

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

Теперь давайте разберем главные аспекты C++ на примере. Для этого мы запустим тестовою программу, а затем шаг за шагом рассмотрим структуру программ в C++:

#include <iostream>
using namespace std;

int main() {
cout << «I love coding!» << endl;

return 0;
}

1
2
3
4
5
6
7
8

#include <iostream>

usingnamespacestd;

intmain(){

cout<<«I love coding!»<<endl;

return;

}

Можете скопировать данный код или напечатать самостоятельно (рекомендуется).

После выполнения программы мы увидим такое окно:

Наша первая программа

I love coding!

Process returned 0 (0x0) execution time : 0.020 s
Press any key to continue.

Установка и настройка Espruino IDE

Шаг 1. Установка Espruino IDE

Espruino Web IDE поддерживает три типа инсталляции:

Если у вас операционная система Windows 7 или 8, то Espruino из магазина приложений Chrome и web-версия могут не видеть COM-порты. Используйте в этом случае.

Приложение для рабочего стола

Шаг 2. Добавление настроек Амперки

Добавьте в Espruino IDE поддержку платы Iskra JS и библиотек от Амперки в автоматическом или ручном режиме.

Ручной режим

  1. Зайдите в настройки Espruino Web IDE:
    Settings
    Communications
    и найдите поле .
  2. Измените адрес:

    https://www.espruino.com/modules

    на

    http://js.amperka.ru/modules
  3. Перейдите в настройки Espruino Web IDE:
    Settings
    BOARD
    и найдите поле .
  4. Измените адрес:

    https://www.espruino.com/json

    на

    http://js.amperka.ru/json

Если у вас Windows, установите драйвер для USB-интерфейса микроконтроллера STM32. Для Mac OS и Linux драйвер не нужен.

Создание проектаCreate a project

Чтобы продолжить изучение функций Visual Studio, давайте создадим новый проект.To continue exploring Visual Studio’s features, let’s create a new project.

  1. На начальной странице в поле поиска в разделе Новый проект введите консоль, чтобы вывести список только типов проектов, содержащих «консоль» в имени.On the Start Page, in the search box under New project, type in console to filter the list of project types to those that contain «console» in their name.

    Visual Studio предоставляет различные шаблоны проектов, которые помогут вам быстро приступить к написанию кода.Visual Studio provides various kinds of project templates that help you get started coding quickly. Выберите шаблон проекта C# Консольное приложение (.NET Core) .Choose a C# Console App (.NET Core) project template. (Кроме того, если вы работаете с Visual Basic, C++, Javascript или другим языком разработки, вы можете создать проект на одном из этих языков.(Alternatively, if you’re a Visual Basic, C++, Javascript, or other language developer, feel free to create a project in one of those languages. Рассматриваемый нами пользовательский интерфейс выглядит одинаково для всех языков программирования.)The UI we’ll be looking at is similar for all programming languages.)

  2. В открывшемся диалоговом окне Новый проект оставьте имя проекта по умолчанию и нажмите кнопку ОК.In the New Project dialog box that appears, accept the default project name and choose OK.

  1. На начальном экране выберите Создать проект.On the start window, choose Create a new project.

    Открывается диалоговое окно с заголовком Создание проекта.A dialog box opens that says Create a new project. В нем можно выполнить поиск, фильтрацию и выбор шаблона проекта.Here, you can search, filter, and pick a project template. Здесь также отображается список недавно использованных шаблонов проекта.It also shows a list of your recently used project templates.

  2. Введите в поле поиска вверху строку консоль, чтобы оставить в списке только те типы проектов, в имени которых есть слово «консоль».In the search box at the top, type in console to filter the list of project types to those that contain «console» in their name. Дополнительно уточните результаты поиска, выбрав C# (или другой нужный язык) из средства выбора Язык.Further refine the search results by picking C# (or another language of your choice) from the Language picker.

  3. Если вы выбрали язык C#, Visual Basic или F#, выберите шаблон Консольное приложение (.NET Core) и щелкните Далее.If you selected C#, Visual Basic, or F# as your language, select the Console App (.NET Core) template, and then choose Next. (Для другого языка просто выберите любой шаблон.(If you selected a different language, just pick any template. Рассматриваемый нами пользовательский интерфейс выглядит одинаково для всех языков программирования.)The UI we’ll be looking at is similar for all programming languages.)

  4. На странице Настроить новый проект сохраните имя проекта по умолчанию и щелкните Создать.On the Configure your new project page, accept the default project name and location, and then choose Create.

Будет создан проект. В окне редактора откроется файл с именем Program.cs.The project is created and a file named Program.cs opens in the Editor window. В редакторе отображается содержимое файлов. Кроме того, здесь вы можете выполнять основную часть работы с кодом в Visual Studio.The Editor shows the contents of files and is where you’ll do most of your coding work in Visual Studio.

Среда разработки (IDE)

Средство разработки, которое включает в себя мощный редактор кода и набор инструментов для работы с проектом, его сборки и т.п. называется IDE. На данный момент существует несколько IDE, в которых есть все необходимое для того чтобы начать путь разработчика на C#, далее будут рассмотрены процессы установки Microsoft Visual Studio, VS Code, JetBrains Rider на ОС Windows.

Microsoft Visual Studio

Если ваша основная ОС это Windows, то одним из самых мощных и удобных средств для разработки приложений под эту платформу является Visual Studio. Это полнофункциональная среда позволяет разрабатывать все типы приложений под Windows, Android, iOS, Linux, веб-сервисы и облачные приложения, поддерживает как .NET Framework так и .NET Core. На момент написания статьи самая актуальная версия этого продукта – это Visual Studio 2019, она имеет ряд лицензий – Community, Professional, Enterprise. Для начинающего разработчика Community варианта будет более чем достаточно, эта лицензия позволяет разрабатывать даже коммерческое ПО, но у нее есть некоторые ограничения, более подробная информация по этому вопросу есть на официальном сайте Microsoft.

Сохраните файл установки на компьютере. Это веб-установщик, поэтому он имеет небольшой размер. Запустите его, в результате вам будет представлено окно приветствия.

Нажмите на кнопку “Продолжить” дождитесь окончания подготовительного этапа. После этого откроется окно с настройкой компонентов, для выполнения всех работ по курсу достаточно выбрать “Разработка классических приложений .NET”, “ASP.NET и Разработка веб-приложений”.

Дождитесь окончания установки, это может занять продолжительное время в зависимости от мощности вашего компьютера и скорости доступа в интернет.

Microsoft VS Code

Еще один продукт от Microsoft, он позиционируется как легковесный редактор кода, включает в себя отладчик, инструменты для работы с Git, подсветку синтаксиса, IntelliSense, средства для рефакторинга и многое другое. VS Code предоставляет большое количество настроек визуального оформления редактора. 

Для его установки перейдите по  ссылке https://code.visualstudio.com/?wt.mc_id=vscom_downloads.

Нажмите на кнопку “Download for Windows” и сохраните дистрибутив на свой компьютер. 

Запустите скачанный файл. Нажмите “Далее” в окне с лицензионным соглашением.

В следующем окне оставьте все галочки без изменений и нажмите “Далее”.

В последнем окне нажмите кнопку “Установить” и дождитесь окончания установки.

Установка завершена.

JetBrains Rider

Нажмите кнопку “Скачать”, дождитесь загрузки дистрибутива и запустите его.

Нажмите “Next” и выберите место установки. На следующем экране можно произвести дополнительные настройки ассоциации файлов или оставить все как есть, после этого нажмите кнопку “Next”, а затем “Install”. 

Дождитесь окончания установки.

Онлайн интерпретаторы

Если вы хотите быстро проверить работу вашего кода, то лучше всего для этого подойдет онлайн интерпретатор C#. Далее приведены несколько проектов, которые можно использовать для этой цели:

Обзор

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

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

Большинство современных ИСР являются графическими. Но первые ИСР использовались ещё до того, как стали широко применяться операционные системы с графическим интерфейсом — они были основаны на текстовом интерфейсе с использованием функциональных и горячих клавиш для вызова различных функций (например, Turbo Pascal, созданный фирмой Borland).

C плюс единичка

В конце 67-х годов появился язык Simula 67, в котором были впервые сформулированы принципы объектно-ориентированного программирования. В 1980 году сотрудник всё той же компании фирмы Bell Labs Бьёрн Страуструп писал на языке Simula программу моделирования телефонных вызовов. Но Simula очень медленно работал. В то время как язык С был намного быстрее.

Бьёрн Страуструп

Тогда Страуструп решил добавить принципы ООП в язык C. Получившийся язык сначала был назван «C with classes» («Си с классами»). Название «С++» придумал Рик Мэсчитти. В название использован оператор «++», что на языке С означает добавить единичку. То есть к множеству возможностей C добавлена еще одна.

При этом в самом начале этот язык не имел собственного компилятора. Сначала текст программы обрабатывался препроцессором, а потом передавался компилятору C.

Первый коммерческий выпуск язык C++ состоялся в октябре 1985 года.

Мост для классических приложенийDesktop Bridge

В Windows 10 можно упаковать существующее классическое приложение или COM-объект в качестве приложения UWP и добавить функции UWP, такие как сенсорный ввод, или вызвать API из современного набора API Windows.In Windows 10, you can package your existing desktop application or COM object as a UWP app, and add UWP features such as touch, or call APIs from the modern Windows API set. Можно также добавить приложение UWP в решение для настольных систем в Visual Studio и упаковать их в один пакет и использовать интерфейсы API Windows для обмена данными между ними.You can also add a UWP app to a desktop solution in Visual Studio, and package them together in a single package and use Windows APIs to communicate between them.

Visual Studio 2017 версии 15,4 и более поздних версий позволяет создать проект пакета приложений Windows, чтобы значительно упростить работу по упаковке существующего настольного приложения.Visual Studio 2017 version 15.4 and later lets you create a Windows Application Package Project to greatly simplify the work of packaging your existing desktop application. К вызовам реестра или API-интерфейсам, которые может использовать настольное приложение, применяются некоторые ограничения.A few restrictions apply to the registry calls or APIs your desktop application can use. Однако во многих случаях можно создать альтернативные пути кода для обеспечения аналогичной функциональности при выполнении в пакете приложения.However, in many cases you can create alternate code paths to achieve similar functionality while running in an app package. Дополнительные сведения см. в статье Мост для классических приложений.For more information, see Desktop Bridge.

C and C++ Projects

NetBeans IDE includes project types for C and C++ and
appropriate project templates. You can work with and create C/C++
applications with dynamic and static libraries, and you can also create
C/C++ projects from existing code. C/C++ projects also support Fortran
and Assembler files.

Users can now easily create new projects from scratch by
simply dragging-and-dropping a binary file to IDE. The project system
automatically finds the source files, adds them to the project,
configures code assistance and even explores project dependencies.
Users also now have more flexibility in configuring the «Run» and «Debug» command
and thus can run and debug static and dynamic libraries.

“Hello, World” на C#

Создание проекта в Microsoft Visual Studio (Windows)

Создадим первый проект на языке C# для Windows. Для этого запустите Visual Studio, при первом запуске появится окно “Добро пожаловать”.

Снимите галочку “Проверка подлинности …”, если у вас есть Microsoft-аккаунт, то нажмите на кнопку “Войти”, если нет, то на надпись “Не сейчас, возможно позже”.

Далее выберите тему по вкусу и нажмите “Запуск Visual Studio”.

Все подготовительные шаги пройдены, нажмите на кнопку “Создание проекта”.

Выберете шаблон “Консольное приложение” и нажмите “Далее”.

Укажите имя проекта, например “MyFirstProject” и место где он будет сохранен.

В результате будет открыто окно Visual Studio с созданным проектом. 

Проект в Visual Studio представляет собой набор файлов, их структура представлена в окне “Обозреватель решения”. Основной файл, который нас сейчас интересует это Program.cs. Откройте его, мы добавили поясняющие комментарии в код модуля:

using System; // Подключаем библиотеку System

// Пространство имен, с классом Program
namespace MyFirstProject 
{
    // Объявление класса Program
    class Program
    {
        // Точка входа. Метод, который будет запущен первым при старте приложения
        static void Main(string[] args)
        {
            // Вывод текста "Hello World!" в консоль
            Console.WriteLine("Hello World!"); 
        }
    }
}

Запустим наше приложение и посмотрим, что произойдет.

Для этого можно использовать несколько способов:

  • На панели вверху нажать кнопку с изображением зеленого треугольника.  Название у кнопки будет такое же как у вашего “решения”. 
  • Нажать сочетание клавиш Ctrl + F5, запустится “решение” без отладки, либо F5 для режима отладки.
  • Через панель меню: Отладка -> “Запуск без отладки”

Запустите приложение любым вышеописанным способом, в результате появится консоль, в которой будет выведено сообщение “Hello World!“.

Процесс запуска приложения “под капотом” достаточно сложен, он включает в себя создание ряда каталогов, компиляцию проекта в сборку (файл с расширением .exe) и непосредственно запуск получившегося файла. Результат сборки вы можете найти в папке <Папка проекта>\bin\Debug – если выбран режим сборки Debug, либо в  <Папка проекта>\bin\Release – если выбран Release. Режим по умолчанию – это Debug

Создание проекта с использованием средств .NET Core (Windows и Linux)

В этом разделе мы познакомимся с консольным инструментом .NET Core для создания, сборки и запуска проектов. Приведенный подход работает в Windows и Linux. Перейдите в каталог, в котором вы хотите работать с вашим проектом. Откройте консоль (если вы работаете в Windows, то нажмите сочетание клавиш Win+R и введите cmd), и с помощью команды cd перейдите в папку с проектом:

> cd c:\MyFirstProject

Для создания проекта в .NET Core используется команда dotnet new, после которой указывается тип проекта. Так как мы будем работать с консольным приложением, то нужно указать тип console

> dotnet new console

После выполнения команды в папке с проектом будет размещен необходимый набор файлов. Для запуска проекта воспользуйтесь командой:

> dotnet run

Как и в случае с проектом в Visual Studio, в консоли будет выведен текст “Hello World!”.

Поработаем над кодом программы: вместо текста выведем текущую дату. Для этого в файле Program.cs замените строку

Console.WriteLine(“Hello World!”);

на

Console.WriteLine(DateTime.Now);

Сохраните файл и выполните команду:

> dotnet run

Вместо текста в консоли должна появиться текущая дата.

Компиляция файла с исходным кодом вручную (Windows)

Познакомимся с компилятором C#, из .NET Framework (только для Windows). Создайте пустой каталог, а в нем файл Program.cs. Откройте его текстовым редактором и внесите туда следующий код:

using System;

namespace FirstApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(DateTime.Now);
        }
    }
}

В меню “Пуск” найдите и откройте “Developer Command Prompt for VS 2019”, перейдите в каталог с файлом и выполните в нем команду:

> csc.exe Program.cs

Если компиляция прошла успешно, то должен появиться файл Program.exe. Запустите  его для этого введите в терминале:

> Program.exe

В результате должны быть выведены текущие дата и время.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector