159 lines
4.3 KiB
Markdown
159 lines
4.3 KiB
Markdown
# Руководство по внесению вклада в 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! 🎉
|
||
|