Позвольте мне начать с того, что я не разработчик, а системный администратор. Я хорошо разбираюсь в LAMP и Redmine и имею базовые навыки в HTML, CSS, JS и PHP, вместе с другими техническими знаниями. У меня есть множество идей для проектов, и недавно я реализовал одну из них - написал собственный скрипт для цитатника, схожий с башоргом. Тем не менее, мой следующий проект кажется гораздо более сложным. Я планирую работать с MariaDB (форк MySQL), и в базе данных проекта будет как минимум семь взаимосвязанных сущностей. Также мне нужно реализовать операции CRUD и права доступа, а в будущем задумано преобразование сайта в Android-приложение. Я рассматриваю возможность авторизации пользователей через VK, поскольку планирую ориентироваться на аудиторию в России. Однако я сталкиваюсь с проблемой недостатка опыта в разработке проектов такого уровня. Кроме того, я буду единственным разработчиком, так как не могу позволить себе привлечь профессионалов, а искать энтузиастов оказавшихся сложнее, чем ожидал. Основная моя мысль заключается в том, чтобы начать с реализации BACKEND: если я создам связанный набор данных, то задача отображения на фронтэнде станет проще. Понятно, что организационные методологии, такие как SCRUM и Agile, остаются для меня непростыми. Я понимаю, что проект нужно разбить на этапы, но есть нюансы, которые пока остаются неясными, например, идея создания временных или постоянных групповых чатов. С одной стороны, существует VK API, но, с другой стороны, возможно, имеет смысл реализовать такую функциональность самостоятельно, так как сообщения в этих чатах будут формализованными. Кроме того, я должен учитывать законные аспекты, например, если я сам начну взимать деньги с клиентов за свои услуги.
Овладение навыками создания проектов — это важный этап для любого разработчика, особенно если у вас уже есть основы и вы хотите двигаться дальше. Вот несколько советов и шагов, которые могут помочь вам в этом: ### 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). Первый вариант хорош для поисковых систем (если проект основан на контенте и особенностях продвижения), подходит для простых дизайнов (без сложных анимаций и художественной стилистики), даёт слегка повышенную нагрузку на сервер бакэнда. Второй вариант всю работу, связанную с дизайном и отображением переносит на клиента, сервера это собственно бизнес логика и раздача статичных файлов, очень эффективная нагрузка на бакэнд, но поисковые системы плохо такие анализируют (или совсем никак, ведь для этого нужен робот-браузер), и ограничивает выбор языка программирования для фронтэнда тем что даёт браузер. Обычно используют смесь подходов, но мне кажется по глупости.