The JetBrains Blog https://blog.jetbrains.com/ru Developer Tools for Professionals and Teams Mon, 13 Jun 2022 11:00:25 +0000 ru-RU hourly 1 https://blog.jetbrains.com/wp-content/uploads/2023/02/cropped-icon-512-32x32.png The JetBrains Blog https://blog.jetbrains.com/ru 32 32 JetBrains Academy: подводим итоги 2021 года https://blog.jetbrains.com/ru/education/2022/02/16/jetbrains-academy-looking-back-at-2021/ https://blog.jetbrains.com/ru/education/2022/02/16/jetbrains-academy-looking-back-at-2021/#respond Wed, 16 Feb 2022 11:55:00 +0000 https://blog.jetbrains.com/wp-content/uploads/2022/01/DSGN-13067_JBAcademy_2021_Promo_Blog_Featured_image_1280x600.png https://blog.jetbrains.com/education/2022/01/20/jetbrains-academy-looking-back-at-2021/ Подводя итоги 2021 года, мы можем с гордостью сказать, что и обучающая платформа JetBrains Academy, и команда, обеспечивающая ее работу, добились больших успехов. Мы выпустили множество новых треков и интерактивных проектов, включили в программу новый язык программирования и новые темы, подготовили новые специальные предложения — перечислять можно долго.

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

Мы вместе прошли большой путь. Поэтому сегодня хочется вспомнить о том, чем был отмечен прошедший год, и приготовиться к штурму новых вершин. Присоединяйтесь!

Новые треки, направления и язык
Самые популярные проекты года
Специальное предложение для обладателей карт ISIC/ITIC
Бесплатный план
Сертификаты о прохождении обучения
JetBrains Academy for Organizations
Истории успеха

Новые треки, направления и язык

В прошлом году мы выпустили 10 новых треков, включив в программу новый язык программирования — Go. Кроме того, мы предложили обучение по новым направлениям: математика и машинное обучение. А еще мы разработали первый краткий трек: всего за 8 часов можно научиться писать скрипты командной оболочки. Другие новые курсы позволяют глубже познакомиться с особенностями языков Java и Python. Вы можете расширить общее знание этих языков или выбрать отдельные интересующие вас темы, например фреймворк Django в Python или разработка десктопных приложений на Java.

Самые популярные проекты года

Не то чтобы мы хвастались, но в 2021 году наша команда превзошла себя. Мы добавили 78 новых проектов и 424 новые темы! Участники нашего сообщества оставили больше 178 000 комментариев в JetBrains Academy, и мы очень благодарны вам за это. Вы помогаете друг другу находить ошибки, справляться со сложными заданиями, обращаетесь за советом и даете советы сами, одним словом — поддерживаете друг друга. Наше сообщество стало сильным и сплоченным, и это очень радостно.

Мы проанализировали, какие проекты пользовались особой популярностью в 2021 году. Сначала мы взяли проекты, над которыми учащиеся работали чаще всего, и выбрали из них те, которым вы дали самую высокую оценку по трем критериям: полезные, понятные, интересные. Итак — топ проектов!

Проекты на Python

Arithmetic Exam Application (Приложение для экзамена по арифметике): любимый проект начинающих

В этом проекте нужно написать приложение, которое учит быстро выполнять арифметические вычисления. Оно создает математические примеры, которые пользователь должен решить, позволяет настроить уровень сложности и сохранить результаты, а также показывает, насколько успешно идет обучение. Учащимся нравится этот проект, поскольку он понятно демонстрирует основы Python.

Text Generator (Генератор текстов): любимый проект тех, кто уже продвинулся в обучении

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

Проекты на Java

Cinema Room Manager (Администратор кинотеатра): любимый проект начинающих

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

Simple Search Engine (Простой поисковый механизм): любимый проект тех, кто уже продвинулся в обучении

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

Проекты на Kotlin

Minesweeper (Cапер): любимый проект начинающих

Работая над этим проектом, вы напишете собственную игру “Сапер”: тут и вам самим, и игрокам придется поломать голову. Вы научитесь работать со списками в Kotlin. Этот проект нравится учащимся, потому что он четко показывает, как работать с алгоритмами и обрабатывать ходы игрока.

Parking Lot (Парковка): любимый проект тех, кто уже продвинулся в обучении

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

Basic Calculator (Простой калькулятор): любимый проект тех, кто изучает программирование для Android

Этот проект поможет вам создать простое приложение-калькулятор и одновременно лучше изучить возможности Android Studio. Учащимся нравится этот проект за понятное объяснение основ работы с интерфейсом. Кроме того, он предлагает четкие инструкции, как заставить программу реагировать на действия пользователя.

Фронтенд-проекты

Flashcards (Учебные карточки): любимый проект начинающих

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

Virtual Piano (Виртуальное пианино): любимый проект тех, кто уже продвинулся в обучении

Для этого проекта вам придется задействовать клавиши клавиатуры, чтобы создать виртуальное пианино. Вы научитесь создавать HTML-страницы и сможете поработать с наиболее часто встречающимися свойствами CSS. Учащимся нравится такой необычный способ изучения JavaScript.

Проекты на Go

Simple Chatty Bot (Простой чат-бот): любимый проект начинающих

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

Спецпредложение для обладателей карт ISIC/ITIC

Мы делаем все возможное, чтобы наша платформа была доступна всем желающим. В 2021 году мы сделали еще один большой шаг в этом направлении, заключив соглашение о партнерстве с Ассоциацией ISIC. Теперь обладатели карт ISIC/ITIC получают скидку 50% на месячную или годовую подписку JetBrains Academy. Чтобы воспользоваться этой скидкой, существующим пользователям JetBrains Academy необходимо ввести информацию о карте ISIC/ITIC на странице Settings. Новые пользователи могут воспользоваться скидкой при регистрации. Множество учащихся уже воспользовались этим предложением, поэтому мы уверены, что движемся в правильном направлении.

Бесплатный план

Еще одним шагом к обеспечению доступности платформы для всех желающих стало введение бесплатного плана подписки. Она дает индивидуальным пользователям полный доступ ко всем бесплатным трекам, например Основы Kotlin. Этот план — отличная возможность для тех, кто хочет попробовать свои силы в программировании. Вам не нужно подписываться на пробный период или вводить платежную информацию: просто зарегистрируйтесь в JetBrains Academy, выберите трек, доступный с бесплатным планом, и начинайте учиться!

Попробовать бесплатный план

Кроме того, вы можете попробовать платные треки, воспользовавшись 7-дневным пробным периодом. Если за эти 7 дней вы успеете закончить первый этап своего проекта, пробный период будет продлен на 1 месяц. Если в течение этого месяца вы завершите свой первый проект, мы продлим пробный период еще на один месяц. В общей сложности вы получаете 2 месяца и 7 дней бесплатного обучения — этого вполне достаточно, чтобы выполнить несколько несложных проектов и понять, насколько вам это нужно.

Сертификаты о прохождении обучения

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

JetBrains Academy for Organizations

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

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

Истории успеха

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

  • Войтек Слюсарчик рассказал, как изучение Python в JetBrains Academy помогло ему пройти собеседование в Nokia. Подробнее — в интервью.
  • Жовиан Бельгард поделилась студенческой точкой зрения на онлайн-обучение программированию, а также своими соображениям о том, как это может помочь в получении высшего образования. Подробнее — в интервью.
  • Андрей Мафтей рассказал о своем опыте программирования, который помог ему создать приложение на основе ИИ для постановки врачебных диагнозов. Подробнее — в интервью.

Если вы тоже хотите поделиться своей историей, мы всегда рады с вами побеседовать. Пишите нам на academy@jetbrains.com, и мы вскоре свяжемся с вами!

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

Спасибо, что вы с нами! Вперед, к новым успехам в 2022 году!

Команда JetBrains Academy

]]>
https://blog.jetbrains.com/ru/education/2022/02/16/jetbrains-academy-looking-back-at-2021/feed/ 0 https://blog.jetbrains.com/ko/education/2022/02/16/jetbrains-academy-looking-back-at-2021/ https://blog.jetbrains.com/education/2022/02/16/jetbrains-academy-looking-back-at-2021/ https://blog.jetbrains.com/de/education/2022/02/16/jetbrains-academy-looking-back-at-2021/
YouTrack 2022.1 с интерактивными диаграммами Ганта https://blog.jetbrains.com/ru/youtrack/2022/02/youtrack-now-with-interactive-gantt-charts/ Tue, 15 Feb 2022 18:20:00 +0000 https://blog.jetbrains.com/wp-content/uploads/2022/02/blog_feature_image_ru-2x.png https://blog.jetbrains.com/?post_type=youtrack&p=228881

Представляем вам одну из самых интересных разработок за всю историю YouTrack — интерактивные диаграммы Ганта. 

Они реализуют фундаментально новый подход к планированию и управлению задачами в YouTrack и открывают новое направление развития.

Что такое диаграммы Ганта

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

Произвольная иерархия задач

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

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

Попробуйте интерактивные диаграммы Ганта

Если вы хотите поэкспериментировать с интерактивными диаграммами Ганта, но пока не готовы менять расписание реальных задач, создайте демопроект или зарегистрируйте бесплатный YouTrack InCloud, чтобы попробовать эту функцию.  

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

Правила для управления состоянием задач в конструкторе рабочих процессов

Теперь вы можете задавать правила для управления состоянием задач, не прибегая к JavaScript! Такие правила позволяют изображать бизнес-процессы в виде блок-схем, задающих возможные переходы между состояниями задач и их порядок.

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

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

Вы можете совмещать правила для управления состоянием задач с правилами, которые срабатывают при изменении задач, задавая таким образом условия для смены состояний и действия, которые должны при этом выполняться. К примеру, вы можете указать, что на момент перехода в состояние In Progress задача должна иметь расчетную временную оценку, а после перехода должна быть автоматически назначена пользователю, который поменял ее статус. 

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

