nakama/CONTRIBUTING.md

159 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Руководство по внесению вклада в NakamaSpace
Спасибо за интерес к проекту! Мы рады любым улучшениям.
## 🤝 Как внести вклад
### 1. Форкните репозиторий
Создайте свою копию проекта на GitHub.
### 2. Создайте ветку
```bash
git checkout -b feature/amazing-feature
```
Названия веток:
- `feature/` - новая функциональность
- `fix/` - исправление багов
- `docs/` - документация
- `style/` - стили и UI
### 3. Внесите изменения
Придерживайтесь существующего стиля кода:
- 2 пробела для отступов
- Понятные имена переменных
- Комментарии на русском языке
- ES6+ синтаксис
### 4. Коммит изменений
```bash
git commit -m "feat: добавлена новая функция"
```
Формат сообщений коммитов:
- `feat:` - новая функциональность
- `fix:` - исправление бага
- `docs:` - изменения в документации
- `style:` - форматирование, стили
- `refactor:` - рефакторинг кода
- `test:` - добавление тестов
- `chore:` - обновление зависимостей и т.д.
### 5. Пуш и Pull Request
```bash
git push origin feature/amazing-feature
```
Создайте Pull Request с описанием изменений.
## 📝 Стандарты кода
### JavaScript/React
```javascript
// ✅ Хорошо
const handleSubmit = async () => {
try {
const result = await api.post('/data')
setData(result)
} catch (error) {
console.error('Ошибка:', error)
}
}
// ❌ Плохо
const handleSubmit = () => {
api.post('/data').then(result => {
setData(result)
}).catch(error => {
console.log(error)
})
}
```
### CSS
```css
/* ✅ Хорошо - используем CSS переменные */
.button {
background: var(--button-dark);
color: var(--text-primary);
}
/* ❌ Плохо - хардкод цветов */
.button {
background: #1C1C1E;
color: #000000;
}
```
### MongoDB схемы
```javascript
// ✅ Хорошо - валидация и значения по умолчанию
const UserSchema = new mongoose.Schema({
username: {
type: String,
required: true,
trim: true,
minlength: 3
},
createdAt: {
type: Date,
default: Date.now
}
})
```
## 🧪 Тестирование
Перед отправкой PR убедитесь что:
- [ ] Приложение запускается без ошибок
- [ ] Все существующие функции работают
- [ ] Новый код не ломает существующий функционал
- [ ] UI выглядит корректно на мобильных устройствах
- [ ] Нет console.error в браузере
## 🎨 Дизайн
При добавлении новых UI элементов:
- Придерживайтесь iOS-стиля дизайна
- Используйте существующую цветовую палитру
- Радиус скругления: 12-16px
- Анимации: 0.2-0.3s ease-out
- Тени: мягкие, rgba(0,0,0,0.08)
## 📚 Документация
При добавлении новых функций:
- Обновите README.md
- Добавьте комментарии в код
- Документируйте API endpoints
- Обновите SETUP.md если нужно
## 🐛 Баг репорты
При сообщении о баге укажите:
- Шаги для воспроизведения
- Ожидаемое поведение
- Фактическое поведение
- Скриншоты/видео (если возможно)
- Версия Node.js и MongoDB
- ОС и браузер
## 💡 Идеи и предложения
Открывайте Issue с тегом "enhancement" для обсуждения новых функций.
## 📞 Вопросы?
Если что-то непонятно - создайте Issue с вопросом.
Спасибо за вклад в NakamaSpace! 🎉