Общие тенденции в разработке

Поделиться:

Разработка

Чем вы занимаетесь?

90%

Программирование

51%

Код-ревью

42%

Тестирование

37%

Проектирование систем

34%

Развертывание

25%

Разработка инфраструктуры / DevOps

17%

Системное администрирование

В каких операционных системах вы занимаетесь разработкой?

64%

Windows

43%

Linux

42%

macOS

1%

Другое

Участвуете ли вы в проектах с открытым исходным кодом?

45%

Нет, но хотелось бы

21%

Такое было несколько раз

12%

Да, время от времени

8%

Да, регулярно

7%

Нет, и не хочется

4%

Я работаю над проектами с открытым исходным кодом весь рабочий день

2%

Я работаю над проектами с открытым исходным кодом полный рабочий день безвозмездно

41%

респондентов участвовали в проектах с открытым исходным кодом, причем 20% делают это более или менее регулярно.

Сколько разработчиков участвуют в проектах с открытым исходным кодом в разных странах?

55%

США

54%

Германия

53%

Ближний Восток, Африка, Центральная Азия

53%

Великобритания

52%

Материковый Китай

51%

Другие страны Юго-Восточной Азии и Океании

51%

Индия

Какие плагины вы используете в своей IDE или редакторе?

48%

Системы контроля версий

46%

Плагины для фреймворков

40%

Поддержка отдельного языка

37%

Оценка качества кода и анализ

34%

Плагины и темы интерфейса

32%

Инструменты повышения производительности

32%

Инструменты отладки

Кросс-платформенная разработка

Вы разрабатываете кросс-платформенное ПО?

65%

Нет

22%

Да, я разрабатываю кросс-платформенные мобильные приложения

17%

Да, я разрабатываю кросс-платформенные десктопные приложения

Для каких платформ предназначены ваши кросс-платформенные десктопные приложения?

88%

Windows

77%

Linux

53%

macOS

2%

Другое

Мартен Бальо

Девелопер-адвокат в JetBrains

Windows действительно широко используется на настольных компьютерах, но я ожидал, что доля macOS будет больше. Удивительно, как много людей разрабатывают под Linux.

Для каких платформ предназначены ваши кросс-платформенные мобильные приложения?

87%

Android

72%

iOS

55%

Веб

2%

Другое

Как вы обычно работаете с различными операционными системами или платформами при разработке кросс-платформенных десктопных приложений?

50%

Использую физические компьютеры или устройства

49%

Использую виртуальные машины

19%

Обычно не работаю с разными операционными системами или платформами

2%

Другое

Как вы обычно работаете с различными операционными системами или платформами при разработке кросс-платформенных мобильных приложений?

67%

Использую локальный эмулятор

65%

Использую физические компьютеры или устройства

16%

Использую эмулятор на удаленной машине

4%

Обычно не работаю с разными операционными системами или платформами

1%

Другое

Мобильные платформы

Под какие мобильные платформы вы разрабатываете приложения?

87%

Android

58%

iOS

3%

Другое

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

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

61%

Использую нативные инструменты

49%

Использую кросс-платформенные технологии и фреймворки

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

Какими кросс-платформенными фреймворками вы пользуетесь для разработки мобильных приложений?

46%

46%

Flutter

32%

35%

React Native

12%

10%

Unity

12%

8%

Xamarin

11%

9%

Ionic

Безопасность

62%

разработчиков следуют концепции жизненного цикла безопасной разработки (Secure Software Development Life Cycle).

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

74%

IDE или редактор

39%

CI/CD

27%

Баг-трекер

13%

Специальное ПО для обеспечения безопасности

4%

Другое

Какие интегрированные решения вы используете для обеспечения безопасности разрабатываемого ПО?

58%

Не использую интегрированные решения

26%

GitLab

5%

Snyk

5%

Sonatype

4%

JFrog

2%

Checkmarx

2%

Veracode

Статический анализ

Как вы поддерживаете качество своего кода?

71%

Выполняю ревью кода вручную

33%

Иногда запускаю автоматический анализ кода / статический анализ

33%

Запускаю автоматический анализ кода / статический анализ для каждого коммита

2%

Другое

Каковы основные препятствия для поддержания качественного кода в вашем проекте/организации?

48%

Нехватка времени

38%

Большой объем работы

34%

Непоследовательные рекомендации по качеству кода в команде или организации

24%

Нехватка сотрудников

19%

Отсутствие эффективных инструментов

17%

Слишком дорогие инструменты

12%

У меня нет таких проблем

3%

Другое

Какие инструменты вы используете для автоматизированного анализа кода / статического анализа?

62%

IDE или редактор

32%

ESLint

24%

SonarQube

16%

SonarLint

12%

Pylint

10%

Flake8

7%

SonarCloud

6%

Mypy

5%

PHPStan

5%

Ktlint

5%

Snyk

3%

Qodana

9%

Другое

Микросервисы

Следующие вопросы мы задавали только тем, кто разрабатывает микросервисы.

34%

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

Какие подходы вы используете в проектировании систем?

82%

Микросервисы

35%

Сервис-ориентированная архитектура

20%

Монолит с веб-фронтендом

12%

CQRS

8%

Реактивные потоки

4%

Системы акторов

1%

Другое

2%

Никакие

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

75%

REST/RPC по HTTP

48%

Очередь сообщений

24%

WebSocket

24%

Кросс-платформенный RPC

12%

GraphQL

10%

Обработка потоков

9%

Настраиваемая связь по TCP/UDP

8%

SOAP

3%

Удаленное взаимодействие

2%

Другое

1%

Никакие

Спасибо, что уделили время!

Если результаты исследования показались вам интересными, поделитесь ими с друзьями и коллегами.

Если у вас есть вопросы или пожелания, свяжитесь с нами по адресу surveys@jetbrains.com.