Теперь вы можете находить задачи по свойствам других связанных с ними задач. 

К примеру, вот так выглядит запрос для поиска в определенном проекте задач, которые зависят от задач без исполнителя:

А вот как работает этот поисковый запрос:

Но есть еще кое-что…

За зиму команда YouTrack подготовила множество обновлений и улучшений. Теперь вы можете просматривать VCS-изменения в YouTrack Lite, получать в Центре уведомлений нотификации об изменениях в базе знаний, записывать формулы и уравнения с помощью LaTeX, а также импортировать проекты, задачи и пользователей из Space. 

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

Если вы используете YouTrack InCloud, ваш YouTrack автоматически обновится до версии 2022.1 в соответствии с нашим календарем обслуживания. Если у вас есть действующая подписка на YouTrack Standalone, скачайте новую версию здесь, а если подписки нет, воспользуйтесь бесплатной версией для команд до 10 пользователей. Всю информацию о ценах и вариантах лицензирования вы найдете на нашем сайте.

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

Ваша команда YouTrack
The Drive to Develop

]]>
https://blog.jetbrains.com/zh-hans/youtrack/2022/02/youtrack-now-with-interactive-gantt-charts/ https://blog.jetbrains.com/pt-br/youtrack/2022/02/youtrack-now-with-interactive-gantt-charts/ https://blog.jetbrains.com/ko/youtrack/2022/02/youtrack-now-with-interactive-gantt-charts/ https://blog.jetbrains.com/ja/youtrack/2022/02/youtrack-now-with-interactive-gantt-charts/ https://blog.jetbrains.com/fr/youtrack/2022/02/youtrack-now-with-interactive-gantt-charts/ https://blog.jetbrains.com/es/youtrack/2022/02/youtrack-now-with-interactive-gantt-charts/ https://blog.jetbrains.com/youtrack/2022/02/youtrack-now-with-interactive-gantt-charts/ https://blog.jetbrains.com/de/youtrack/2022/02/youtrack-now-with-interactive-gantt-charts/
Что нового в Datalore: итоги 2021 года, улучшенная визуализация и многое другое https://blog.jetbrains.com/ru/datalore/2022/02/11/new-in-datalore-2021-recap-visualization-improvements-and-more/ Fri, 11 Feb 2022 08:00:00 +0000 https://blog.jetbrains.com/wp-content/uploads/2022/01/Datalore_NewIn_Green_Blog_1280x600.png https://blog.jetbrains.com/datalore/2022/01/19/new-in-datalore-2021-recap-visualization-improvements-and-more/ Вас приветствует команда Datalore!

Вы уже посмотрели видео об итогах 2021 года в нашем Twitter? В нем мы рассказываем, чего нам удалось достичь в прошедшем году.

Если вы еще не подписаны на нас в Twitter, обязательно подпишитесь: там вы сможете первыми узнавать об обновлениях Datalore.

А вот и первая подборка новостей в 2022 году. Рассказываем, чем в последнее время занималась команда Datalore.

Улучшения визуализации

Datalore обеспечивает удобную автоматическую визуализацию всех Pandas DataFrame. Графики Point, Line, Bar, Area и Correlation можно создать в два клика как на вкладке Visualize, так и в Chart-ячейках.

Кроме того, вкладка Visualize теперь выглядит по-новому:

  • графики стали больше;
  • настройки графиков перенесены в левую часть вкладки;
  • доработаны изображения в библиотеке Lets-plot.

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

Подробнее о вкладке Visualize и Chart-ячейках читайте здесь.

Оптимизация хранилищ для работы в режиме Reactive

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

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

Скрытые ячейки на определенном листе

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

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

Улучшенный рендеринг scala-datatable

Вы уже пробовали работать в Datalore с ноутбуками Scala? Если да, поделитесь своими впечатлениями в этом треде. Нам очень интересно, как вы используете Scala в своем рабочем процессе.

Недавно мы улучшили рендеринг объектов scala-datatable. Благодаря этому при предварительном просмотре и автоматической визуализации данных таблицы они будут выглядеть так же, как в Pandas DataFrame в Python.


Попробуйте эту функцию в Datalore

Приглашаем принять участие в исследовании!

Команда маркетинговых исследований JetBrains проводит опрос специалистов по анализу данных. Приглашаем вас принять участие в этом исследовании. Интервью проводится в Google Meet и займет не более 60 минут.

В благодарность за уделенное время вы получите подарочную карту Amazon eGift на $100 или ее аналог из местного магазина Amazon. Обратите внимание, что вознаграждение подразумевает ваши ответы на все вопросы интервью.

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


Заполнить анкету

P. S. Мы будем благодарны, если вы поделитесь этой информацией с коллегами, занимающимися анализом данных.

На сегодня все. Подписывайтесь на нас в Twitter, чтобы быть в курсе новостей о Datalore!

Анализируйте с удовольствием!

Ваша команда Datalore
The Drive to Develop

]]>
https://blog.jetbrains.com/datalore/2022/02/11/new-in-datalore-2021-recap-visualization-improvements-and-more/
План развития YouTrack 2022 https://blog.jetbrains.com/ru/youtrack/2022/02/youtrack-roadmap-2022/ Wed, 09 Feb 2022 09:37:00 +0000 https://blog.jetbrains.com/wp-content/uploads/2022/02/Blog_Featured_image_1280x600-4.png https://blog.jetbrains.com/youtrack/2022/01/youtrack-roadmap-2022/ Мы составили план развития YouTrack на ближайший год и более далекую перспективу, ориентируясь на ваши отзывы и пожелания. Делитесь нашим планом с коллегами, оставляйте комментарии и расскажите, какие функции вы хотели бы увидеть в YouTrack в этом году.

Наши обязательства и цели

Количество пользователей YouTrack стремительно растет: с декабря 2020 года оно увеличилось на 34%. Значительная часть этого прироста связана с тем, что YouTrack становится все более универсальным: мы работаем над тем, чтобы нетехническим командам было легче управлять проектами и задачами.

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

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

Планы на 2022 год

Интерактивные диаграммы Ганта

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

Конструктор рабочих процессов

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

База знаний

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

Agile-доски

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

Таблицы учета времени для команд и групп

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

YouTrack Mobile

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

Helpdesk

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

YouTrack Lite и Classic

В YouTrack Lite можно будет просматривать VCS-изменения прямо в задачах. Мы продолжим совершенствовать оба интерфейса, добавляя новые возможности и настройки.

Распознавание текста

Вы сможете легко копировать текст с вложенных изображений, например со скриншотов системных информационных окон.

Редактирование изображений

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

Настраиваемые поля задач

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

Нотация LaTeX

Мы планируем добавить в текстовый редактор поддержку математической нотации LaTeX.

Отчет «Поиск по истории»

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

Локализация интерфейса

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

Интеграция с JetBrains Space

Мы продолжаем расширять интеграцию с системой контроля версий JetBrains Space. Вы сможете выполнять миграцию и непрерывный импорт проектов, задач и пользователей из Space в YouTrack. Также в Space можно будет получать уведомления от YouTrack.

Интеграция с Telegram

Вы сможете получать уведомления YouTrack через Telegram.

Интеграция с Zapier

Мы разрабатываем нативную интеграцию с Zapier. Она откроет широкие возможности для автоматизации бизнес-процессов через интеграцию YouTrack со сторонними продуктами и сервисами.

Глобальные цели на будущее

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

Простота администрирования

Мы продолжим упрощать и оптимизировать администрирование команд, пользователей и других аспектов YouTrack.

Простор для создания плагинов

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

Легкое погружение в YouTrack

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

Больше инструментов для планирования

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

YouTrack для крупных организаций

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

Оптимизация работы на стыке команд и проектов

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

Использование нескольких узлов

Архитектура с несколькими узлами повысит производительность и доступность YouTrack при масштабировании.

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

Ваша команда YouTrack
The Drive to Develop

Автор оригинальной статьи:

Elena Pishkova

Elena Pishkova

]]>
https://blog.jetbrains.com/zh-hans/youtrack/2022/02/youtrack-roadmap-2022/ https://blog.jetbrains.com/tr/youtrack/2022/02/youtrack-roadmap-2022/ https://blog.jetbrains.com/pt-br/youtrack/2022/02/youtrack-roadmap-2022/ https://blog.jetbrains.com/ko/youtrack/2022/02/youtrack-roadmap-2022/ https://blog.jetbrains.com/ja/youtrack/2022/02/youtrack-roadmap-2022/ https://blog.jetbrains.com/fr/youtrack/2022/02/youtrack-roadmap-2022/ https://blog.jetbrains.com/es/youtrack/2022/02/youtrack-roadmap-2022/ https://blog.jetbrains.com/youtrack/2022/02/youtrack-roadmap-2022/ https://blog.jetbrains.com/de/youtrack/2022/02/youtrack-roadmap-2022/
Fleet: что внутри. Часть 1. Архитектура https://blog.jetbrains.com/ru/fleet/2022/02/fleet-below-deck-part-i-architecture-overview/ Wed, 02 Feb 2022 11:00:00 +0000 https://blog.jetbrains.com/wp-content/uploads/2022/01/Blog_Featured_image_1280x600.png https://blog.jetbrains.com/fleet/2022/01/fleet-below-deck-part-i-architecture-overview/ Недавно мы представили новый продукт под названием Fleet. Это IDE следующего поколения от JetBrains. Сейчас доступ к Fleet открыт для ограниченного числа пользователей. Их отзывы помогают нам улучшить продукт, и мы планируем выпустить первую публичную версию уже в этом году.

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

Что лежит в основе Fleet

