2010-08-04 4 views
3

У меня есть идея сайта социальной сети, и я буду работать над этим в одиночку в свободное время.Как начать строительство новой социальной сети?

Мои цели:

  • ознакомятся с веб-разработки
  • улучшить свои навыки (языки программирования, основы, масштабируемые архитектуры, ...) для моего личного удовольствия и улучшить свое резюме
  • преобразует проект в стартап, если я понимаю, что он может быть успешным или использовать знания, которые я узнал для других идей, если они появятся в будущем.

Так что я хотел бы спросить вас, если вы можете дать мне советы относительно следующие пункты (или любые другие точки):

  • учебники
  • языки программирования и фреймворки (я не против обучения новых)
  • архитектура
  • аппаратное обеспечение (мне нужно много машин для разработки, тестирования, CI, ... или мой 2GB MacBook Pro достаточно)
  • , CI, тестирование
  • с какой частью я должен начать? клиентская сторона, база данных, ...?
+1

Вот ваш первый урок в веб-разработке. То, что вы набрали, и то, что вы видите сейчас, не то же самое, не так ли? Измените свой вопрос. Посмотрите на правую сторону страницы для синтаксиса уценки. Измените свой вопрос, чтобы он выглядел хорошо. –

+2

Вот ваш второй урок в веб-разработке. «Я не против изучать новые)». Какие? Вы имеете в виду «новое», как в «новых языках, которые никогда раньше не использовались»? Или вы имеете в виду «новое», как в «новом для меня»? Если вы имеете в виду «новое для меня», как мы должны знать, что нового вам? Угадай? Что такое «ДИ»? –

+0

* Непрерывная интеграция * была бы моей догадкой. – bakkal

ответ

6

Чтобы создать новую социальную сеть в масштабе, о котором вы, вероятно, думаете, является огромным, огромным начинанием. В целом это не было бы «знакомство с веб-разработкой», это было бы «мастер-класс в совместном опыте веб-разработки», чтобы реализовать его правильно.

Кажется, что, чтобы продвигаться вперед и думать о языках, не хватает нескольких очень важных шагов, необходимых для разработки программного обеспечения, особенно учитывая количество допустимых вариантов для языков и платформ. Было бы лучше начать с размышления о каком-то дизайне системы: пользователи, прецеденты, возможно, целый ряд сущностей/ERM-дизайна; после некоторого момента вы можете рассмотреть бэкэнд-хранилище. Размышляя о загрузке пользователя, опыте пользователя, расширяемости и наборе функций, вы можете начать взвешивать языки и платформы.

Говоря всякий раз, когда у меня есть идея, я думаю, что это круто, я обычно просто делаю быстрые циклы прототипирования; но для чего-то такого огромного, как сайт социальной сети, рефактору становится все труднее, особенно если это только вы в команде.

Очевидно, я все это откладываю, чтобы попытаться предположить, что нужно много думать. Моим фактическим советом было бы - захватить груз бумаги, набросать как можно больше, начиная с высокого уровня (скажем, с разными пользователями, с которыми пользователи будут взаимодействовать) - решать проблемы (например, наброски состояний объектов) на бумаге и начните с малого/начинайте с нуля. Лучше иметь простую систему обмена сообщениями с текстом и фотографиями (честно говоря, чтобы этот отполированный законченный и хорошо работающий, это сам подвиг), что работает, чем случайная сломанная расширенная система пропусков с сообщениями, фотогалереи, стены, группы и т. д.

Существует много вкусных технологий, например, RoR, но с таким глубоким проектом, как все еще будет много исследований и моментов, связанных с головой. Таким образом, наличие некоторого уровня общего объема проекта поможет сохранить контроль и управление, равно как и любое планирование до кодирования.

Просто немного пищи для размышлений.!

2

Языки: вы можете проверить Groovy для веб-разработчиков.

Однако, если вы не хотите совершенствовать свое резюме; Java + JSF тоже выглядит хорошо.

управления Источник: GIT

Вы должны начать, делая тестовую базу данных на вашем компьютере для разработки и сделать несколько простых экранов, чтобы получить доступ к данным с помощью Groovy.

