- 🎯 Принципы участия
- 🚀 Быстрый старт
- 🔄 Рабочий процесс
- 📝 Типы вклада
- 🛠️ Инструменты и процессы
- 📋 Критерии качества
- 🚨 Важные замечания
- 🌟 Признание вклада
- 📞 Контакты и поддержка
- 🎯 Заключение
# Форк и клонирование
git clone https://github.com/YOUR_USERNAME/discoursio-webapp.git
cd discoursio-webapp
# Установка зависимостей
bun install
# Создание ветки для фичи
git checkout -b feature/your-amazing-feature
# Запуск в режиме разработки
bun dev// ✅ Хорошо: простое и понятное
const getUserName = (user: User) => user.name || 'Гость';
// ❌ Плохо: излишне сложное
const getUserName = (user: User) => {
return user && user.name && user.name.length > 0
? user.name.trim().replace(/\s+/g, ' ')
: user?.profile?.displayName || 'Неизвестный пользователь';
};// ✅ Хорошо: переиспользуемая логика
const useApiCall = <T>(endpoint: string) => {
const [data, setData] = createSignal<T>();
const [loading, setLoading] = createSignal(false);
// ... shared logic
return { data, loading, refetch };
};
// ❌ Плохо: дублирование кода в каждом компоненте// ✅ Хорошо: одна ответственность
const formatDate = (date: Date) => date.toLocaleDateString('ru');
const validateEmail = (email: string) => /\S+@\S+\.\S+/.test(email);
// ❌ Плохо: много ответственностей в одной функции
const processUser = (user: User) => {
// валидация + форматирование + сохранение + уведомления...
};- Тесты — автоматическая проверка качества
- Линтинг — автоматическое форматирование и проверка стиля
- CI/CD — автоматическое развертывание
- Модульная архитектура — независимые компоненты
- Хорошая документация — понятные README и комментарии
- Типизация — TypeScript для безопасности изменений
- Поиск существующих issues
- Подробное описание проблемы
- Шаги для воспроизведения
- Информация об окружении
- Обсуждение в issues перед реализацией
- Создание feature branch
- Написание тестов
- Документирование изменений
- Будьте добры: критикуйте код, не человека
- Будьте конкретны: предлагайте альтернативы
- Будьте открыты: принимайте критику с благодарностью
- Будьте быстры: не держите PR в ожидании долго
# Запуск всех тестов
bun run e2e:tests
# Только Open Graph тесты
bun run e2e:og
# В режиме отладки
bun run e2e:debugУчастие полностью добровольное, и если ты уже видишь как решить задачу — это твоя задача! Данный репозиторий — это не просто код, это труд тех кто взял на себя какую-то задачу. Каждый commit, каждый PR, каждый комментарий в code review — это кирпичик в построении лучшего будущего, мы создаем не только продукт, но и сообщество, продуктивную, вдохновляющую атмосферу и инструментарий для творчества и профессионального роста.
Добро пожаловать в команду! 🚀