Разработка на awsс помощью инструментов jetbrains

Содержание:

Офис JetBrains в Мюнхене

Elsenheimerstrasse 47, 80687 München, Deutschland

Офис JetBrains удобно расположен недалеко от центра Мюнхена, одного из самых развитых и благоустроенных городов Европы. С террасы шестого этажа видны внушительные колокольни Фрауэнкирхе и Олимпийский парк, а в ясную погоду — Баварские Альпы.

Мюнхенская команда JetBrains быстро растет и насчитывает уже около 130 человек, включая разработчиков всех наших продуктов, маркетинг-, дизайн- и веб-специалистов. На работу сотрудники любят приезжать на велосипедах: в столице Баварии это очень популярный вид транспорта. А в офисе спортивную форму помогают поддерживать занятия в тренажерном зале и партии в настольный теннис. По пятницам в кафе проходят национальные завтраки (французские, русские, баварские и другие) — хороший повод пообщаться с коллегами за дегустацией новых блюд.

Новости CLion: релиз 2020.1, пятилетие IDE и онлайн-сессия вопросов и ответов

Привет, Хабр!
Столько всего хочется сегодня рассказать, что даже сложно выбрать, с чего начать

Так что сначала попробую коротко обо всем самом важном:

  1. Продукту CLion вчера исполнилось 5 лет! В честь праздника мы смонтировали небольшую видеоисторию, своеобразное воспоминание и рассказ о том, как же интересно все развивалось для нас эти 5 лет. Сразу предупредим, история на английском:
  2. Вчера же случился первый в этом году большой релиз продукта – CLion 2020.1. В нем мы поддержали диалект CUDA, переписали Dataflow Analysis на Clang, научили IDE работать с компиляторами Clang-cl и IAR, а также внесли множество других улучшений и исправлений.

Теперь давайте поговорим подробнее обо всех этих событиях.

Features

Code analysis

Rider boasts 2,200+ live code inspections, with automated quick-fixes to resolve detected issues individually or in bulk. Solution-wide error analysis will monitor code issues and let you know if anything goes wrong, even in files that are not currently open.

Code editing

Rider’s rich editor features different kinds of code completion and code templates, auto-inserting matching braces and import directives, quick info tooltips and gutter icons for inheritance navigation, context actions, and much more.

Refactorings

Most of ReSharper’s 60+ refactorings are already available in Rider, and its 450+ context actions are all there. Rename, extract methods, interfaces and classes, move and copy types, use alternative syntax, and a lot more!

Unit test runner

Rider helps you run and debug unit tests based on NUnit, xUnit.net, or MSTest. You can explore tests, group them in different ways, break them down into individual sessions, see test output and navigate to source code from stack traces.

Debugger and more tools

Rider includes a debugger that works with .NET Framework, Mono and .NET Core applications, letting you step, watch, evaluate, and run to cursor. Other tools include a stack trace explorer, NuGet browser, and VCS and database support.

Databases and SQL

Work with SQL and databases without leaving Rider. Connect to databases, edit schemas and table data, run queries, and even analyze schemas with UML diagrams.

Navigation and search

Jump to any file, type, or member in your code base instantly, as well as quickly find settings and actions. Find usages of any symbol, or navigate from a symbol to the base and derived symbols, extension methods, or implementations.

Front-end technologies

Rider comes with JavaScript, TypeScript, HTML, CSS and Sass support built in. Take advantage of the refactorings, debugging, and unit testing capabilities included from WebStorm.

Extensibility