Я лично любил Groovy, но профессионально Я использую Java + JSF-фреймворки на J2EE-серверах большого Weblogic.

Да, не очень ... Groovy.

0

Я обязательно поеду с Ruby on Rails. Язык Ruby отличен, и Rails-инфраструктура идеально подходит для такого рода вещей. Существует кривая обучения, но она того стоит! Вы находитесь на Mac, так что это хорошо, потому что у него уже есть Ruby и Rails, и вы можете использовать TextMate.

Хорошими местами для начала будет сайт Ruby on Rails. Что касается изучения Ruby, я бы определенно рекомендовал why's (poignant) guide to Ruby.

В качестве побочного примечания я бы не рекомендовал идти по пути «социальной сети». Существует уже сумасшедшее количество социальных сетей, и это, вероятно, большая работа, чем вы понимаете. Перед началом работы прочитайте сообщение this.

Я также думаю, что это была бы большая ошибка и, возможно, упущенная возможность, если вы планируете «преобразовать проект в стартап», только если вы «поймете, что это может быть успешным». Вы должны зайти в проект с прочным бизнес-планом (или, по крайней мере, с маркетингом) или у вас будет сбой.

0

Чтобы ответить на вопрос: «Как начать строительство новой социальной сети?»

Я бы рекомендовал выйти на улицу и поговорить с некоторыми настоящими людьми.

После прочтения остальной части вашего вопроса, в частности, части, посвященной превращению вашей идеи в стартап, я бы сказал еще раз: выйдите на улицу и поговорите с некоторыми настоящими людьми. Вы не собираетесь заходить в facebook, сидя дома, беседуя с пользователями stackoverflow, но если выйдете туда и обсудите свои идеи с некоторыми другими разработчиками в реальном мире, вы когда-нибудь сможете вырезать нишу в социальных сетях пейзаж.

1

учебники

Выберите любой учебник веб-разработки в случайном порядке. Шутки в сторону. Начните с Oracle, IBM или HP. Они все хороши. Прочитайте что-то. Неважно, что.

языки программирования и рамки (я не против изучения новых)

бросьте монетку. Шутки в сторону. Если вы ничего не знаете, выберите любой язык. Если вы уже знаете язык, используйте его. Найдите структуру на языке, который вы уже знаете.

Все они хорошие. Это точно бросок монеты. Причина в том, что существует так много вариантов из-за этого факта: Они все хорошие.

архитектура

Что?

аппаратное обеспечение (мне нужно много машин для разработки, тестирования, CI, ... или мой 2GB MacBook Pro достаточно)

Это поддаются интерпретации. Да, нужен компьютер. Любой компьютер. Что еще нужно знать? У вас нет языка, инструментов, рамок или концепции. Поэтому аппаратное обеспечение кажется несколько преждевременным.

управления источником, CI, тестирование

Да.

с какой частью я должен начать? клиентская сторона, база данных, ...?

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

1

Язык программирования: php

Попробуйте создать свой собственный фреймворк. Имейте в виду, что он должен быть быстрым и минимальным для запуска социальной сети.

Возможно, вы захотите изучить что-то под названием PDO для php. Также; вам нужна система захвата базы данных (f.ex. Memcached).

Также стандарты - это хорошая вещь, попытайтесь их реализовать. Вот некоторые примеры:

  • Activitystrea.ms
  • Portablecontacts
  • OAuth
  • OpenSocial
  • FOAF
  • OpenID
  • XMPP
  • визитную карточку
  • XRD
  • RDF
  • Rss/Atom

Есть некоторые проекты, идущие на создание новой социальной сети, среди тех, у вас есть:

  • Onesocialweb
  • Noserub
  • диаспору

Вы можете проверить их.Особенно Диаспоре может быть интересно. Если вы создаете новую социальную сеть, вы можете добавить поддержку пользователям использовать свой собственный сервер Diaspora для размещения их контактной информации.

О учебниках: материалы Google, о которых я упомянул. Есть достаточно материала о большей части этого. Получайте удовольствие от создания и обучения :)