Я не специалист, не программист и вообще с этой областью не контактирую. Но мне нужно создать некоммерческий сайт, довольно обширный и разносторонний, для конкретной целевой аудитории. Заказать его я не в состоянии, ибо такие проекты стоят очень дорого и в ближайшее время мне это не по карману. Тем более, есть желание с этим разобраться и написать самостоятельно.
Проблема в том, что за две недели мною было перечитано столько противоречивой информации, которая меня загнала в тупик, что без рекомендации мне точно не обойтись.
Я не буду работать в этой сфере, и этот проект - единственное, что я хочу получить. Поэтому изучать все языки программирования и на практике проверять, что лучше - для меня не вариант. Поэтому мне важно определить оптимальный вариант для конкретно моего проекта, чтобы полностью погрузиться в его изучение.
Сама суть проекта - это многопользовательский тематический портал на нескольких языках (шести). Контент для каждого языка свой и наполняется пользователями сайта. Связь между этими сегментами осуществляется только через поиск. А так пользователь пользуется только "своим" (для языка) контентом.
В каждом таком сегменте (например, русскоязычном), есть разделы, такие как книга (где пользователь добавляет свои художественные работы), галерея (где пользователь добавляет собственные художественные работы), форум, блог (где каждый пользователь может вести свой мини-блог, что-то вроде лив-интернета), мастерская, где некоторые пользователи, у которых есть на это права, могут добавлять советы (лекции).
Помимо этого должны быть системы: закладок, оценивания (понравилось, лайки, плюсики - не важно, как это называется), личных сообщений, статистики в профиле пользователя (количество сообщений, количество закладок, работы, репутация и тому подобное), комментариев, вознаграждений (за комментарии, посты, работы пользователь получает очки, которые в последствии может поменять на подарки для других участников портала), система прав пользователей (модераторы разных зон, администраторы, у которых будет разный функционал на сайте), статистика на главной странице (последняя добавленная работа, самый активный пользователь, самая популярная статья, самый рекомендованный автор, случайная работа, которая обновляется вместе со страницей и т.п.)
Ну, это в общем виде, потому что прописанная система занимает много листов.
Первое, что меня интересует, это какой лучше всего использовать язык программирования.
Кто-то говорит использовать к HTML и CSS PHP+MySQL+JS, кто-то их активно осуждает, говорят использовать JAVA, Perl, Python, ну и другие. У каждого есть и плюсы, и минусы, и, при их сравнении, у меня в голове уже всё перемешалось. Что лучше всего подойдёт конкретно для моей задачи? Быстродействие сайта очень важно, потому что сайт рассчитан не на 100 человек, и мне сложно сказать про предполагаемую нагрузку, но из-за увеличения аудитории за счёт иностранных пользователей нагрузка должна быть приличная.
Второй вопрос касается СУБД, материала будет очень много, к тому же на сайте должен быть сложный поиск, учитывающий много категорий (например, чтобы материал входил в категорию "мини-работы", имел определённую тематику и не имел какую-то другую тематику). СУБД довольно много и у веб-программистов тоже нет однозначного ответа, поэтому я в растерянности.
Третий вопрос. Стоит ли разделить материал на несколько баз данных или использовать одну общую для пользователей всех стран, просто добавив поле языка? Вообще сейчас я на этапе разработки структуры БД и из-за большого количества информации дело двигается туго.
Четвёртый вопрос. Стоит ли разместить интерфейс для каждого языка на поддомены? ru.site.com, eng.site.com Тут тоже есть разные точки зрения, но мне кажется, с субдоменами будет проще.
Пятый вопрос. Что использовать, "чистый" язык, язык+библиотеки, фреймворк или cms. По моим поискам вышло, что нет cms, которая бы полностью удовлетворяла моим потребностям, на счёт фреймворков нет полной уверенности. Вообще, мне показалось оптимальным использование языка и библиотек для максимальной реализации задумки.
Шестой момент. Я планирую использование зарубежного хостинг-провайдера, сперва на общем сервере, а затем, если того потребует сайт, перевести его на выделенный сервер. Некоторые языки и СУБД не поддерживаются на большинстве хостингов, и мне важно, чтобы при их (языка и СУБД) выборе это не стало проблемой.
Седьмой вопрос. Для разработки и отладки сайта какой лучше использовать локальный сервер?
Простите за такое обилие текста, но самостоятельно определиться никак не получается.
Вы не зная ничего хотите с нуля сделать огромный сайт на большую посещаемость.
Берите готовую CMS, начинайте на ней что-то делать.
Получится - будут пользователи, появится и бюджет чтобы занимались специалисты.
Ну и задайте себе важный вопрос - откуда будут пользователи, как они узнают о сайте, зачем им этот сайт и почему они на нём вообще будут находиться?
Контингент - не проблема. Тематика позволяет довольно легко раскрутить сайт. Понравится или нет будет понятно позже, но аналогов такого сайта в тематике нет, поэтому некоторая фора есть.
А какая СMS подойдёт? По-мне так проще написать с нуля, чем пытаться переделать не подходящую CMS под свои нужды.
Да и я же не собираюсь бросаться в омут с головой, сперва как следует изучу всё, что потребуется, спроектирую. Другое дело, что у меня нет времени изучать все языки и выбирать лучший под задачу. Мне нужно знать, что лучше подойдёт для моего проекта, чтобы начать это изучать.
Chesse: нет, это главная проблема. Вы не знаете в этой тематике ничего. Просто так люди к вам не пойдут, будь вы хоть вообще одни в нише.
Для такого проекта правильнее писать всё с нуля, но для вас - берите CMS, подойдёт любая более-менее популярная общетематическая. Чтобы написать самому что-нибудь прилично - нужно учиться пару-тройку лет, не думаю что вам это подходит.
Языки - PHP + MySql для начала
JS, HTML и CSS это фронтенд
Максим: среди этой темы есть потребность (у людей) в таком сайте, который соберёт в одном месте всё то, что им приходится разбрасывать на разных сайтах. Идея взята не с бухты-барахты, и моей уверенности в успехе у определённой аудитории достаточно, чтобы потратить на разработку несколько лет.
Возможно ли всё это реализовать только в связке HTML+CSS+JS+PHP+MySQL?
Вам все правильно говорили, проект можно сделать на PHP и на Java, и на Python.
Обычно рекомендуют писать проект на том языке, который знаешь.
В вашем случае ситуация патовая, ни денег на проект, ни знаний нет.
Ребята учатся в институтах и годами изучают стеки технологий, чтобы в команде
поднимать хайлоад проекты.
Как выше написали, действительно, вам стоит почитать про PHP с HTML
Настроить локальный сервер, а лучше коробочный LAMP
Выбрать CMS и изучив ее структуру, вы сможете вносить необходимые вам правки.
Это мой проект, который не "горит", я не собираюсь на нём зарабатывать, и с обучаемостью у меня проблем нет, разберусь. Другое дело, что мне нужно знать, с чем разбираться. Если на PHP то, что мне нужно, можно получить, то я займусь изучением PHP и всё, что с ним связано.
Конечно я не буду специалистом, без образования и со знанием одного какого-то языка, но это и не моя цель. Моя цель - реализованная задумка.
Выбрать CMS для простого проекта не сложно, но как только речь заходит хоть о чём-то мало-мальски большом, все отзывы становятся ужасно противоречивыми. Да и CMS довольно ограничены.
Ну так и отлично! Рассматривайте CMS, как готовую архитектуру проекта, которая покажет вам связку серверного приложения, базы данных и веб приложения. Простую и популярную связку вам написали PHP + HTML, CSS, JS + MySQL Освойте этот минимум, а дальше идите по пунктам: как домены прописать чтобы было en.site.ru, что такое ЧПУ, в чем отличие shared хостинга и vps/vds, потом про балансировку нагрузки на несколько серверов, и конечно поиск по базе
Чтобы не говорить много всего, скажу только - забейте на идею создать самому.
Вы математик, представьте что на математический форум пришел я и спрашиваю Вас - я не математик и умею только считать на калькуляторе таблицу умножения,
но у меня есть идея, которых ещё нет, а именно - я понял суть мироздания и хочу это доказать, так что посоветуйте что мне нужно учить, время у меня правда нет, но за пару недель я думаю получится.. Что мне нужно косинус и деление столбиком?
Ах да, я сразу же хочу открыть супер университет и чтобы ко мне пришли работать самые гениальные-гении и они блин придут! Ведь такого университета еще нет!
Ерунда, правда?
Так что есть три варианта -
1) Заказать.
2) Потратить несколько лет ( не меньше ) на изучение языков и парадигм программирования.
3) Найти на форуме более-менее опытного новичка, который уже многое умеет,
но начать фриланс не может, так как нет работ для портфолио. А тут как раз Вы с предложением поддерживать в рабочем состоянии созданный им сайт.