True to its roots, Rider supports a wide array of plugins developed for ReSharper and IntelliJ Platform. In addition to the bundled plugins (such as those for VCS, F#, and Unity support), plugins that support Markdown, files, and Python scripts are available.

Integrate with Your Data

It’s hard to make an application without a database, which is
why JetBrains offers DataGrip, our SQL IDE. In addition to being a standalone product, its
database features are also integrated into most of our IDEs*.

*All paid IDEs except WebStorm

To make development for remote environments easier, DataGrip
comes with out of the box. To connect to your staging environment’s database, just
have DataGrip connect through your bastion host.

JetBrains DataGrip

SQL is a powerful language, so why not use a powerful tool?
JetBrains DataGrip brings powerful code insight and completion to SQL. DataGrip makes connecting
to your database and exploring your data easier than ever.

Rather than being made for a single RDBMS, DataGrip can connect
to all major database servers: PostgreSQL, Microsoft SQL Server, Oracle Database, MySQL, and
more. Additionally, DataGrip has built-in support for connecting to Amazon Redshift and
Microsoft Azure databases.

2018

  • Поддержка нелокальных эффектов функций в компиляторе Kotlin
  • CLI для распределённой системы контроля версий
  • Интеграция Blaze в Visual Studio Code
  • Межпроцедурный анализ для ReSharper
  • Реализация лексера для языка F#
  • Gradle Inspection Plugin
  • Dokka Multiplatform
  • LocalTV 2.0 Design
  • Разработка SEO-стратегии сайта Wave.video
  • Inspections for RubyMine
  • Ruby type inference
  • Обучающая игра для часа кода
  • Incremental python notebook with CRIU
  • Datalore Mobile Friendly Web Interface
  • Озеро и луг для 3D ландшафта
  • Reinforcement learning in 3D visualisation environment
  • Distributed file system
  • iOS приложение для подготовки к экзаменам на платформе Stepik
  • Android приложение для подготовки к экзаменам на платформе Stepik
  • Time Series Modeling and Forecasting
  • Timeline Visualization (Time Series + Events)
  • Internet marketing reporting automation
  • Vision based human detection techniques at conferences
  • Machine learning based ticket classification in issue tracking systems
  • Scala to Kotlin converter
  • Idiomatic and portable Atomics for Kotlin
  • CheckIO integration in EduTools plugin
  • Edu Server
  • Multi-caret support in Vim emulation for IntelliJ
  • Detection of thread-blocking calls in non-blocking methods
  • Реализация borrow checker в IntelliJ-Rust
  • Поддержка процедурных макросов в IntelliJ-Rust
  • Text editor for large files
  • Build IntelliJ with Bazel
  • Tracking tainted strings in Java programs
  • Spark data visualisation
  • Swift Package Manager Support
  • .editorconfig language support
  • RD: reactive distributed stateful framework
  • Wormhole
  • Circlet bots
  • Toolbox App & GitHub integration
  • Lightweight PHP profiler
  • PHP Debugger plugin for Chrome
  • Vulnerability Assessment
  • Editor Augmentation with non-code data
  • Completion ranking

Структура курса

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

Как создать курс

Чтобы создать курс, перейдите в раздел File | Learn and Teach| Create New Course и введите название и описание вашего курса. IDE автоматически создаст простой курс с уроком и заданием (lesson1 и task1). Структура курса отобразится в разделе View | Tool Windows | Project.

Как открыть курс в режиме преподавателя

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

Подписка на JetBrains Academy: готовимся к запуску и отвечаем на вопросы

Привет, Хабр!

Почему платформа становится платной?

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

Кроме того, когда учащиеся не только посвящают время учебе, но и вкладывают в нее деньги, они получают дополнительную мотивацию и более ответственно относятся к обучению.

2016

  • Design projects
  • Перенос ReSharper C++ c .Net на C++
  • Donation opportunities for JetBrains brand and JetBrains products brands promotion
  • Marketing Automations Development
  • A time series model for speculative prices and rates of return of wholesale distribution business
  • Планировщик задач для системы автоматизированного сбора и анализа данных
  • Языки для описания языков
  • Kotlin Native
  • Разработка плагина для поддержки языка Kotlin в IDE NetBeans
  • Поиск цитат в письмах
  • Rich multiplatform bot API for Scala
  • Фаззинг C++ компиляторов
  • Stepik: your topic
  • UI для VCS в браузере
  • Совместное редактирование кода в браузере
  • 3D визуализация спортивных карт для ТВ трансляций
  • Internship web-app
  • Транспортный трекер под Android
  • Разработка сетевой игры на скриптинг движке CoSpaces
  • Редактор для скриптинга сцен с проекте CoSpaces
  • Система, ограничивающая передвижение объектов в мире
  • Разработка графического интерфейса для веб-парсера
  • Разработка системы мониторинга виртуальной инфраструктуры
  • Gaming the System
  • Manage your learning
  • Linux Challenge Improvement
  • Поля структур и массивы в data-flow анализах C++
  • Игра «Be a Better Programmer»
  • Настольные игры и P2P
  • Integration of Flow type checker into WebStorm
  • Вывод и проверка типов для языка Python в среде PyCharm
  • Educational Plugin for Android Studio
  • Stepic based PyCharm Educational Edition forum
  • Django framework support for PyCharm Educational Edition
  • Поддержка библиотечных файлов в Swift плагине для CLion
  • Отладчик Ruby скриптов. Подключение к запущенным скриптам в режиме реального времени.
  • Динамический вывод типов для языка Ruby на основе статистики запусков
  • Поддержка диалектов Scala в Scala-плагине при помощи генераторов синтаксических анализаторов
  • Heap Walker in java debugger

Достижение паритета разработки и работы приложения

Где бы ни было развернуто ваше приложение — в EC2, EKS, ECS или Lightsail, — у нас есть инструменты, которые помогут вам вести разработку в этих окружениях. IDE JetBrains помогут доставить код в вашу среду разработки и выполнить отладку кода непосредственно в ней.

Amazon EC2 Amazon Lightsail

Для виртуальных машин

Каждая IDE JetBrains способна выполнять развертывание кода и артефактов с помощью SCP, а также открывать терминал SSH. Имеется поддержка сложных конфигураций SSH с bastion-хостами; их настройка может выполняться с помощью конфигурационного файла SSH (даже в Windows).

Вы можете использовать Vagrant для упрощения автоматизации процессов, относящихся к виртуальным машинам. Поддержка Vagrant реализована во всех IDE JetBrains — вы можете подключиться к настроенным с помощью Vagrant виртуальным машинам без дополнительной настройки.

Подробнее:Создание среды разработки Python в Amazon EC2Помощь по запуску SSH-терминала в IntelliJ IDEA

Amazon EKS Amazon ECS

Для контейнеров

Все IDE JetBrains позволяют вам выполнять сборку и запуск как контейнеров Docker, так и проектов Docker Compose. Наша поддержка Docker позволяет редактировать файлы Dockerfile и YAML-файлы Compose с невероятной легкостью.

Пользуетесь Kubernetes? Несмотря на то, что Kubernetes значительно упрощает процесс развертывания, для его настройки требуются сложные YAML-файлы. Kubernetes-плагин от JetBrains помогает вам в этом: он генерирует сниппеты, позволяет выполнять навигацию по конфигурации и содержит инспекции, помогающие вам писать корректные конфигурации.

Подробнее:Что IntelliJ IDEA 2017.3 дает в плане поддержки Docker?IntelliJ IDEA: поддержка Kubernetes

Удаленные интерпретаторы

Если вы разрабатываете код на Python, Node.js, PHP или Ruby, вы можете использовать встроенную в IDE JetBrains функциональность удаленного интерпретатора. Вне зависимости от цели подключения, будь то виртуальная машина или Docker-контейнер, вы можете настроить удаленный интерпретатор для использования удаленной машины в качестве среды выполнения проекта. После выполнения этой настройки все конфигурации запуска будут выполняться на удаленной машине, однако рабочий процесс будет соответствовать вашей локальной среде разработки.

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

После настройки удаленного интерпретатора консоль Python, IRB или Rails будет запускаться на удаленной машине: вы сможете прототипировать свой код в том же окружении, где он будет выполняться.

Подробнее:Использование Docker Compose в PyCharm на Windows

Удаленная отладка

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

Разработка на следующих языках поддерживается как в специализированных IDE для этих языков, так и в IntelliJ IDEA Ultimate с применением соответствующего языкового плагина. Поддержка JavaScript доступна во всех платных версиях IDE JetBrains.

Образовательные продукты для студентов

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

Если вы уже изучаете Java, Kotlin или Python, или планируете начать, владеете английским языком, образовательная платформа JetBrains Academy позволит вам бесплатно учить эти языки программирования, следуя принципам проектного обучения и осваивая профессиональные инструменты.

Самый верный способ не терять мотивацию к учебе — это сразу же применять свои знания на практике. Выберите один из 60+ проектов, и платформа сформирует учебный план, который включает в себя всю необходимую теорию для того, чтобы вы смогли создать работающее приложение в рамках выбранного проекта:

Теория разбита на короткие уроки, каждый из которых посвящен одному понятию в изучаемом языке и может быть пройден за 15 минут:

После изучения урока проверьте свои знания, выполнив ряд заданий прямо в браузере. На платформе представлено более 5700 заданий с автоматическими проверками:

Карта знаний покажет ваш прогресс, а также подскажет, какие темы доступны для прохождения и как они взаимосвязаны:

Работа над проектом ведется итеративно, и каждая следующая стадия чуть сложнее предыдущей, что помогает постепенно приобретать уверенность в своих знаниях и умениях. Интеграция с профессиональными инструментами разработки от JetBrains поможет укрепить эту уверенность:

Помните, что вы не одиноки — в JetBrains Academy учится свыше 66 000 студентов, с которыми вы можете сравнивать свои решения и обсуждать сложности, с которыми сталкиваетесь:

Присоединяйтесь к нам, задавайте вопросы в или на Reddit.

GoLand 2020.1 — расширенная поддержка Go Modules, множество автодополнений и многое другое

Привет, Хабр!

Чуть больше недели назад мы выпустили новую версию нашей IDE для Go — GoLand 2020.1.

Если кратко, в этот релизный цикл мы сфокусировались над расширением текущей поддержки Go Modules. Например, в файле теперь работают автодополнение кода, рефакторинги и навигация, и это далеко не все!

Другим направлением стала борьба с шаблонным кодом и рутиной. Мы добавили множество новых видов автодополнения. Причем часть из них работает автоматически, не требуя вызова комбинаций клавиш. Другая часть расширила текущий набор автодополнений Smart Code Completion и Basic Code Completion.

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

Кстати, узнать о новой функциональности можно и в интерактивной форме — пройдя прямо в IDE урок Features of GoLand 2020.1.

Продолжайте учиться и учить с JetBrains

Привет, Хабр!

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

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

Образовательные продукты для преподавателей

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

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

Образовательные продукты поддерживают языки Java, Kotlin, Python, Scala, JavaScript, Rust, C/C++ и Go. В дальнейшем этот список будет расширяться.

Создайте свой курс, из одного или нескольких уроков, непосредственно в IDE:

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

Обучайте программированию с помощью простых и эффективных упражнений формата «вставить недостающий код»:

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

Управляйте своими учебными материалами и делитесь ими публично или в индивидуальном порядке со своими учениками:

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

Офис JetBrains в Праге

Na hřebenech II 1718/10 Praha 4 – Nusle – 147 00

Штаб-квартира JetBrains с момента основания компании находится в Праге, европейской столице, знаменитой своей тысячелетней историей. В 2012 году офис переместился в современный район, который стал новым IT-центром города. А в 2015 получил престижную награду в ежегодном конкурсе от компании CBRE в номинации «Самая привлекательная рабочая среда».

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

Пражский офис специализируется на продажах продуктов JetBrains в Европе, Африке, Азии и Австралии. Сейчас в нем работают более 50 человек: это не только специалисты по продажам и маркетологи, но и разработчики, бизнес-аналитики, сотрудники финансового и юридического отделов. С ростом продаж растет и офис. В ближайшее время мы планируем реконструкцию: в новом пространстве будет в два раза больше места для современных рабочих кабинетов, зон отдыха и комнат для общения с коллегами.

Развертывание вашего приложения

Большинство рабочих групп используют то или иное решение непрерывной интеграции (CI) и/или непрерывного развертывания (CD). JetBrains TeamCity — это сервер CI/CD, созданный для сложного современного окружения.

Поддержка контейнеров

Конечно же, TeamCity может собирать и загружать Docker-образы в соответствии с файлом Dockerfile в вашем репозитории. Кроме того, TeamCity может задействовать . Например, вместо запуска этапа сборки Gradle напрямую в вашем билд-агенте, вы можете сконфигурировать TeamCity для создания эфемерных контейнеров Docker, в которых будет запущен Gradle.


Amazon EC2 Amazon ECS

Customers

JetBrains Rider is the first tool I install after repaving my development machine.

I haven’t launched Visual Studio for months after I switched to JetBrains Rider.

Working with branches has never been so smooth since I started using Jetbrains’s Rider.

Dennis Doomen,Continuous Improver at Aviva Solutions and author of Fluent Assertions

JetBrains Rider is my C# development tool of choice these days on both OS X and Windows. If you’re a longstanding ReSharper user, you’ll find it to be an almost seamless transition. I highly recommend the developer-friendly keystroke navigation and fine grained debugger support.

Jeremy Miller

In Rider, I just focus on working with my code, as it should be, instead of fighting my IDE. Rider gave me back the joy in writing .NET code.

Frans Bouma,lead developer, LLBLGen Pro

Switching to JetBrains Rider was a great decision. Our team has never experienced an IDE that can communicate with Unity in such a flawless and efficient manner. We would highly recommend JetBrains Rider to anyone who aims at improving the efficiency and accuracy of their workflows.

Thomas Weiss

An IDE can make or break a developer’s day. When JetBrains introduced Rider (C#) we jumped on board as fast as we could. Having been there at every step of the way in Unity’s evolution of IDE integrations; working with Rider has been nothing but an absolute joy. With the introduction of CLion (C++), we were so excited we created an integration plugin for Unreal. Both of these tools help our team on a daily basis, allowing developers to perform their tasks quickly and efficiently, all the while seamlessly integrating with numerous parts of our pipeline.

Matthew Davey

Офис JetBrains в Санкт-Петербурге

197374, Россия, Санкт-Петербург, Приморский проспект, дом 70, строение 1

В Приморском районе Санкт-Петербурга на берегу Финского залива находится самый большой офис компании, который объединил под одной крышей разработчиков всех наших продуктов.

Две восьмиэтажные башни Space стали новым домом JetBrains в Санкт-Петербурге в 2019 году. Офис расположен у самой воды — из панорамных окон открывается вид на Неву и Финский залив.

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

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

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

Телефон: +7 (812) 380-16-41

Функциональность

Анализ кода

Rider предоставляет более 2200 инспекций кода и автоматизированных исправлений для устранения обнаруженных проблем как в индивидуальном, так и массовом порядке. Механизм анализа ошибок по всему решению будет искать ошибки в кодовой базе и сообщать о них, даже если проблемный файл не открыт в редакторе.

Редактирование кода

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

Рефакторинги

Rider заимствует из ReSharper более 60 рефакторингов и предусматривает более 450 контекстных действий для самых разных целей. Рефакторинги позволяют с легкостью переименовывать и извлекать методы, интерфейсы и классы, перемещать и копировать типы, использовать альтернативный синтаксис и выполнять другие преобразования.

Инструмент запуска юнит-тестов

Rider помогает запускать и отлаживать юнит-тесты NUnit, xUnit.net и MSTest. ReSharper помогает исследовать тесты, группировать их по сессиям, просматривать результаты тестов и переходить к исходному коду из трассировки стека.

Отладчик и другие инструменты

Встроенный отладчик для приложений на .NET Framework, Mono и .NET Core поддерживает пошаговое исполнение, позволяет вычислять выражения на лету, запускать программу от текущей выполняемой строки до строки с курсором, отслеживать и менять значения переменных. Кроме того, Rider включает в себя браузер NuGet, позволяет просматривать трассировку стека, поддерживает различные системы контроля версий и базы данных.

Работа с базами данных и SQL

Вы можете работать с SQL и базами данных прямо в IDE. Rider помогает подключаться к базам данных, редактировать схемы и таблицы, выполнять запросы и анализировать схемы с помощью UML-диаграмм.

Навигация и поиск

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

Поддержка фронтенд-технологий

Rider поддерживает JavaScript, TypeScript, HTML, CSS и Sass. Специально для этих технологий IDE включает в себя возможности рефакторинга, отладки и модульного тестирования из WebStorm.

Расширения

Rider поддерживает большой набор плагинов, разработанных для ReSharper и платформы IntelliJ. Встроенные плагины обеспечивают поддержку F#, Unity и систем контроля версий. Вы можете дополнительно подключить расширения для работы с Markdown, файлами и Python-скриптами.

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

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

Adblock
detector