Как только мы анонсировали Fleet, в Твиттере появилось несколько интересных тредов с предположениями о том, на чем же он написан. Одни думали, что на JavaScript и Electron. Другие надеялись, что это не так. Кто-то радовался, что это не «старая неуклюжая Java». Удивительно, какие выводы можно сделать по одним только скриншотам.

На самом деле в основе Fleet — прекрасная, надежная и производительная платформа JVM. Почему? Потому что, несмотря на распространенное мнение, она действительно очень производительная. А еще JVM подходит для кросс-платформенной разработки, что значительно все упрощает, когда речь заходит о поддержке разных операционных систем.

При этом вовсе не обязательно писать код исключительно на Java или использовать Swing в качестве UI-библиотеки (подробнее об интерфейсе и о том, как во Fleet используется Skia, мы расскажем в следующем посте). JVM позволяет программировать на разных языках, в частности на Kotlin. Именно на нем и написана наша IDE.

Fleet — IDE для разработки на разных языках, и сама написана не только на Kotlin. Так, небольшая часть Fleet, а именно Fleet System Daemon, написана на Rust.

Архитектура Fleet

Теперь, когда вы знаете, что лежит в основе Fleet, давайте поговорим об архитектуре. Вот как она выглядит:

За что отвечает каждый из этих компонентов?

Фронтенд

Логично предположить, что фронтенд — это пользовательский интерфейс, но во Fleet он отвечает и за другую функциональность. Например:

  • парсинг файлов,
  • подсветку синтаксиса и базовое автодополнение,
  • возможности редактора.

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

Рабочее пространство

Как следует из названия, рабочее пространство — это место, где обрабатывается все, что связано с сеансом работы, например управление состоянием. Рабочее пространство может быть частью процесса Fleet или отдельным процессом, в зависимости от того, где оно запущено: на локальном компьютере или на удаленном сервере.

Бэкенд и умный режим

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

Умный режим по умолчанию работает за счет механизма анализа кода IntelliJ IDEA, но можно подключать пользовательские анализаторы и даже языковые серверы (не важно, через LSP или нет).

Fleet System Daemon (FSD)

Этот компонент написан на Rust и отвечает за сборку проекта, запуск кода, выполнение команд терминала и другие действия в окружении, в котором работает Fleet.

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

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

Следите за новостями!

Ваша команда Fleet
The Drive to Devolop

Автор оригинальной статьи:

Hadi Hariri

Hadi Hariri

]]>
https://blog.jetbrains.com/zh-hans/fleet/2022/02/fleet-below-deck-part-i-architecture-overview/ https://blog.jetbrains.com/ko/fleet/2022/02/fleet-below-deck-part-i-architecture-overview/ https://blog.jetbrains.com/fr/fleet/2022/02/fleet-below-deck-part-i-architecture-overview/ https://blog.jetbrains.com/fleet/2022/02/fleet-below-deck-part-i-architecture-overview/ https://blog.jetbrains.com/de/fleet/2022/02/fleet-below-deck-part-i-architecture-overview/
Custom Styles https://blog.jetbrains.com/ru/2022/01/30/wp-global-styles-jetbrains/ Sun, 30 Jan 2022 08:26:36 +0000 https://blog.jetbrains.com/2022/01/30/wp-global-styles-jetbrains/ {“version”: 2, “isGlobalStylesUserThemeJSON”: true }

]]>
Девятый ежегодный хакатон JetBrains https://blog.jetbrains.com/ru/team/2022/01/19/jetbrains-9th-annual-hackathon/ Wed, 19 Jan 2022 14:00:00 +0000 https://blog.jetbrains.com/wp-content/uploads/2021/10/DSGN-12142_Hackaton21_winners_post_Blog_Featured_image_1280x600.png https://blog.jetbrains.com/team/2021/10/27/jetbrains-9th-annual-hackathon/

Неудачи не фатальны, зато удачные изобретения остаются на века.

Дух нашего ежегодного хакатона сложно описать словами. Для одних это приключение — возможность попробовать что-то новое. Для других это вызов — попытка выйти за рамки своих компетенций. У всех свои причины участвовать, но всегда интересно, куда могут привести эксперименты наших коллег. На хакатоне нет никаких ограничений для творчества, и проекты, которые участники создают всего за 48 часов, порой открывают для JetBrains совершенно новые направления развития. Итак, мы рады объявить результаты девятого ежегодного хакатона JetBrains!

Хакатон в цифрах:

  1. 5 минут на презентацию
  2. 10 номинаций
  3. 36 судей
  4. 48 часов работы
  5. 63 завершенных проекта
  6. 70 начатых проектов
  7. 91 идея
  8. 200 голосующих
  9. 226 участников
  10. 23 000 долларов в призовом фонде

Проекты прошлых лет

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

Grazie

Плагин Grazie проверяет орфографию и грамматику в тексте, который вы набираете в IDE. Он быстро завоевал популярность и продолжает развиваться в разных направлениях, связанных с естественными языками. Основой для него послужил проект Suite of Sweet Writing с хакатона 2018 года. Затем команда энтузиастов продолжила работу над проектом. Теперь Grazie вдохновляет на новые идеи: в этом году на хакатоне был представлен проект Grazie Semantic Cards. Плагин Grazie встроен в наши IDE, а еще есть расширение для Chrome. Рекомендуем попробовать!

Toolbox App

Приложение Toolbox App тоже появилось благодаря хакатону. Сейчас им пользуются уже более миллиона человек. Оно служит единой точкой взаимодействия с инструментами JetBrains и позволяет с легкостью их обновлять. Мы продолжаем активно развивать Toolbox App, и много новых функций сейчас находятся в работе. Если вы никогда не пользовались приложением Toolbox App, обязательно попробуйте его. Оно здорово упрощает работу с инструментами и проектами.

Space Pages

Space Pages — еще один проект, который зародился на хакатоне. Сейчас Space Pages — одна из важнейших функций JetBrains Space — универсального решения для команд разработки ПО. Space может вдохновить участников будущих хакатанов на новые проекты, ведь у него практически безграничные возможности для развития.

В этом году награду за самый востребованный проект забрали создатели:

Awesome Meeting Facilitator

За последние несколько лет многие перешли на удаленный формат работы, и виртуальные встречи стали привычным делом. Awesome Meeting Facilitator полюбился многим сотрудникам JetBrains, ведь он позволяет легко организовывать спонтанные встречи в Google Meet при помощи сочетаний клавиш.

Девятый хакатон

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

Вот эти номинации:

Новый технологический стек

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

Победитель:

IDEA Embedded Hardware Keys

Проект добавляет в IntelliJ IDEA поддержку аппаратных ключей Apple SecureEnclave и TMP для SSH и подписей GPG. Он позволяет управлять SSH-ключами прямо из IntelliJ IDEA и надежно хранить их в T2/TPM2.

Практичный инструмент

— Разработанный инструмент (физический или программный) помогает в решении определенной задачи. Большинство продуктов JetBrains появлялись на свет, именно когда мы сталкивались с необходимостью решить ту или иную проблему. Эта номинация именно для таких решений.

Победитель:

Flora микроплагины на JavaScript для IntelliJ Platform 

Появилась возможность добавлять в IDE однофайловые плагины на уровне проекта. Теперь, если вашей IDE чего-то не хватает, вы можете реализовать это на JavaScript. Скачать плагин Flora можно на Marketplace.

Работа из дома

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

Победитель:

Sort the Meet

Команда разработала расширение для Chrome, которое упорядочивает имена участников встречи в Google Meet по алфавиту. Это очень полезно при проведении ежедневных командных встреч и прочих собраний, на которых участники высказываются по очереди.

Работа из офиса

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

Победитель:

The Gazeta

Подготовка еженедельной рассылки JetBrains — большая работа. Проект The Gazeta предлагает новый способ сбора контента и подготовки его для публикации, а также добавляет некоторые визуальные отличия.

Физически осязаемое

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

Победитель:

CyberJacksonPollock

Команда Museum of the Future взялась творить в футуристическом стиле с привлечением технологий будущего. Теперь при помощи роботизированной руки и веб-интерфейса мы можем создавать произведения абстрактного искусства.

 

Общение и развлечения

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

Победитель:

Productivity Guide Goes Social

У IntelliJ IDEA есть встроенное руководство по продуктивности (Productivity Guide), позволяющее следить за тем, как используются некоторые функции IDE. Проект дает возможность делиться собранной статистикой и результатами в социальных сетях. Скачать плагин можно здесь.

 

Бизнес-ценность

— В этой номинации награждаются проекты, которые создают бизнес-ценность.

Победитель:

Pavlovian: Classical Conditioning in Space 

С помощью этого инструмента можно создавать рабочие процессы для запуска в Space. Система чем-то похожа на условные рефлексы по Павлову: она основана на стимулах (события по подписке Space) и реакциях (API Playground).

Лучшая презентация

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

Победитель:

Подкаст «Hello, World»

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

 

Победитель хакатона

Это самая престижная номинация. Имя победителя высекается на кубке хакатона и навсегда входит в историю JetBrains. Итак, в этом году наши сердца покорили…

Sonic Logo: звук JetBrains 

Дифференциация и узнаваемость бренда через звук

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

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

Автор оригинальной статьи:

 

Oksana Mandryka

David Watson

]]>
https://blog.jetbrains.com/team/2022/01/19/jetbrains-9th-annual-hackathon/
Программировать во что бы то ни стало https://blog.jetbrains.com/ru/team/2022/01/05/programmirovat-vo-chto-by-to-ni-stalo/ Wed, 05 Jan 2022 08:53:48 +0000 https://blog.jetbrains.com/wp-content/uploads/2022/01/Tagir_pict.jpg https://blog.jetbrains.com/?post_type=team&p=216666 Алина Комиссарова, координатор образовательных проектов JetBrains в Новосибирске, поговорила со своим коллегой, тоже сибиряком, Тагиром Валеевым, техлидом команды Java в проекте IntelliJ IDEA, о том, как живет и работает человек, у которого есть нескончаемый drive to develop, большое желание выступать и делиться своими знаниями, а еще изучать японский — тоже на пользу дела.

