← Назад к вопросам

С какой операционной системой работаешь

1.0 Junior🔥 51 комментариев
#Другое

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Операционная система и рабочая среда

Основная ОС: macOS

Мой основной рабочий инструмент — MacBook Pro M3 Pro под управлением macOS Sonoma. Выбрал именно эту платформу по нескольким причинам:

Преимущества macOS для Java разработки:

  1. UNIX-based: В отличие от Windows, это полноценная Unix система, как Linux

    • Bash/Zsh shell с полным функционалом
    • POSIX-совместимый API
    • Все инструменты (git, curl, grep, awk) встроены
  2. Производительность: M3 Pro процессор имеет:

    • 12 ядер (8 performance + 4 efficiency)
    • 18 GB unified memory (в моем конфиге)
    • Отличная производительность JVM
    • Батарея держит весь день разработки
  3. Инструменты разработки:

    • IntelliJ IDEA работает нативно (не через Rosetta)
    • Docker Desktop интегрирован
    • Homebrew для управления пакетами
    • Xcode Command Line Tools (gcc, llvm)
  4. Стабильность: Система редко зависает, нет вирусов

Разработка для разных платформ

Linux для production окружения:

  • Весь production код работает на Linux (Ubuntu, CentOS)
  • Локально использую Docker контейнеры с Linux образами
  • Docker Desktop автоматически создает Linux VM на macOS
# Мой typical workflow
docker-compose up -d  # Запуск PostgreSQL, Redis, Kafka в контейнерах
gradle bootRun        # Запуск приложения на macOS (но БД в Linux контейнере)

Windows: Для некоторых legacy проектов:

  • На виртуальной машине (Parallels Desktop)
  • Для тестирования Windows-specific код
  • Обычно избегаю, если можно

Мой IT stack на macOS

IDE и редакторы:

  • IntelliJ IDEA Ultimate: основной IDE для Java
  • VS Code: для frontend, markdown, конфигов
  • Sublime Text: быстрое открытие файлов

Терминал и shell:

  • iTerm2: лучше чем стандартный Terminal
  • Zsh с Oh My Zsh framework
  • Tmux: управление сессиями
  • git через brew

Контейнеризация:

  • Docker Desktop for Mac: контейнеры
  • docker-compose: оркестрация локально
  • Kubernetes (Minikube): для тестирования K8s конфигов

Базы данных (локально в Docker):

# docker-compose.yml
version: '3.8'
services:
  postgres:
    image: postgres:15-alpine
    ports:
      - "5432:5432"
    environment:
      POSTGRES_PASSWORD: dev_password
  
  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"
  
  kafka:
    image: confluentinc/cp-kafka:latest
    ports:
      - "9092:9092"

Инструменты и утилиты:

  • Homebrew: управление пакетами (brew install gradle mvn jdk)
  • asdf: управление версиями Java, Python, Node
  • OpenJDK 21: основной Java runtime
  • Maven/Gradle: build tools
  • git: version control
  • curl/wget: HTTP запросы
  • jq: парсинг JSON

JVM конфигурация

# ~/.zshrc
# Java setup
export JAVA_HOME=$(/usr/libexec/java_home -v 21)
export PATH="$JAVA_HOME/bin:$PATH"

# Gradle daemon (быстрее)
export GRADLE_OPTS="-Xmx4g -XX:+UseG1GC"

# Maven settings
export MAVEN_OPTS="-Xmx4g"

Performance tuning для macOS

Docker Desktop:

{
  "cpus": 8,
  "memory": 12288,
  "swap": 2048,
  "diskSize": 100
}

Это позволяет Docker использовать достаточно ресурсов для локальной разработки.

Java GC tuning для Intel vs M1/M3:

# macOS с M3 (Apple Silicon)
java -XX:+UseZGC -Xms1g -Xmx4g MyApp

# или G1GC
java -XX:+UseG1GC -Xms1g -Xmx4g MyApp

Мониторинг на локальной машине

# Activity Monitor (встроенный)
open -a "Activity Monitor"

# Command line
top -u
ps aux | grep java
dtrace # для профилирования (macOS только)

Синхронизация между машинами

  • GitHub: весь код в репозитории
  • Cloud Sync: синхронизация конфигов (.zshrc, IDE settings)
  • SSH keys: для удаленных сервисов
  • 1Password: управление паролями

Переносимость workflow

Мой setup полностью переносим между машинами благодаря:

# Restoration script для новой macOS
git clone https://github.com/me/dotfiles.git
cd dotfiles
./install.sh  # Installs everything

Включает:

  • Все homebrew пакеты
  • IntelliJ плагины и settings
  • shell конфигурация
  • Git конфигурация
  • SSH ключи

Альтернативы, которые рассматривал

Linux (Ubuntu/Fedora):

  • Плюсы: совпадает с production, бесплатно
  • Минусы: нужно больше времени на настройку, драйверы, батарея

ThinkPad с Linux:

  • Минусы: дороже, медленнее, нет батареи

Облачная IDE (GitHub Codespaces, Gitpod):

  • Минусы: зависимость от интернета, latency

Почему остаюсь на macOS

  1. Сбалансированность: мощь Unix + удобство графических приложений
  2. Надежность: работает стабильно без постоянной настройки
  3. Интеграция: все инструменты (IDE, Docker, Terminal) работают идеально
  4. Производительность: M3 процессор мощнее чем большинство Linux ноутбуков
  5. Затраты: экономия времени на настройку перекрывает цену железа

Мой совет для junior разработчиков

Выбирайте ОС, где production тоже работает:

  • Если production на Linux → выбирайте Linux
  • Если не важно → выбирайте удобную (macOS или Linux)
  • Не выбирайте Windows для backend разработки (разве что .NET)

Docker решает проблему: На какой бы ОС вы ни работали, Docker позволяет запускать точно такую же среду как production. Используйте Docker Compose локально.

С какой операционной системой работаешь | PrepBro