Есть одна идея относительно нового функционала социальных сетей; ну и хочу попрактиковаться в web программинге. Хочу сделать экспериментальную социальную сеть для обкатки этой новой идеи. Для этого нужно выбрать какой-то фреймворк и технологию. Опыт в вебе есть, но очень небольшой и скорее всего уже давно устаревший.
Исхожу из следующего
1. думаю что это должна быть не "CMS", т.к. в классическом смысле CMS - это что-то уже готовое и весьма тяжеловесное для "непрограммистов", а мне нужно нестандартное решение и для программистов
2. писать на голом языке программирования тоже не дело :)
3. поэтому нужно выбрать именно фреймворк или CMF (не уверен что есть разница между этими терминами)
4. по выбору языка... я имею небольшой опыт на PHP, так что для получения результата скорее всего ориентироваться буду именно на него. С другой стороны, если вы имеет какие-то очень серьезные аргументы против - с интересом выслушаю. Освоить новый язык думаю не проблема, хотя и займет больше времени.
5. технология должна быть достаточно быстрой, современной и распространенной на хостингах (в общем никакой экзотики скорее всего не надо, я не ищу сложных путей)
6. все должно быть бесплатно; это мой личный проект; возможно когда-нибудь он будет приносить мне небольшой доход, но расходы должны быть минимальны - только хостинг и домен, покупать какие-либо готовые решения или платить за работу на данном этапе я не хочу, мне самому интересно
7. фреймворк должен быть современным, активно развивающимся, широко распространенным (.е. примеры, комьюнити, книги, статьи), легким и не перегруженным, и применимым для самых разных задач. Чтобы полученные знания были полезны и в других областях.
8. Несмотря на то что многое я планирую написать сам, мне понадобятся какие-то модули.. в частности обязательны средства интеграции с существующими социальными сетями (авторизация через них).
9. Я не знаю чего я еще забыл)) Но если что-то забыл - указывайте. На что бы ориентировались вы, если бы хотели решить такую задачу? Заранее спасибо за ответы!
riot26: Вначале только на локалхосте и будет... как минимум несколько месяцев, и это если каждый день продуктивно заниматься. Я на будущее спрашиваю...
Хостинг ElasticWeb, там есть готовые конфигурации по laravel, ничего настраивать не нужно. Оплата хостинга за потребляемые ресурсы, уверен, что это будет выгодно в первое время существования проекта.
Ну смотрите самые популярные Laravel, Yii, Symfony
Можете выбирать любой, поищите информацию чем отличаются они друг от друга и выберите нужный, подойдет любой
NodeJS с Total.JS/KoaJS.
Еще бы от реляционной базы отказался бы в пользу NoSQL типа MongoDB.
Если хочется PHP - то рекомендую все таки симфони или ларавель.
С Yii2 у нас тут были не очень приятные сложности недавно связанные с косяками зависимости пакетов.
Про NoSQL это интересная идея (хотя я с этой группой технологий вообще не имел дела). А почему именно MongoDB? После чтения нескольких статей сложилось мнение, что надо что-то граф-ориентированное...
NeoCode: она в принцип, документо-ориентированная. Быстрая и плюс, мне кажется, что соц. сеть хорошо укладывается на документо-ориентированную базу. Опять же имхо. Удобно для хранения нетабличных данных у документов из одной коллекции могут быть разные наборы полей.
Я планирую ориентированность на активное использование разнообразного поиска и фильтрации. Вот здесь https://habrahabr.ru/post/231213 аргументы против древовидной MongoDB, для меня с моими поверхностными знаниями в этой области (и большого опыта в С++ , в том числе всяких самописных типа-СУБД ) кажутся достаточно убедительными... Хотя конечно выбор СУБД достоин как минимум отдельного вопроса.
Alexander Sharihin: я еще про графовые СУБД (Neo4j и что-нибудь еще) почитаю... С другой стороны, и в Монго, как я понимаю, можно каждую таблицу разместить в своем документе и использовать id-ссылки для связей между записями по аналогии с РСУБД. Но нужно ли так делать? Пока кажется что часть структуры (допустим личный блог пользователя) ложится на иерархическую модель, часть (связи с другими пользователями, поиск по интересам) на реляционную.. в общем надо думать)