Тагир ВалеевТагир Валеев, техлид команды Java в проекте IntelliJ IDEA в JetBrains

Давай начнем с самого начала и даже чуть-чуть раньше. Расскажи, где ты работал до JetBrains, чем занимался, было ли это как-то связано с твоей кандидатской диссертацией?

Мой трудовой путь начался в 2004 году, когда я стал программировать за деньги, а не за идею. Я заканчивал магистратуру, учился на физфаке НГУ, на отделении физико-технической информатики. Предполагалось, что счастливые выпускники должны идти автоматизировать какие-нибудь коллайдеры, детекторы элементарных частиц. Это все действительно делают мои одногруппники, которые в ЦЕРНе работают. Но я шел на факультет все-таки за программированием, а не за физикой. Товарищ, с которым мы вместе играли в бридж, пригласил меня в компанию, в которой они занимались биоинформатикой. Им нужны были программисты, которые могли что-то на плюсах пилить, и я пошел к ним. Компания базировалась в Институте систем информатики. Я там же поступил в аспирантуру и стал заниматься проектом, основная задача которого — построение модели генной регуляции.

Расскажи, что это за задача?

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

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

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

Быстро! За два года, получается.

Да, я решил не тянуть с этим делом. Думаю, это зависело не только от меня, но и от института. Есть институты, где будь ты хоть трижды гений, десять лет не защитишься. А у нас многие за два-три года аспирантуры защищались.
Потом это дело вылилось в целую платформу, в которую можно было сразу загружать данные, фильтровать списки генов, сортировать их, разделять по группам. Туда же встроили анализ, который я защищал на диссертации, и еще кучу других алгоритмов. В принципе получилась прикольная система. Где-то в 2008-2009 годах у компании начались некоторые сложности, наступили кризисные времена. Но при Конструкторско-технологическом институте вычислительной техники была лаборатория биоинформатики. Там работали другие люди, но тоже мне знакомые — меня туда аккуратно передали. Они делали другую штуку — уже на Java. Так я познакомился с языком Java и стал активно программировать на нем с 2009 года.

А когда ты заинтересовался статическим анализом? Я так понимаю, у тебя еще до работы в JetBrains были свои проекты в этой области.

Это произошло тоже довольно случайно. Мне всегда было интересно рассматривать программу как предмет исследования, а не просто как инструмент, который выполнил операцию и ладно. В какой-то момент я стал заботиться о качестве нашего кода. Узнал, что есть статические анализаторы и, в частности, FindBugs для Java. Тогда он еще не совсем морально устарел. Плюс восьмая Java еще не вышла (это был 2013 год). Я его поставил, проанализировал наш проект, который уже был довольно крупный — 10 тысяч классов — и нашел много интересных вещей, что называется facepalm. Тогда мы писали в Eclipse, а в нем встроенный статический анализ был слабоват: помимо обязательных предупреждений компиляции не очень много чего сверху было. Поэтому я очень удивился, что можно вот так взять и найти в коде ошибки, и начал исправлять то, что FindBugs находил в нашем коде.

В какой-то момент в работе FindBugs начали обнаруживаться проблемы. Он чего-то не видел либо репортил то, что не надо. Я нашел, где на SourceForge тогда еще был проект. Стал предлагать: давайте вот это поправим, давайте то. Сперва я просто сообщал о багах, а потом патчи стал кидать. Но тот проект двигался в сторону своего заката, его создатель Билл Пью уже стал отходить от дел.

А я стал контрибьютить сперва по чуть-чуть, потом уже начал какие-то серьезные штуки делать. Например, сделал анализ целочисленных диапазонов. В FindBugs вообще такого не было. Он действительно находит интересные баги. Например, если ты проверишь икс больше нуля, а потом внутри этой ветки икс сравнишь с минус один, то он тебе скажет, что здесь этого не может быть, потому что мы уже знаем, что икс больше нуля. Это было уже солидное улучшение. Потом я стал понимать, что FindBugs — дорога в никуда. Дело даже не в том, что авторы теряют к нему интерес, а в том, что у него совершенно невменяемая архитектура с кучей глобальных переменных. Из-за этого его нормально не сделаешь многопоточным, например.

У тебя появился свой форк?

У меня даже не форк появился. Я просто в какой-то момент подумал, что мог бы написать свой статический анализатор. FindBugs анализирует байт-код, он не анализирует исходники. При этом FindBugs очень низкоуровневый, то есть он обычно работает с отдельными инструкциями байт-кода, и, если ты пытаешься сделать что-то нетривиальное, это адище. У тебя нет глобальной модели кода, а есть просто цепочка инструкций. Я сперва пытался сам сделать такую модель, но понял, что это задача не на пять минут и стал искать что-то готовое. Было два интересных движка: джетбрейновский Fernflower и Procyon.

Я выбрал Procyon. В основном потому, что JetBrains не сильно заботилась, чтобы Fernflower был как отдельный продукт. Не знаю, как сейчас, но тогда не было даже Maven-артефактов. Пришлось бы его еще собирать дополнительно.

А Procyon нормальный, его можно было использовать как библиотеку. Внутри он строил очень высокоуровневую модель кода по байт-коду, в которой уже можно было структуру видеть, вложенность циклов, условий и т. д. Еще он умел по возможности восстанавливать generic-типы по байт-коду после erasure, и у него очень неплохо это выходило. На этом уровне мне было вполне приятно писать статический анализатор. Я сделал свой, назвал его HuntBugs и какое-то время довольно активно его пилил. У меня было больше ста разных типов проверок. Я пытался повторить большую часть функциональности FindBugs и добавить что-то свое. В FindBugs на тот момент было около 400 инспекций (диагностик). Я, наверное, процентов 30 успел покрыть, пока у меня был запал.

А какова его судьба в итоге?

Он полностью заброшен, но сыграл важную роль в моем трудоустройстве в JetBrains. Я его как раз писал перед тем, как у JetBrains открылся офис в Новосибирске. Естественно, когда компания объявила, что собирается провести JetBrains Night и там будут собеседования, я решил, что это знак. Я смогу заниматься тем, что мне интересно, но при этом за деньги, а не за просто так.

Я сделал еще такой ход конем: взял IntelliJ IDEA Community, там самый большой JAR: в lib/idea.jar мегабайт 100, наверное, кода — и прогнал его через HuntBugs. Понятно, он много чего выдал, где-то был мусор, но были интересные штуки, корявый странный непонятный код. Я про это все написал статью на Хабре: вот, смотрите, у меня есть клевый анализатор HuntBugs, чтобы вы поняли, что это не поделка, а более-менее серьезная вещь. Я проверил IntelliJ IDEA Community Edition, у которой вообще-то свой довольно сильный статический анализ, то есть предполагалось, что ее авторы, наверное, следят за качеством кода. Но тем не менее мне что-то удалось найти.

То есть ты написал статью уже зная, что офис открывают?

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

У тебя на тот момент помимо своего статического анализатора был довольно большой рейтинг на Stack Overflow, статьи на Хабре, Twitter. Это тебе тоже как-то помогло при устройстве на работу, или все-таки та статья сыграла наибольшую роль?

Была параллельно еще история со стримами (Java Stream API), которые появились в Java 8. Что-то я на них запал. Сначала был энтузиазм в духе «ух-ты, как здорово и легко можно сделать сложные вещи», а потом я начал понимать, что на стримах каких-то вещей сделать нельзя. Я начал пилить свою библиотеку StreamEx, выложил ее на GitHub и написал на Хабре вводную статью, где показал, что там можно делать.

Но у Хабра довольно ограниченная аудитория и в первую очередь русскоязычная. Я стал думать, как еще можно пропиарить библиотеку, и мне пришел в голову Stack Overflow. Я стал смотреть, что вообще люди спрашивают про стримы. Во-первых, иногда из каких-то вопросов могла родиться новая фича StreamEx, во-вторых, я мог человеку ответить: «Стандартным Stream API этого сделать нельзя, либо будет очень некрасиво. Но если вы возьмете мою библиотеку, которая, кстати, бесплатная и опенсорсная, то вы очень красиво и легко решите свою задачу». По правилам Stack Overflow это разрешено.

Нехорошо, если человек прямо в вопросе пишет, мол, я не хочу использовать third-party solution, но если он так не пишет, то ему можно посоветовать. И в какой-то момент меня это затянуло. Это стало больше, чем просто поддержка StreamEx. У Stack Overflow очень хорошо построена геймификация: рейтинги, бейджи, графики. В итоге я примерно год отвечал довольно активно. В основном про стримы, но иногда и какие-то смежные темы затрагивал. Там же я увидел людей из Oracle: Брайан Гетц, Стюарт Маркс иногда отвечали. Я нашел какой-то баг прямо в стримах и зарепортил его в виде вопроса на Stack Overflow.

Они тебе ответили?

Да, Брайaн отреагировал. Они завели тикет в трекере OpenJDK и исправили в каком-то обновлении Java 8. Но я все же понял, что Stack Overflow не лучший способ для репорта багов: там далеко не всегда достучишься до людей. Лучше в мейлинг-листе общаться. Раньше я вообще не знал, как устроено развитие Java и что многие вещи происходят вполне открыто, в мейлинг-листах. Тогда я подписался и стал участвовать в обсуждениях, а потом потихонечку и контрибьютить. Я стал контрибьютором, потом автором и коммитером в OpenJDK.

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

Твой такой заметный след в интернете как-то продолжает влиять на твою жизнь? Тебе пишут, зовут в чем-нибудь участвовать или на работу, например?

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

