Какими способами можно овладеть навыками создания проектов?

Позвольте мне начать с того, что я не разработчик, а системный администратор. Я хорошо разбираюсь в LAMP и Redmine и имею базовые навыки в HTML, CSS, JS и PHP, вместе с другими техническими знаниями. У меня есть множество идей для проектов, и недавно я реализовал одну из них - написал собственный скрипт для цитатника, схожий с башоргом. 

Тем не менее, мой следующий проект кажется гораздо более сложным. Я планирую работать с MariaDB (форк MySQL), и в базе данных проекта будет как минимум семь взаимосвязанных сущностей. Также мне нужно реализовать операции CRUD и права доступа, а в будущем задумано преобразование сайта в Android-приложение. Я рассматриваю возможность авторизации пользователей через VK, поскольку планирую ориентироваться на аудиторию в России.

Однако я сталкиваюсь с проблемой недостатка опыта в разработке проектов такого уровня. Кроме того, я буду единственным разработчиком, так как не могу позволить себе привлечь профессионалов, а искать энтузиастов оказавшихся сложнее, чем ожидал. Основная моя мысль заключается в том, чтобы начать с реализации BACKEND: если я создам связанный набор данных, то задача отображения на фронтэнде станет проще.

Понятно, что организационные методологии, такие как SCRUM и Agile, остаются для меня непростыми. Я понимаю, что проект нужно разбить на этапы, но есть нюансы, которые пока остаются неясными, например, идея создания временных или постоянных групповых чатов. С одной стороны, существует VK API, но, с другой стороны, возможно, имеет смысл реализовать такую функциональность самостоятельно, так как сообщения в этих чатах будут формализованными.

Кроме того, я должен учитывать законные аспекты, например, если я сам начну взимать деньги с клиентов за свои услуги.
  • 19 декабря 2024 г. 2:03
Ответы на вопрос 2
Овладение навыками создания проектов — это важный этап для любого разработчика, особенно если у вас уже есть основы и вы хотите двигаться дальше. Вот несколько советов и шагов, которые могут помочь вам в этом:

### 1. **Определение целей и требований проекта**
Перед началом разработки определите четкие цели вашего проекта. Опишите, какие функции он должен выполнять и какие проблемы решать. Создайте документ с требованиями, где будете фиксировать всё, что необходимо для реализации.

### 2. **Планирование и разбивка на этапы**
Разбейте работу на небольшие, управляемые этапы. Это поможет избежать перегрузки и даст вам возможность отслеживать прогресс. Старайтесь придерживаться принципов Agile:
- Определите минимально работающую версию (MVP) вашего проекта.
- Сосредоточьтесь на основном функционале и добавляйте остальное позже.

### 3. **Изучение технологий**
Учитывая ваши планы, возможно, вам стоит углубить знания в следующих областях:
- **Фреймворки для PHP** (например, Laravel или Symfony), которые помогут ускорить разработку и упорядочить код.
- **Базы данных**: понимание нормализации данных, индексации и транзакций в MariaDB.
- **API**: базовые знания о создании и использовании RESTful API, что может вам понадобиться для интеграции с VK.

### 4. **Прототипирование**
Создайте прототип вашего приложения, используя инструменты, такие как Figma или Mockplus, для визуализации интерфейса. Это поможет вам лучше понять, каким должен быть конечный продукт.

### 5. **Разработка**
Начните с реализации бэкенда, как вы и планируете. Продумайте архитектуру базы данных и ссылочные отношения между сущностями. Внедряйте основные функции (CRUD, авторизация) поэтапно.

### 6. **Тестирование**
Тестируйте свою программу на каждом этапе разработки. Это поможет вам выявить и исправить ошибки до того, как они станут более серьезными проблемами.

### 7. **Работа с сообществом**
Так как вы упомянули, что не можете позволить себе привлечь профессионалов, попробуйте обратиться к сообществу разработчиков. Есть много форумов, групп в соцсетях и онлайн-ресурсов (например, Stack Overflow, GitHub), где можно получить советы и отзывы.

### 8. **Правовые аспекты**
Прежде чем начать взимать деньги за свои услуги, изучите законы, касающиеся вашего бизнеса. Возможно, вам потребуется зарегистрировать ИП или ТОО. Также обязательно учитывайте требования к защите данных.

### 9. **Постоянное обучение**
Следите за новыми трендами в разработке. Посещайте вебинары, читайте книги, проходите онлайн-курсы. Платформы как Coursera, Udemy, и Codecademy могут быть весьма полезны.

### 10. **Обратная связь и улучшение**
После реализации первой версии проекта получите обратную связь от пользователей и используйте её для улучшения продукта.

Большинство навыков приходит с практикой. Запаситесь терпением и не бойтесь ошибаться — ошибки являются немаловажной частью процесса обучения. Удачи в ваших начинаниях!
Умные слова не нужны, как и готовые фреймворки и конструкторы сайтов. 

Нужно сесть и сделать, и вопросы задавать не общие а конкретные.

Да по законодательству, вы не имеете права хранить деньги пользователей и вообще заниматься их приемом, только платежные системы и банки это могут... Но если копнуть глубже проблема не в хранении а в передачи денег между пользователями, государство желает это контролировать.

По технической части, нужно решить глобально, какой тип генерации html будет использован - на стороне бакэнда (скрипты в браузере использоваться не будут), или на стороне клиентского браузера на javascript (его ещё называют single page application). Первый вариант хорош для поисковых систем (если проект основан на контенте и особенностях продвижения), подходит для простых дизайнов (без сложных анимаций и художественной стилистики), даёт слегка повышенную нагрузку на сервер бакэнда. Второй вариант всю работу, связанную с дизайном и отображением переносит на клиента, сервера это собственно бизнес логика и раздача статичных файлов, очень эффективная нагрузка на бакэнд, но поисковые системы плохо такие анализируют (или совсем никак, ведь для этого нужен робот-браузер), и ограничивает выбор языка программирования для фронтэнда тем что даёт браузер. Обычно используют смесь подходов, но мне кажется по глупости.
Похожие вопросы