Достаточно ли php и MySQL для создания социальной сети?

Urban

Новичок
Всем привет.

Я новичок и зарегистрировался специально для того, чтобы задать свой вопрос.
У меня есть неплохая идея социальной сетки, в которую я ожидаю привлечь несколько десятков тысяч пользователей. Страницы с личными данными, фотками, внутренний мессенджер и разнообразный опционал взаимодействия пользователей друг с другом - ничего сверхъестественного. Однажды я уже делал подобный, используя html+php и БД MySQL. Знаний на тот момент не было никаких: на ходу читал самоучитель по php и ваял сайт (никаких готовых шаблонов не использовал, всё руками писал). Но через год его работы, когда пользователей поприбавилось, БД стала с некоторой периодичностью виснуть. Полагаю, что причиной были крайне не оптимизированные к ней обращения и другие глупости, которые я по неопытности там наделал (я вообще не программист, самоучка). По ряду сторонних причин портал пришлось закрыть, и я не стал разбираться с его зависаниями.
Сейчас хочу сделать другой, в этой связи задаю вопросы:

1) Можно ли полагать, что при грамотной организации структуры MySQL и обращений к ней я смогу построить шустрый сайт, где одновременно в онлайне смогут пребывать до 1000 юзеров, а зарегистрированными станут тысяч 100-200? Хорошо ли работает MySQL при таблицах, содержащих 100 тысяч строк, например?

2) Знакомый приятель (инженер АСОИУ) мои пожелания по устройству системы, которые я изложил выше (html+php & MySQL), резко критикует. Говорит, что всё это нужно по-хорошему писать на XSLT, Данные из MySQL посредством каких-то специальных компонентов формировать в XML-файлы, и уже через их обработку в XSL-шаблонах отдавать юзеру готовые страницы.
Нормально ли весь такой сайт построить на php файлах (страницах сайта), внутри которых написать нужные запросы к БД (простыми командами select, insert, update и пр.)? Или такой подход годится лишь для маленьких корпоративных сайтов и домашних страниц?

3) Каким наиболее коротким по времени способом я могу получить достаточные знания для проектирования грамотной системы, которая не будет потом зависать? Варианты вижу такие: (а) купить пару хороших учебников (подскажите, какие); (б) найти толкового программиста, который выступит репетитором, и за несколько встреч даст синтезированный объём необходимых знаний; (в) записаться на курсы проектирования БД и работы с ней (подскажите, где). Вариант "б" мне, признаюсь, наиболее симпатичен, потому что этого же бедолагу можно будет мучать потом в контексте "у меня не получается, помоги" (т. е. будет, к кому обращаться с вопросами).

Понимаю, что, вероятно, какие-то вещи называю неправильно или где-то задаю наивные вопросы. В этом случае прошу отнестись по-отечески, и помочь хорошим советом или разъяснениями :)
Спасибо.
 

Breeze

goshogun
Команда форума
Партнер клуба
1. да и достаточно хорошо.
2. у инженеров АСОИУ все, что не связано с R (c) и TM, вызывает резкое неприятие и критику, но это профессиональное.
3. здесь оптимального варианта нет, по-любому придется миксовать. скорость усвоения знаний зависит от личных качеств, а не источника :)

зато можно придти на форум с конкретным вопросом "делаю так-то и так-то, вот пример, будут ли вот с этим проблемы?" и получить пару стоящих ответов и десяток флуда ^_^
 

AmdY

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

Absinthe

жожо
2) Знакомый приятель (инженер АСОИУ) мои пожелания по устройству системы, которые я изложил выше (html+php & MySQL), резко критикует. Говорит, что всё это нужно по-хорошему писать на XSLT, Данные из MySQL посредством каких-то специальных компонентов формировать в XML-файлы, и уже через их обработку в XSL-шаблонах отдавать юзеру готовые страницы.
Нормально ли весь такой сайт построить на php файлах (страницах сайта), внутри которых написать нужные запросы к БД (простыми командами select, insert, update и пр.)? Или такой подход годится лишь для маленьких корпоративных сайтов и домашних страниц?
У него энтерпрайзчанка. Причем сильно устаревшая.
 

Urban

Новичок
в сети есть готовые бесплатные движки соцсетей с открытым исходным кодом, посмотри их. самому писать на данном этапе для вас задача неподъёмная, нужны ещё годы опыта и куча знаний, перечитать кучу книг, кучу статей, убить пару проектов.
а знакомому своему просто набей морду, чтобы не лез с советами по теме в которой не разбирается.
Amdy, а насколько широкими будут мои возможности по формированию собственной структуры и дизайна страниц? Я опасаюсь этого пути (хотя, разумеется, рассматривал) по трём причинам:
1) Мне кажется, что такая готовая латформа (движок) будет ограничена опционалом и рядом заложенных в ней визуальных блоков. Полагаю, что не смогу создать там "всё, что захочу" - превьюшки пользователей будут заданного движком размера, сама структура анкеты пользователя будет так же задана и неизменна (вроде фотка слева, справа от неё ник и т. д.). Понимаю, что многое в этих движках персонально настраивается, но думаю, что далеко не всё.
В итоге получится шаблонный проект типа Mamba или LovePlanet - я видел очень много "одинаковых" социальных сеток.
И, тем более, меня не устраивают ограничения в опционале. Я уповаю на то, что мой проект выделится относительно аналоговых, если предложу юзерам совершенно новые фичи по взаимодействию друг с другом, использованию сайта и т. д. В этом и состоит оригинальность моего проекта, и мне необходимо реализовать его именно с этими не шаблонными и не типичными "оригинальностями".
Меня действительно беспокоит, что готовый движок круто свяжет мне крылья. Буду рад, если разубедите и подскажите пару-тройку полезных линков, где об этом можно подробнее почитать.
2) Всё описанное выше будет актуальным и в период дальнейшего сопровождения портала после его запуска. То же самое: я буду придумывать новые классные фишки в проекте, но система не даст мне возможность их внедрять (либо даст, но с большим риском того, что я её поврежу: проще работать с тем, что писал сам).
3) Переживаю и за тот фактор, что у готовых движков существуют известные дыры, в которые меня скоро начнут всячески дрючить, пытаясь подвесить проект. Убеждаю себя: если буду писать сам, то догадаться потом, с какой стороны можно сломать мой проект, будет гораздо труднее. Возможно, это наивно, и сам я наваяю такое, что "взломают" проект уже сами пользователи (просто своей нагрузкой).
 
Последнее редактирование:

AmdY

Пью пиво
Команда форума
1. В движках обычно в той или иной мере придерживаются MVC подхода и оформление выносят в шаблоны, так что модифицировать их вы сможете без проблем.
2. Дописывать что-то у вас так же получится, тем более что обычно есть апи, которое позволяет разрабатывать чем на самопале.
3. У вас дыр будет ещё больше нежели у популярного проекта, так что наслаждайтесь бесплатным аудитом безопасности и багов.

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