Ты говоришь, что отказываешься, но все равно много выступаешь, а еще преподаешь. Тебе нравится работать с аудиторией?

Мне интересно делиться знаниями. Мне кажется, что, когда я что-то такое прикольное знаю, очень здорово про это рассказать другим. Доклады и лекции отнимают кучу времени, потому что нужно все подготовить, отрепетировать. Иногда даже возникает мысль, а не бросить ли все это. Но когда доклад все-таки состоялся, становится просто приятно. Людям было интересно, они тебя слушали, задавали вопросы. Ты понимаешь, что принес пользу. Они что-то узнали и при этом не зевали. Мне кажется, у меня получается интересно рассказывать.

Я слушала твои лекции, мне было интересно. Написание статей преследует примерно ту же цель — поделиться знаниями. Но ты чаще выбираешь именно выступать. Почему?

Мне кажется, это немного другой формат. Мой первый доклад был на конференции Joker в 2015 году. Я тогда начал интересоваться, как Java что-то компилирует, и выяснил, что иногда происходят какие-то совершенно невероятные оптимизации. Сперва начал статью на Хабре писать про это дело, но получалось как-то серо и уныло. Там история такая немножко детективная: вот мы это делаем, но тут вот так получается и какая-то загадка необъяснимая, надо разбираться. И в какой-то момент просто пришло осознание, что если сделать доклад, должно получиться интереснее, чем сухой текст, потому что можно будет что-то обыграть, драматические паузы в нужные места вставить. Я так и сделал, и мне понравилось.

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

Я не вижу больших преимуществ в том, чтобы куда-то переезжать. Есть плюсы и минусы, и они друг друга уравновешивают, поэтому куда-то двигаться большого смысла нет. Например, климат. Тут бабушка надвое сказала, учитывая глобальное потепление. Может оказаться, что Новосибирск будет лучшим вариантом. Если переезжать в другую страну, то сразу языковой барьер, сложности с социальной адаптацией детей, отсутствие знакомых, друзей, которые есть здесь, родственников. В целом многие вещи придется делать с нуля. Я по натуре домосед. Бросать все и неизвестно куда перебираться мне не очень нравится.

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

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

Давай про удаленку поговорим, про работу, про команду. Команда у тебя распределенная, и в Новосибирске 4 часа разницы с Москвой и Питером, с Мюнхеном вообще 5-6 часов в зависимости от времени года. Сказался ли на вашей работе переход на удаленку?

Перед тем как мы ушли на самоизоляцию, в Новосибирске у нас было три человека из команды Java, которые сидели в одной комнате. Мы могли рабочие вопросы обсуждать вживую. Были задачи, которые мы вместе решали, то есть садились рядышком и было а-ля парное программирование. Сейчас этого нет, но так как все равно часть команды была в Питере, а часть в Мюнхене, в принципе не так страшно. Но скучаешь по тем временам, когда можно было человека о чем-то спросить через стол. Люди стали больше вариться в собственном соку и меньше знать, что происходит. Конечно, у нас есть еженедельные митинги в команде, созвоны one-to-one. Плюс я стараюсь появляться на виртуальных стендапах каждый день.

Еще есть новый формат виртуальной «чашки чая». Можно созвониться в определенное время всей командой и говорить не о работе. Иногда люди о жизни рассказывают, как дела, чем занимаются. Это даже больше сблизило нас с теми коллегами, которые не в Новосибирске.

В JetBrains есть такая штука как 20-процентный проект, во время которого можно заниматься чем-то, не связанным с основной работой. Ты используешь такую возможность?

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

Тем не менее часть рабочего времени я действительно трачу на вещи, которые напрямую не связаны с моей работой. Иногда это деятельность, связанная с Java в целом. Мне очень нравится влиять на будущее языка. Я состою в экспертной группе проекта Amber, через который проходят все новые фичи языка Java, всякие records, pattern matching, switch expressions и т. д. Я довольно активно участвую в обсуждениях, вычитываю черновики спецификаций и иногда делаю патчи. Я не считаю, сколько времени на это трачу. Наверное, меньше 20%.

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

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

Как вы в команде обсуждаете какие-то вещи и принимаете решения? Расскажи об этом, есть ли у тебя свой подход?

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

Иногда решения не просто связаны с кодом, а от них зависит user experience. Допустим, кто-то просит сделать новую инспекцию или новый warning. Во-первых, надо решить, в принципе будем мы это делать или нет. Потому что это может быть не очень важная штука, может быть, там будет очень много false positive срабатываний. Может быть, это связано с какой-то сторонней библиотекой, и мы вообще не хотим заниматься ее поддержкой. Такое решение мы стараемся обсудить, у нас есть даже документ, который мы год или полтора назад написали, о том, как такие запросы обрабатывать. Хотим мы делать новую инспекцию или нет? Лучше сделать совсем новую инспекцию или включить в существующую?

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

Бывает, мое мнение оказывается неправильным. В принципе считается, что лучше всего знает тот, кто уже с этим работал, не важно какая у этого человека роль в команде. Если ты более опытный, то чаще всего этот человек ты, потому что ты уже этот код ковырял. С другой стороны, если новичок взялся за какую-то подсистему и месяц в ней ковыряется, он автоматически становится главным экспертом в этой системе, несмотря на то, что в целом у него опыта меньше. Здесь мы прислушаемся к его мнению.

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

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

Когда я готовлю доклад на выходных, дети спрашивают: «Папа, ты работаешь?». Я говорю: «Нет, я развлекаюсь». Потому что вроде бы нехорошо работать на выходных, когда и поразвлекаться можно. Раньше у меня были какие-то увлечения, более далекие от программирования: я действительно довольно долго изучал японский — лет шесть — и сдал экзамен «Нихонго Нореку Сикэн». По-английски он называется Japanese Language Proficiency Test, и это второй уровень. Максимальный был первый. Это было еще в 2006 году, очень давно.

Почему японский?

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

Но зато он сложный в плане написания, у них же там три азбуки, иероглифы…

Это как-то меня не сильно запарило. Ты визуально эти иероглифы запоминаешь. То, что сейчас люди пишут половину текста в эмодзи, это же все из Японии пошло, даже само слово «эмодзи» японское. Они действительно разговаривают картинками, у них головы что ли так устроены, и иероглифы — это по сути картинки. Ты просто запоминаешь их смысл. И даже если ты не знаешь слово из двух иероглифов, но один из них тебе знаком, можно догадаться, что это означает. Плюс их все-таки не запредельное количество.

Я выучил около 1000 иероглифов. Может 1100, плюс две азбуки, обе по 50 символов. 1100-1200 символов — это на самом деле реалистичный объем. Английский не сильно далеко ушел, потому что английские слова в некотором смысле тоже иероглифы. Когда видишь английское слово, если ты начинающий, ты часто не знаешь, как оно будет читаться. Тебе все равно нужно знать, как слово выглядит, как оно читается и что оно значит, это три разные штуки.

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

В смысле прямо в японской IntelliJ IDEA работаешь?

Да, она полностью локализована. Бывает, что я хочу что-то найти и не понимаю. Самое сложное — это, например, найти инспекцию, название которой я знаю по-английски. У меня есть список из 2000 инспекций и нужно догадаться, как они называются по-японски. А так в принципе работать вполне можно, я стал что-то вспоминать, и это такое приятное чувство ностальгии.

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

Алина КомиссароваАлина Комиссарова, координатор образовательных проектов JetBrains в Новосибирске

]]>
https://blog.jetbrains.com/team/2022/01/05/programmirovat-vo-chto-by-to-ni-stalo/
Important Security Update for JetBrains Gateway https://blog.jetbrains.com/ru/blog/2021/12/30/important-security-update-for-jetbrains-gateway/ Thu, 30 Dec 2021 18:22:46 +0000 https://blog.jetbrains.com/blog/2021/12/30/important-security-update-for-jetbrains-gateway/

On December 27, 2021, we became aware of a security issue that exposes certain JetBrains Remote Development backend IDEs to the networks the server is connected to. This was a result of misconfiguration on our side.

The following IDEs were affected:

  • IntelliJ IDEA 2021.3.1 Preview (213.6461.21) and IntelliJ IDEA 2021.3.1 RC (213.6461.48)
  • PyCharm Professional 2021.3.1 RC (213.6461.6)
  • GoLand 2021.3.1 (213.6461.23)
  • PhpStorm 2021.3.1 Preview (213.6461.28) and PhpStorm 2021.3.1 RC (213.6461.58)
  • RubyMine 2021.3.1 Preview (213.6461.24) and RubyMine 2021.3.1 RC (213.6461.46)
  • CLion 2021.3.1 (213.6461.46)
  • WebStorm 2021.3.1 Preview (213.6461.19) and WebStorm 2021.3.1 RC (213.6461.38)

Users who initially configured their backend IDEs within the date ranges specified below are most likely affected:

  • IntelliJ IDEA: Dec 16–29, 2021
  • PyCharm Professional: Dec 15–30, 2021
  • GoLand: Dec 20–30, 2021
  • PhpStorm: Dec 17–30, 2021
  • RubyMine: Dec 16–29, 2021
  • CLion: Dec 22–29,2021
  • WebStorm: Dec 16–29, 2021

If you configured the backend IDEs before the dates above and you have not updated them, you should be safe. However, we recommend checking your backend IDE version just to make sure.

Actions we’ve taken

We fixed the issue on Dec 27, 2021 and we have released the following updates with the fix:

  • IntelliJ IDEA 2021.3.1 (213.6461.79)
  • PyCharm Professional 2021.3.1 (213.6461.77)
  • GoLand 2021.3.2 (213.6461.81)
  • PhpStorm 2021.3.1 (213.6461.83)
  • RubyMine 2021.3.1 (213.6461.75)
  • CLion 2021.3.2 (213.6461.75)
  • WebStorm 2021.3.1 (213.6461.79)

