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! 🎉
|
|||
|
|
|