Skip to content

Latest commit

 

History

History
217 lines (164 loc) · 7.52 KB

File metadata and controls

217 lines (164 loc) · 7.52 KB

🤝 Руководство по участию в разработке

Спасибо за интерес к проекту Advanced Calculator! Мы рады любому вкладу в развитие калькулятора.

🚀 Как внести вклад

🐛 Сообщить об ошибке

  1. Проверьте, нет ли уже похожей проблемы
  2. Создайте новый issue с подробным описанием
  3. Укажите шаги для воспроизведения
  4. Приложите скриншоты, если применимо

💡 Предложить улучшение

  1. Откройте issue с меткой "enhancement"
  2. Опишите предлагаемую функциональность
  3. Объясните, зачем это нужно
  4. Предложите возможную реализацию

🔧 Внести изменения в код

Требования

  • Node.js 16+
  • npm 8+
  • Git

Настройка окружения

# Форк проекта на GitHub
git clone https://github.com/your-username/advanced-calculator.git
cd advanced-calculator

# Установка зависимостей
npm install

# Запуск веб-версии для разработки
npm run web

# Или запуск Electron версии
npm start

Процесс разработки

  1. Создайте ветку для новой функции:

    git checkout -b feature/amazing-feature
  2. Внесите изменения следуя нашим стандартам кода

  3. Тестируйте изменения:

    # Веб-версия
    npm run web
    
    # Desktop версия
    npm start
    
    # Проверьте все языки и режимы калькулятора
  4. Зафиксируйте изменения:

    git add .
    git commit -m "feat: add amazing feature"
  5. Отправьте в свой форк:

    git push origin feature/amazing-feature
  6. Создайте Pull Request на GitHub

📋 Стандарты кода

JavaScript

  • Используйте ES6+ синтаксис
  • Комментируйте сложную логику
  • Следуйте существующему стилю кода
  • Избегайте глобальных переменных

CSS

  • Используйте БЭМ методологию где возможно
  • Поддерживайте responsive дизайн
  • Тестируйте на мобильных устройствах
  • Используйте CSS переменные для цветов и размеров

HTML

  • Используйте семантические теги
  • Добавляйте data-translate атрибуты для новых текстов
  • Поддерживайте accessibility (a11y)

🌍 Добавление переводов

Для добавления нового языка:

  1. Добавьте переводы в calculator.js:

    const translations = {
        // ... существующие языки
        'new-lang': {
            'app-title': 'Advanced Calculator',
            // ... все ключи перевода
        }
    };
  2. Добавьте опцию в селектор языка в index.html

  3. Протестируйте все функции на новом языке

Требования к переводам

  • Все ключи должны быть переведены
  • Сохраняйте контекст и смысл
  • Учитывайте длину текста для UI
  • Тестируйте на мобильных устройствах

🧮 Добавление математических функций

При добавлении новых функций в AdvancedMathEngine:

  1. Добавьте функцию в класс:

    newFunction(x) {
        // Валидация входных данных
        if (typeof x !== 'number' || isNaN(x)) {
            throw new Error('Invalid input');
        }
        
        // Реализация функции
        return result;
    }
  2. Зарегистрируйте в functions объекте

  3. Добавьте переводы для всех языков

  4. Добавьте в автодополнение

  5. Обновите документацию

🎨 Работа с темами

  • Поддерживайте все существующие темы
  • Используйте CSS переменные для цветов
  • Тестируйте контрастность
  • Обеспечьте читаемость на всех темах

📱 Мобильная совместимость

  • Тестируйте на экранах от 320px
  • Используйте clamp() для адаптивных размеров
  • Обеспечьте удобные touch targets (минимум 44px)
  • Проверяйте горизонтальную ориентацию

🔍 Типы commit'ов

Используйте Conventional Commits:

  • feat: - новая функциональность
  • fix: - исправление ошибки
  • docs: - изменения в документации
  • style: - форматирование кода
  • refactor: - рефакторинг без изменения функциональности
  • test: - добавление тестов
  • chore: - обновление зависимостей, настроек сборки

Примеры:

feat: add complex number support
fix: resolve division by zero error
docs: update installation instructions
style: format calculator.js with prettier

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

Перед отправкой PR обязательно протестируйте:

Базовая функциональность

  • Все арифметические операции
  • Научные функции
  • Работа с дробями
  • История вычислений
  • Переключение языков
  • Смена тем

Редактор выражений (BETA)

  • Ввод сложных выражений
  • Автодополнение
  • Предварительный просмотр
  • Вставка результата в основной калькулятор

Совместимость

  • Chrome/Chromium
  • Firefox
  • Safari (если доступен)
  • Edge
  • Мобильные браузеры

Responsive дизайн

  • 320px (мини-телефоны)
  • 375px (iPhone SE)
  • 768px (планшеты)
  • 1024px+ (десктоп)

📞 Связь

  • Issues: для багов и предложений
  • Discussions: для общих вопросов
  • Pull Requests: для изменений кода

📜 Лицензия

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


Спасибо за ваш вклад в развитие Advanced Calculator! 🎉