Actions you should take

If you use JetBrains Gateway with one of the vulnerable IDEs listed above as a backend for Remote development, please update to the fixed version of the corresponding IDE. If it is not possible for you to upgrade, please make sure that the environment variable ORG_JETBRAINS_PROJECTOR_SERVER_ENABLE_WS_SERVER=false is being set upon each launch of the Remote Development Server. This usually implies adding the line export ORG_JETBRAINS_PROJECTOR_SERVER_ENABLE_WS_SERVER=false  to the login shell profile of the user that is used to launch the server. Please make sure that the server is restarted after setting the variable. 

We sincerely apologize for what has happened. Please rest assured that we are taking steps to avoid this issue from occurring again in the future. 

If you need any further assistance, please contact support@jetbrains.com or simply comment on this post.

]]>
https://blog.jetbrains.com/zh-hans/blog/2021/12/30/important-security-update-for-jetbrains-gateway/ https://blog.jetbrains.com/ko/blog/2021/12/30/important-security-update-for-jetbrains-gateway/ https://blog.jetbrains.com/fr/blog/2021/12/30/important-security-update-for-jetbrains-gateway/ https://blog.jetbrains.com/blog/2021/12/30/important-security-update-for-jetbrains-gateway/
Вышла новая версия плагина EduTools 2021.12 https://blog.jetbrains.com/ru/education/2021/12/29/edutools-plugin-2021-12-is-available/ https://blog.jetbrains.com/ru/education/2021/12/29/edutools-plugin-2021-12-is-available/#respond Wed, 29 Dec 2021 17:00:00 +0000 https://blog.jetbrains.com/wp-content/uploads/2021/12/Blog_1280x600px-1.png https://blog.jetbrains.com/education/2021/12/16/edutools-plugin-2021-12-is-available/ Мы выпустили EduTools 2021.12! Плагин поддерживает задачи из JetBrains Academy с ответами в виде строковых значений, а также решение задач с данными с использованием языков, отличных от Python. Создатели курсов теперь могут запрещать редактирование файлов проекта. Кроме того, мы внесли другие важные изменения и устранили некоторые ошибки.

УСТАНОВИТЬ EDUTOOLS

Для учащихся JetBrains Academy

🆕 Поддержка задач открытого типа

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

🆕 Поддержка решения задач с данными с использованием языков, отличных от Python

В предыдущей версии EduTools мы добавили поддержку решения задач с данными с использованием языка Python. Теперь вы можете решать такие задачи, используя любые языки программирования, будь то Go, Java, Kotlin, JavaScript, Scala, C/C++, Rust или Python. Если вы изучаете несколько языков, рекомендуем вам попробовать решить одну и ту же задачу с данными, используя разные языки, а потом поделиться с нами результатами в Twitter или на Facebook!

Обратите внимание, что поддержка того или иного языка программирования зависит от того, с какой IDE вы работаете. Например, в PyCharm Edu вы не сможете решать задачи с данными, используя Kotlin, но это можно сделать в IntelliJ IDEA Edu. Подробнее о поддержке разных языков — в примечаниях к этой версии EduTools.

Для создателей курсов

🆕 Нередактируемые файлы

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

Важные улучшения

  • EDU-4456. Мы добавили фоновую подсветку фрагментов кода на панели описания задания, чтобы было проще отличить код от текста.
  • EDU-4679. Теперь если не удалось отправить ответ на тестовое задание, появляется кнопка Retry. После нажатия на кнопку ответы меняются местами.
  • EDU-4717: в карточки курсов Codeforces добавлена информация по предстоящим соревнованиям: время начала регистрации, количество участников и дата предыдущего соревнования.

Полный список улучшений вы найдете в примечаниях к релизу.

Установить плагин EduTools или обновить его до последней версии можно прямо в меню Settings (Preferences в macOS) | Plugins в IntelliJ IDEA, PyCharm, WebStorm, Android Studio, CLion или GoLand.

IntelliJ IDEA Edu и PyCharm Edu 2021.3.1

Мы выпустили новые версии PyCharm Edu и IntelliJ IDEA Edu (2021.3.1). Они включают недавние исправления для PyСharm и IntelliJ IDEA, а также обновления, вошедшие в новую версию плагина. Скачать новые сборки можно с нашего сайта или с помощью Toolbox App. Для пользователей Ubuntu также доступны snap-пакеты.

Нам важно ваше мнение. Оставляйте комментарии под этим постом, пишите нам в Twitter или сообщайте о проблемах в баг-трекере. Ждем ваши отзывы!

Ваша команда Educational Products
The Drive to Develop

Автор оригинальной статьи:

Oksana Mandryka

Anastasia Khramushina

]]>
https://blog.jetbrains.com/ru/education/2021/12/29/edutools-plugin-2021-12-is-available/feed/ 0 https://blog.jetbrains.com/education/2021/12/29/edutools-plugin-2021-12-is-available/
WebStorm 2021.3: много нового для JavaScript, поддержка удаленной разработки и улучшенное автодополнение HTML-кода https://blog.jetbrains.com/ru/webstorm/2021/12/webstorm-2021-3/ Wed, 29 Dec 2021 14:00:00 +0000 https://blog.jetbrains.com/wp-content/uploads/2021/11/Release_Preview_WebStorm2021.3.png https://blog.jetbrains.com/webstorm/2021/11/webstorm-2021-3/ Мы рады представить последнее крупное обновление WebStorm в этом году. В версию 2021.3 вошло много долгожданных улучшений, в частности поддержка удаленной разработки, улучшенное автодополнение HTML-кода, переработанная интеграция с Deno и многое другое.

СКАЧАТЬ WEBSTORM 2021.3

released_blog_pic

Если у вас есть всего пара минут, чтобы ознакомиться с возможностями WebStorm 2021.3, смотрите видео, в котором наш девелопер-адвокат Пол Эверитт рассказывает о самых важных нововведениях. А если вам интересны подробности, читайте этот пост.

Вот основные улучшения в разных частях IDE:

  • JavaScript и TypeScript: улучшенная работа с монорепозиториями, сокращение времени индексации JavaScript-файлов, быстрое исправление для скачивания удаленных модулей ES6, поддержка приватных полей класса ES2022.
  • Фреймворки и технологии: упрощенное управление зависимостями проекта, переработанный плагин Deno, поддержка Angular 13, улучшенное автодополнение HTML-кода.
  • Удаленная разработка: приложение JetBrains Gateway для удаленной разработки, обновления удаленного интерпретатора Node.js и поддержка прокси-серверов для SSH-соединений.
  • Docker: улучшенный процесс подключения, новое действие Clean up, интеграция с Minikube, поддержка Compose V2.
  • Интерфейс: возможность разделения окна Run, новое окно Bookmarks, поиск действий в Search Everywhere с использованием машинного обучения.
  • Контроль версий: реорганизация настроек системы контроля версий, улучшенный процесс отправки коммитов на сервер, новое окно Changes и многое другое.

JavaScript и TypeScript

Улучшенная поддержка монорепозиториев

В этот релиз мы включили несколько улучшений для работы с монорепозиториями. Главное изменение заключается в том, что автоматически добавленные импорты теперь учитывают структуру проекта и обрабатывают каждую папку проекта с package.json как отдельный пакет.

Ускоренная индексация JavaScript-файлов

Мы понимаем, что WebStorm порой работает не очень быстро, и стремимся исправить ситуацию. Изменения, связанные с производительностью, часто не очень заметны, если вы не используете таймер или профилировщик ЦП. В этой версии нам удалось достичь более заметных результатов, сократив время индексации JavaScript-файлов на 20%.

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

Поддержка URL-адресов в инструкциях import

Начиная с версии 2021.3, можно загрузить модуль ES6, поставив курсор на URL-адрес в инструкции import и вызвав быстрое исправление. Модуль будет загружен вместе со всеми зависимостями и связан с проектом как библиотека. Функция работает точно так же, как в браузере. Чтобы попробовать, поставьте курсор на путь импорта, нажмите ⌥⏎ / Alt+Enter и выберите Download module.

support-for-urls-in-import-statements

Поддержка рефакторинга для приватных полей класса ES2022

Поддержку приватных полей мы добавили еще в 2018 году. Однако она была реализована на основе старого предложения TC39 и со временем отклонилась от стандарта. Чтобы решение соответствовало стандарту, мы полностью переработали существующую реализацию поддержки: WebStorm 2021.3 поддерживает приватные поля класса ES2022. Если вы используете для полей, аксессоров или методов приватные имена, то есть элементы, начинающиеся с #, все должно работать корректно. В этом примере показано, как работает рефакторинг переименования в версии 2021.3.

rename-refactoring-private-class-members

Новые intention-действия для организации кода

В WebStorm 2021.3 добавлены два intention-действия для организации кода.

Теперь можно быстро поместить элементы, разделенные запятыми, на одну или несколько строк. Новое intention-действие работает для литералов массивов и объектов, списков параметров и аргументов, атрибутов XML, HTML и JSX, а также других подобных элементов.

Чтобы использовать это intention-действие, поместите курсор на элементы, которые нужно изменить, нажмите ⌥⏎ / Alt+Enter и выберите либо Put comma-separated elements on one line, либо Put comma-separated elements on multiple lines в зависимости от того, что нужно сделать. Название действия для XML, HTML и JSX будет немного отличаться: Put attributes on separate lines или Put attributes on one line.

intention-for-putting-elements-on-separate-lines-and-back-webstorm

Другое intention-действие было добавлено для комментариев JSDoc. В новой версии WebStorm можно в один клик заменять одно- и многострочные комментарии на комментарии JSDoc. Как обычно, к доступным контекстным действиям можно перейти, нажав ⌥⏎ / Alt+Enter.

replace-with-jsdoc-comment

