如何开始建立一个新的社交网络?

时间:2010-08-04 22:12:22

标签: programming-languages social-networking

我对社交网络网站有所了解,我将在空闲时间单独处理它。

我的目标是:

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

所以我想问你是否可以就以下几点(或其他任何要点)给我建议:

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

6 个答案:

答案 0 :(得分:6)

要创建一个新的社交网络,您可能正在考虑的规模是一项庞大而巨大的任务。它通常不是“网络开发的介绍”练习,它将是一个“协作,经验丰富的网络开发大师级”练习 - 无论如何都要正确地实现它。

似乎跳过去思考语言缺少了软件设计所需的一些非常重要的步骤 - 特别是考虑到语言和平台的有效选项数量。最好先考虑一些系统设计:用户,用例,也许是一系列实体/ ERM设计;在那之后您可以考虑后端存储。考虑用户负载,用户体验,可扩展性和功能集,您可以开始权衡语言和平台。

那说每当我有一个想法我认为很酷我通常会做快速原型制作周期;但对于像社交网站一样庞大的东西,重构将变得越来越困难,特别是如果只是你在团队中。

显然,我正在试图建议有很多想法要做。我的实际建议是 - 抓住一堆纸,尽可能地勾勒出来,从高层开始(比如,用户将与之交互的不同屏幕) - 在纸上解决问题(例如勾画出物体的状态),以及开始小/瞄准低开始。最好是拥有一个带有文本和照片的简单消息传递系统(说实话,要获得完美的结果并且运行良好,这本身就是一项壮举)的工作而不是随意破坏的带有消息传递的扩展配置文件系统,照片画廊,'墙'系统,团体等。

那里有很多美味的技术,例如RoR,但是项目的深度仍然会有很多研究和令人头疼的时刻。因此,拥有一定程度的整体项目范围将有助于保持正常和可管理的状态,以及在编码之前进行任何规划。

只是一些值得思考的东西。!

答案 1 :(得分:2)

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

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

来源控制:GIT

您应首先在开发计算机上执行测试数据库,然后使用Groovy执行一些简单的屏幕来访问数据。

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

是的,不是很...... Groovy。

答案 2 :(得分:1)

  

教程

随机选择任何Web开发教程。认真。从Oracle,IBM或HP开始。他们都很好。阅读某些内容。什么都没关系。

  

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

抛硬币。认真。如果你什么都不知道,选择任何语言。如果您已经了解某种语言,请使用该语言。找到您已经掌握的语言的框架。

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

  

架构

什么?

  

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

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

  

源代码控制,CI,测试

  

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

数据永远存在,所以数据库必须先行。

答案 3 :(得分:1)

编程语言:php

尝试创建自己的框架。请记住,运行社交网络必须快速且极简。

您可能想要查看一些名为PDO for php的内容。也;你需要一个数据库捕获系统(f.ex. Memcached)。

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

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

有些项目正在创建新的社交网络,其中包括:

  • Onesocialweb
  • Noserub
  • 流散

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

关于教程:我提到的谷歌的东西。关于它的大部分都有足够的东西。享受创造和学习的乐趣:)

答案 4 :(得分:0)

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

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

作为旁注,我不建议走“社交网络”路径。已经有一些疯狂的社交网络,它可能比你意识到的更重要。在开始之前阅读this

我认为,只有当你“意识到它可以成功”时,如果你打算“将项目转变为创业公司”,那将是一个很大的错误,可能会错失良机。您应该通过可靠的业务(或至少是营销)计划进入项目,否则您失败。

答案 5 :(得分:0)

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

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

在阅读完其余的问题后,特别是关于将你的想法变成创业公司的部分,我会再说一遍:到外面去和一些真实的人交谈。你不打算独自坐在家里与stackoverflow用户聊天,但如果走出去与现实世界中的其他开发者讨论你的想法,你可能有一天能够在社交网络中开辟一个利基市场景观。