2010-08-04 34 views
3

我有一个社交网站的想法,我将在我的空闲时间单独工作。如何开始构建新的社交网络?

我的目标是:

  • 得到介绍给Web开发
  • 提高我的技能(编程语言,框架,可扩展的架构,...)我个人的乐趣,并提高我的简历
  • 如果我意识到它可以成功,就可以将项目转变为创业公司,或者如果他们未来能够使用我从其他创意中学到的知识。

所以我想问问你,如果你能给我关于以下几点(或任何其他点)建议:

  • 教程
  • 编程语言和框架(我不介意学习新的)
  • 架构
  • 硬件(我需要为开发,测试,CI许多机器,...或者是我的2GB的MacBook Pro足够了)
  • 源控制,CI,测试
  • 我应该从哪部分开始?客户端,数据库,...?
+1

这是您在网页开发中的第一课。你打字的和现在看到的不一样,是吗?编辑你的问题。查看标记语法的页面右侧。编辑你的问题,让它看起来不错。 – 2010-08-04 22:16:41

+2

这是您在Web开发中的第二课。 “我不介意学习新的)”。什么?你的意思是“新”,如“从未使用过的新语言”?或者你的意思是“新”,如“新对我”?如果你的意思是“对我而言是新的”,我们应该如何知道你的新东西?猜测?什么是“CI”? – 2010-08-05 00:30:48

+0

*持续集成*将是我的猜测。 – bakkal 2010-08-05 00:37:33

回答

6

要在规模上创建一个新的社交网络,您可能想到的是一项巨大而庞大的任务。它通常不会是'网站开发'的练习,它可能是一个'协作,经验丰富的网站开发'大师班' - 无论如何要正确实施它。

看起来,要想跳出一步,想到语言错过了软件设计所需的几个非常重要的步骤 - 尤其是考虑到语言和平台的有效选项数量。最好从思考一些系统设计开始:用户,用例,可能是一系列实体/ ERM设计;在此之后的某个点您可能会考虑后端存储。考虑用户负载,用户体验,可扩展性和功能集,您可以开始评估语言和平台。

这就是说,每当我有一个想法,我认为很酷我通常只做快速原型周期;但对于社交网站这样巨大的事物来说,重构将变得越来越困难,尤其是如果只是你在团队中。

很显然,我对此一发不可收拾,试图暗示有很多想法可以完成。我的实际建议是 - 抓取大量纸张,尽可能地从高层次开始(例如,用户将与之交互的不同屏幕) - 在纸上解决问题(例如勾画出物体的状态),以及从小开始/目标低开始。最好有一个简单的文本和照片通讯系统(说实话,要得到抛光完成和运作良好,这本身就是一个壮举),工作比一个随意的破坏越野扩展配置文件系统与消息,照片画廊,'墙“系统,团体等。

这里有很多美味的技术,比如RoR,但是对于一个项目来说,仍然会有很多研究和头脑灵活的时刻。因此,具有一定的整体项目范围将有助于保持事物的正确性和可管理性,就像在编码之前进行任何规划一样。

只是一些思考。

2

语言:您可以查看Groovy for web dev。

但是,如果你不想提高你的简历, Java + JSF看起来也不错。

源控制:GIT

您应该将开发机上做一个测试数据库,并开始做一些简单的屏幕使用Groovy访问数据。

我个人非常喜欢Groovy,但是在专业上我在J2EE大型Weblogic服务器上使用Java + JSF框架。

是的,不是很... Groovy。

0

我一定会用Ruby on Rails。 Ruby语言非常棒,Rails框架非常适合这类东西。有一个学习曲线,但它是值得的!你在Mac上这样很好,因为它已经有了Ruby和Rails,并且你可以使用TextMate。

好的地方开始将是Ruby on Rails网站。至于学习Ruby,我肯定会推荐why's (poignant) guide to Ruby

作为一个方面说明,我不建议走下“社交网络”的道路。已经有一些疯狂的社交网络,这可能是一个比你意识到的更大的工作。在开始之前阅读this

我也认为,如果您计划只有在“意识到它可以成功”时才“将项目转变为创业公司”,这将是一个很大的错误,可能错过了一次机会。你应该进入该项目与一个坚实的业务(或至少是市场营销)的计划,否则失败。

0

回答这个问题: “如何开始构建新的社交网络?”

我会建议去外面和一些真实的人交谈。

在阅读完您的问题的其余部分,特别是关于将您的想法转变为创业公司的部分之后,我会再说一遍:走出去与一些真实的人交谈。你不会单独坐在家里,只是坐在家里与使用者交谈,但如果你想在现实世界中与其他开发人员一起讨论你的想法,你或许有一天能够在社交网络中挖掘一个利基景观。

1

教程

随意选择任意Web开发教程。认真。从Oracle,IBM或HP开始。他们都很好。阅读东西。没关系。

编程语言和框架(我不介意学习新的)

折腾了一枚硬币。认真。如果你什么都不知道,选择任何语言。如果你已经知道一种语言,那就使用它。用您已知的语言找到一个框架。

他们都很好。这完全是抛硬币。有这么多选择的原因是因为这个事实:他们都很好。

架构

什么?

硬件(我需要为开发,测试,CI,很多机器...或者是我的2GB的MacBook Pro足够了)

这是无法解释的。是的,你需要一台电脑。任何电脑。你还需要知道什么?你没有语言,工具,框架或概念。所以硬件似乎有点不成熟。

源控制,CI,检测

是。

我应该从哪一部分开始?客户端,数据库,...?

数据永远持续,因此数据库必须先到达。

1

编程语言:php

尝试创建自己的框架。请记住,它必须快速且最小限度地运行社交网络。

你可能想看看所谓的PDO为PHP。也;你需要一个数据库捕捉系统(f.ex.Maccached)。

标准也是一件好事,试图实现它们。下面是一些例子:

  • Activitystrea.ms
  • Portablecontacts
  • 的OAuth
  • 的OpenSocial
  • FOAF
  • 的OpenID
  • XMPP
  • 名片
  • XRD
  • RDF
  • RSS/ATOM

有一些项目继续创建新的社交网络,你所得到其中:

  • Onesocialweb
  • Noserub
  • 散居

你可能想检查一下。特别是Diaspora可能会很有趣。如果您创建新的社交网络,则可能希望添加对用户的支持,以使用他们自己的Diaspora服务器来托管他们的联系信息。

关于教程:我提到的谷歌的东西。这些东西大部分都是足够的。玩得开心创造和学习:)