Улучшенный поиск соответствия между файлами js и .d.ts

Еще одно улучшение в этом релизе касается файлов .js и .d.ts. Мы улучшили поиск соответствия между этими файлами и добавили иконки на полях редактора для удобного переключения между ними. Подробнее об этих изменениях — в нашем блоге.

mapping-between-js-and-dts-files

Фреймворки и технологии

Новая инспекция для обновления зависимостей

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

Теперь обновить npm-пакеты до новой версии можно прямо из редактора. Откройте файл package.json, установите курсор на версию пакета, который нужно обновить, нажмите ⌥⏎ / Alt+Enter и выберите Update ‘имя пакета’ to the latest version. Кроме того, при наведении курсора на версию пакета отобразится быстрое исправление.

update-package-in-package-json-quick-fix

По умолчанию новая инспекция просто обеспечивает быстрое исправление, никак не выделяя устаревший пакет. Если вы хотите получать более явные уведомления, измените уровень серьезности инспекции на странице Preferences / Settings | Editor | Inspections в разделе Update package.json dependencies.

update-inspection-severity-level-package-json

Раньше в WebStorm можно было управлять пакетами в соответствующем разделе на странице Preferences / Settings | Languages and Frameworks | Node.js and NPM. Поскольку к этому способу прибегали лишь немногие пользователи, мы решили убрать этот раздел и добавить более простой вариант решения задачи: описанную выше инспекцию.

Наконец, чтобы избежать путаницы, мы переименовали раздел Node.js and NPM на странице Preferences / Settings в Node.js. Как и раньше, там можно выбрать интерпретатор Node и удобный менеджер зависимостей: npm, pnpm или Yarn.

node-js-section-in-preferences

Переработанная интеграция с Deno

В прошлом году в WebStorm была добавлена поддержка Deno. Она использовала интеграцию WebStorm с сервисом TypeScript и плагин typescript-deno. У такой реализации было несколько слабых мест, и в последнее время она работала не очень хорошо. Поэтому мы полностью переработали эту функцию, перейдя на Deno LSP. Кроме того, мы устранили ряд известных проблем. Подробнее обо всех основных изменениях можно прочитать здесь.

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

Поддержка Angular 13

Одной из самых важных задач при подготовке этого релиза была поддержка Angular 13. Эта функция не работала из-за изменений в формате Angular Package Format. WebStorm 2021.3 учитывает эти изменения и поддерживает новую версию Angular.

Улучшенное автодополнение HTML-кода

Мы улучшили работу автодополнения в HTML. Теперь при вводе имени тега или аббревиатуры либо при вызове автодополнения WebStorm сразу же показывает подходящие варианты. Раньше нужно было сначала ввести символ <. Мы поняли, что это не очень удобно для тех, кто не привык вводить символы < и > или не знаком с Emmet.

html-tag-completion-webstorm

Кроме того, в новой версии лучше работает функция автодополнения для мнемоников.

Проверка типов для свойств Vue и React

Между релизами 2021.2 и 2021.3 мы выпустили несколько долгожданных обновлений для Vue, в том числе обеспечив поддержку script setup. В новой версии мы добавили еще одно важное улучшение: WebStorm 2021.3 поддерживает проверку типов TypeScript в шаблонах Vue. IDE уведомит вас, когда в выражениях, привязанных к свойствам, использован неверный тип.

vue-typescript-type-checking

Это работает также для атрибутов React.

Новые возможности HTTP-клиента

В этой версии мы значительно улучшили встроенный HTTP-клиент WebStorm. Мы добавили множество новых возможностей: поддержку ответов в виде двоичного кода, перенаправление вывода в заданный файл или директорию, поддержку текстовых потоков и потоков JSON, а также поддержку идентификаторов HTTP-запросов.

image-response-http

Подробнее о новых возможностях читайте в нашем блоге.

Удаленная разработка

Удаленная работа с WebStorm

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

Поддержку удаленной разработки обеспечивает наше новое приложение JetBrains Gateway. Это единая точка входа для всех удаленных бэкендов, которая позволяет не устанавливать IDE на локальную машину. Самую свежую версию JetBrains Gateway можно скачать на нашем сайте. Вот что вы увидите, установив приложение:

jetbrains-gateway

Подробнее о том, как начать работу, читайте в документации.

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

Разработка с удаленным Node.js

Готовя этот релиз, мы значительно улучшили поддержку рабочего процесса, при котором Node.js установлен в Docker и используется интеграциями WebStorm с инструментами JavaScript. Теперь IDE позволяет использовать удаленный интерпретатор Node.js с ESLint, Mocha, Jest, npm, pnpm и yarn.

Поддержка удаленного интерпретатора Node.js для ESLint была доступна уже в версии 2021.2 как экспериментальная функциональность. Начиная с этого релиза, она будет включена по умолчанию.

Чтобы попробовать новую функциональность, необходимо сначала добавить удаленный интерпретатор Node.js. Для этого перейдите на страницу Preferences / Settings | Languages & Frameworks | Node.js, откройте раскрывающийся список в поле Node interpreter и нажмите Add. Затем выберите Add Remote… и в появившемся диалоге укажите один из существующих образов Docker.

node-remote-interpreter-settings

Затем вернитесь к Preferences / Settings и проверьте в поле Package manager путь к папке установки менеджера зависимостей в образе Docker.

После этого можно вернуться в редактор и установить зависимости в проекте с помощью Node.js и менеджера зависимостей в Docker. После этого вы сможете работать так же, как с локальным экземпляром Node.js. Например, если нужно проверить файл JavaScript с помощью ESLint, откройте файл в редакторе, и ошибки будут подсвечены автоматически.

Кроме того, мы добавили возможность использования удаленного интерпретатора Node.js со скриптами Mocha, Jest, npm, pnpm и yarn. Ссылки на инструкции для всех поддерживаемых технологий:

Поддержка прокси для подключений по SSH

В новой версии для конфигурации SSH можно указать прокси-сервер HTTP или SOCKS (Preferences/Settings | Tools | SSH Configurations).

В новом разделе HTTP/SOCKS Proxy можно выбрать тип прокси, ввести имя хоста и порт, а также при необходимости включить аутентификацию по логину и паролю.

http-socks-proxy-settings-webstorm

Кроме того, можно синхронизировать настройки SSH-прокси с общими настройками IDE. Для этого нужно поставить флажок Use global IDE proxy settings.

Docker

Более удобное подключение

Теперь подключиться к Docker можно быстрее: достаточно дважды щелкнуть по нужному узлу или нажать ⌘⏎ в macOS или Ctrl+Enter в Windows и Linux. Действие Start container вызывается этим же сочетанием клавиш.

docker-connection

Новое действие Clean up

Новое действие Clean up работает так же, как команда prune в терминале. Щелкнув правой кнопкой на узле Networks, Volumes, Containers или Images, выберите Clean up, и IDE удалит неиспользуемые объекты. Действие можно также применить к корневому узлу Docker, чтобы одним кликом удалить все ненужные объекты.

docker-clean-up

Подключение к Docker из Minikube

Теперь подключиться к демону Docker из Minikube очень просто. В Preferences/Settings | Build, Execution, Deployment выберите переключатель Minikube. В соседнем текстовом поле автоматически появятся найденные в Minikube окружения docker-daemon, к которым можно подключиться.

docker-minicube

Поддержка Compose V2

WebStorm поддерживает Compose V2. Благодаря этому команды Docker Compose можно вводить в форме docker compose, а не docker-compose (с дефисом).

Чтобы включить эту функцию, перейдите в меню Preferences/Settings | Build, Execution, Deployment | Docker | Tools и поставьте флажок Use Compose V2.

compose-v2

Слои образа

Слои образа позволяют отслеживать все команды, примененные к образам. Чтобы перейти к ним, выберите образ и откройте вкладку Layers. На этой вкладке, выбрав команду, можно щелкнуть по ссылке Analyze image for more information в правой части экрана и посмотреть подробную информацию об изменениях для каждого слоя.

image-layers

Сохранение контейнера как образа

Если вы хотите использовать предварительно настроенный контейнер позже, его можно сохранить как образ. Откройте окно Services, щелкните правой кнопкой на контейнере и выберите Image | Save as a new Image.

container-image

Поддержка Podman

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

После установки и настройки Podman в вашей ОС к нему можно подключиться в меню Preferences/Settings | Build, Execution, Deployment | Docker, выбрав переключатель TCP socket и заполнив необходимые поля.

Взаимодействие с IDE

Возможность разделения окна Run

Запустили сразу несколько конфигураций и хотите посмотреть их результаты одновременно? Теперь окно Run можно разделить. Просто перетащите нужную вкладку в выделенную область. Чтобы убрать разделение окна, можно перетащить вкладку обратно или щелкнуть правой кнопкой на верхней панели и выбрать в контекстном меню команду Unsplit.

split-run-tool-window

Новое окно Bookmarks

Раньше в WebStorm было два похожих понятия — Favorites и Bookmarks. Разница между ними была несущественной, поэтому мы решили оставить только одно — Bookmarks. Также мы решили изменить соответствующую логику и создали для закладок отдельное окно.

Теперь все файлы, папки и классы, помеченные как важные с помощью клавиши F3 в macOS или F11 в Windows и Linux, будут помещаться в новом окне Bookmarks.

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

bookmarks-tool-window-webstorm

Предпросмотр исходного кода в окне Show Usages

В функции Show Usages в новой версии было сделано небольшое, но важное изменение. Теперь, нажимая сочетание клавиш ⌥⌘F7/Ctrl+Alt+F7 или нажимая ⌘/Ctrl и щелкая по определению, чтобы посмотреть использования нужного символа, можно включить предпросмотр исходного кода для найденного использования, щелкнув по квадратному значку.

preview-in-show-usages-webstorm

Поиск действий в Search Everywhere с использованием машинного обучения

Теперь при поиске действий через Search Everywhere используется машинное обучение. Новый алгоритм поиска учитывает:

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

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

ml-actions-2021.3

ml-actions-2021.2

Улучшения терминала

В новом релизе терминал WebStorm поддерживает новый API ConPTY для Windows. Используя его в качестве бэкенда терминала, мы смогли устранить несколько проблем, возникавших у пользователей раньше, когда мы использовали консоль winpty. Помимо этого, появилась поддержка 24-разрядных цветов.

conpty-support

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

Вычисление выражений в отладчике

В новой версии найти функцию Evaluate Expression стало гораздо проще. Раньше вместо диалога Evaluate многие использовали отслеживание переменных.

Теперь поле Evaluate Expression доступно прямо в окне Debug, и это самый удобный способ вычисления выражений.

evaluate-expression-in-webstorm-2021-3

Встроенный инструмент диагностики и устранения проблем

В WebStorm 2021.3 появился новый, более быстрый способ диагностики и устранения проблем, которые мешают работе IDE. Если в работе WebStorm возникли неполадки, вызовите новое действие Repair IDE… в меню File и выполните предложенную последовательность шагов. Это позволит выявить ряд наиболее распространенных проблем.

repair_ide

Обновления режима специальных возможностей

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

Кроме того, мы устранили проблему с вызовом всплывающего окна Go to Declaration or Usages.

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

Возможность изменения размера шрифта для всех вкладок

Знаете ли вы, что с помощью колеса прокрутки мыши можно изменить размер шрифта в редакторе? Раньше эта функция работала только для текущего файла, теперь же ее можно использовать для всех открытых файлов сразу. Перейдите в Preferences / Settings | Editor | General, поставьте флажок напротив Change font size with Command / Ctrl + Mouse Wheel in и выберите вариант All editors.

change-font-size

Управление версиями

Реорганизация настроек системы контроля версий

Чтобы помочь вам быстрее настроить систему контроля версий, мы облегчили поиск настроек и сделали их структуру более понятной. Вот некоторые изменения на странице Preferences / Settings | Version Control.

В узле Version Control теперь размещен список всех доступных настроек. Чтобы перейти к ним, просто щелкните по нужному пункту.

webstorm-vcs-settings-2021-3

Улучшен интерфейс узла Git. Все настройки разделены на разделы, отвечающие за основные процессы: Commit, Push и Update. Кроме того, параметры, включенные в эти разделы, размещены более логичным образом.

git-node-in-webstorm-2021-3

Плюс к этому добавлен отдельный узел Directory mappings. Фоновые операции включены по умолчанию. Узел Background был удален.

Новое действие Push All up to Here

Иногда у разработчика бывает сразу несколько коммитов, но над некоторыми он еще работает, а другие готовы к отправке. В таких случаях удобно передать на сервер только те, работа над которыми завершена. В новой версии WebStorm можно отправить в удаленный репозиторий все коммиты вплоть до коммита, выбранного во вкладке Log окна Git. Для этого выберите нужный коммит, кликните по нему правой кнопкой мыши, чтобы вызвать контекстное меню, и выберите Push All up to Here.

push-all-up-to-here-in-webstorm

Checkout and Rebase onto Current для удаленных веток

Функция Checkout and Rebase onto Current позволяет извлечь выбранную ветку и переместить ее на вершину ветки, в которой вы находитесь. До сих пор это действие было доступно только локально, но начиная с v2021.3 его можно использовать и для удаленных веток.

checkout-and-rebase-onto-current-for-remote-branches-webstorm

Новое окно Changes

Раньше WebStorm показывала разницу между коммитами в отдельном диалоговом окне. Начиная с этого релиза, IDE будет отображать информацию в новом окне Changes. Чтобы открыть новое окно, перейдите на вкладку Log системы контроля версий, правой кнопкой нажмите на нужную версию и выберите в контекстном меню пункт Compare with Local.

changes-tool-window

Выравнивание строк в сравнении

Мы добавили в настройки экрана Diff новый параметр Align Changes Highlighting. Чтобы перейти к настройкам, нажмите значок шестеренки. Эта настройка упрощает чтение информации на экране Diff, особенно при сложных изменениях: она выравнивает строки без изменений, чтобы они отображались друг рядом с другом. В результате вы четко видите, какой код был добавлен или удален.

align-changes-highlighting

Это только основные улучшения! Полный список новых возможностей WebStorm 2021.3 вы найдете в примечаниях к релизу. Сообщайте нам об обнаруженных ошибках через баг-трекер — мы очень ценим вашу помощь.

Ваша команда WebStorm
The Drive to Develop

Автор оригинальной статьи:

Aleksandra Aganezova

Aleksandra Aganezova

]]>
https://blog.jetbrains.com/zh-hans/webstorm/2021/12/webstorm-2021-3/ https://blog.jetbrains.com/webstorm/2021/12/webstorm-2021-3/ https://blog.jetbrains.com/de/webstorm/2021/12/webstorm-2021-3/
ReSharper 2021.3: поддержка Visual Studio 2022, больше возможностей C# 10, улучшенная поддержка C# и NRT https://blog.jetbrains.com/ru/dotnet/2021/12/29/resharper-2021-3/ Wed, 29 Dec 2021 09:00:00 +0000 https://blog.jetbrains.com/wp-content/uploads/2021/12/rs-release-blog-2x.png https://blog.jetbrains.com/dotnet/2021/12/08/resharper-2021-3/ Мы выпустили версию 2021.3 ReSharper и инструментов JetBrains для .NET

Ниже мы вкратце расскажем о важнейших обновлениях в новых версиях ReSharper и ReSharper C++. Подробнее о других инструментах для .NET, включая dotCover, dotMemory, dotPeek и dotTrace, читайте в этом посте

Внимание! Начиная с версии 2021.3 набор инструментов ReSharper Command Line Tools больше не включает в себя dupFinder. Вы по-прежнему можете пользоваться dupFinder в более ранних версиях. Подробности читайте в нашем посте.

А теперь подробнее о новых возможностях.

ReSharper

Поддержка Visual Studio 2022

ReSharper поддерживает финальную стабильную сборку Visual Studio 2022. Это значит, что вы сможете пользоваться привычным набором функций Visual Studio. Поскольку Visual Studio 2022 является 64-разрядным приложением, ReSharper может использовать любое количество оперативной памяти и работать быстрее.

Больше возможностей C# 10

Мы продолжаем расширять поддержку возможностей C# 10 в ReSharper. На этот раз мы поддержали пространства имен уровня файла, директивы global using, атрибут CallerArgumentExpression, обработчики интерполированных строк, структуры readonly record и лямбды C# 10. Подробнее о них можно узнать в нашей серии постов о новых возможностях C# 10, а также на нашем сайте

Поддержка NRT (ссылочных типов, допускающих значение null)

Предположим, вы скопировали откуда-то код с синтаксисом NRT и вставили его в свое решение, которое не поддерживает NRT. Теперь вы можете избавиться от синтаксиса NRT при помощи быстрого исправления. Мы добавили еще несколько быстрых исправлений:

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

Общие улучшения анализа кода на C#

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

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

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

Навигация и поиск использований

На полях редактора появились новые значки, позволяющие перемещаться по иерархии наследования класса, интерфейса или структуры. Значок ↑O означает, что сущность наследует класс, а значок ↑I — что сущность реализует интерфейс. Кроме того, если член класса переопределяется в производных классах, напротив него на полях редактора слева отобразится значок ↓O

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

Если при отладке вы вызовите действие Go to Type of Symbol для переменной или параметра типа интерфейса, то перейдете не к объявлению интерфейса, а к той реализации, которая используется в текущем фрейме.

Другие улучшения

  • Теперь любые параметры, поля и свойства функции можно отмечать атрибутом LanguageInjection, означающим, что строковое значение данной сущности написано на другом языке. Вы можете добавлять фрагменты кода на CSS, HTML, JavaScript, JSON и XML.
  • Мы обновили функцию Copy Code Reference (ранее — Copy FQN). Помимо нового интерфейса мы добавили новые опции GitHub, позволяющие генерировать правильные ссылки на GitHub-репозитории и сразу делиться ими. Подробнее об этом читайте в нашем посте.
  • Появилось несколько новых возможностей для более детального форматирования кода.
  • Мы добавили поддержку файлов AnalyzerConfig — теперь ReSharper учитывает их в своих правилах.

ReSharper C++ 

Главные обновления ReSharper C++:

  • Мы поместили шаблоны классов Unreal Engine в список шаблонов ReSharper C++ — теперь вы можете создавать классы, не переключаясь в Unreal Editor.

  • Мы поддержали больше возможностей C++20: автодополнение назначенных инициализаторов для агрегатной инициализации, а также инспекции, которые помогут вам освоить новые библиотечные функции.
  • Мы дополнили поддержку C выражениями C11 _Generic и расширением GNU typeof.
  • Подсказка Quick Info теперь показывает значения константных выражений.
  • Встроенный Clang-Tidy теперь включает проверки из Clang 13. Также мы добавили новые инспекции и быстрые исправления.

Подробнее о новых возможностях и улучшениях в ReSharper C++ читайте в этом посте.


Узнать больше о новых возможностях ReSharper можно на нашем сайте

Подробнее о других инструментах для .NET, включая dotCover, dotMemory, dotPeek и dotTrace, читайте в этом посте.

Вы можете скачать новую версию на нашем сайте или установить ее через приложение Toolbox App. Мы будем благодарны за ваши отзывы о новых возможностях.

Ваша команда .NET
The Drive to Develop

Автор оригинальной статьи:

Oksana Mandryka

Alexander Kurakin

]]>
https://blog.jetbrains.com/dotnet/2021/12/29/resharper-2021-3/