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

Programming languages 如何开始建立一个新的社交网络?,programming-languages,social-networking,Programming Languages,Social Networking,我有一个社交网站的想法,我将在空闲时间独自工作 我的目标是: 了解web开发 提高我的技能(编程语言、框架、可扩展体系结构等),以满足我的个人需求,并提高我的简历 如果我意识到项目可以成功,就将其转化为初创企业;如果将来有其他想法,就将我学到的知识用于其他想法 因此,我想问您是否可以就以下几点(或任何其他几点)向我提供建议: 教程 编程语言和框架(我不介意学习新的) 建筑 硬件(我需要很多机器来开发、测试、CI…还是我的2GB MacBook Pro就足够了) 源代码管理、CI、测试 我应

我有一个社交网站的想法,我将在空闲时间独自工作

我的目标是:

  • 了解web开发
  • 提高我的技能(编程语言、框架、可扩展体系结构等),以满足我的个人需求,并提高我的简历
  • 如果我意识到项目可以成功,就将其转化为初创企业;如果将来有其他想法,就将我学到的知识用于其他想法
因此,我想问您是否可以就以下几点(或任何其他几点)向我提供建议:

  • 教程
  • 编程语言和框架(我不介意学习新的)
  • 建筑
  • 硬件(我需要很多机器来开发、测试、CI…还是我的2GB MacBook Pro就足够了)
  • 源代码管理、CI、测试
  • 我应该从哪一部分开始?客户端,数据库
语言:您可以查看Groovy for web开发

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

源代码管理:GIT

首先,您应该在开发机器上执行一个测试数据库,并使用Groovy执行一些简单的屏幕来访问数据

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


是的,不太。。。Groovy。

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

好的起点是网站。至于学习Ruby,我绝对推荐

作为旁注,我不建议走“社交网络”的道路。社交网络的数量已经达到了疯狂的程度,这可能比你意识到的要大。在开始之前先读一读


我还认为,如果你计划“将项目转化为初创企业”,只有在你“意识到它可以成功”的情况下,这将是一个巨大的错误,可能是一个错过的机会。你应该带着坚实的商业(或至少是营销)计划进入项目,否则你将失败。

以你可能正在考虑的规模创建一个新的社交网络是一项巨大的任务。这通常不是一个“web开发入门”练习,而是一个“协作式、有经验的web开发大师级”练习——无论如何,要正确地实施它

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

也就是说,每当我有一个我认为很酷的想法时,我通常只会进行快速原型制作循环;但是对于像社交网站这样庞大的网站来说,重构将变得越来越困难,特别是如果只有你在团队中的话

显然,我对这一切感到困惑,试图表明还有很多事情要做。我的实际建议是——抓起一堆纸,尽可能多地画出草图,从高层次开始(比如,用户将与不同的屏幕进行交互)——在纸上解决问题(例如画出对象的状态),然后从低层次开始。拥有一个带有文字和照片的简单消息传递系统(老实说,要完成这项工作并工作良好,这本身就是一项壮举)比一个带有消息传递、照片库、“墙”系统、群组等的杂乱无章的四驱车扩展配置文件系统更好

现在有很多很好的技术,比如RoR,但是对于这样一个深入的项目,仍然会有很多研究和令人挠头的时刻。因此,拥有一定水平的总体项目范围将有助于保持项目的正常运行和可管理性,在编码之前的任何计划都是如此

只是一些值得思考的东西

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

我建议你到外面去和一些真实的人谈谈

在阅读完你问题的其余部分,特别是关于将你的想法转化为创业的部分后,我想再次说:走出去,与一些真实的人交谈。你不会独自坐在家里与stackoverflow用户聊天,但如果你走出去,与现实世界中的其他开发者讨论你的想法,你也许有一天能够在社交网络领域开拓出一片天地

教程

随机选择任何web开发教程。认真地从Oracle、IBM或HP开始。他们都很好。读一些东西。不管发生什么事

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

掷硬币。认真地如果你什么都不懂,选择任何一种语言。如果你已经知道一种语言,就用它。用你已经知道的语言找到一个框架

他们都很好。这完全是掷硬币。有这么多选择的原因在于这样一个事实:它们都很好。

建筑

什么

硬件(我需要很多机器来开发、测试、CI…还是我的2GB MacBook Pro就足够了)

这是无法理解的。是的,你需要一台电脑。任何计算机。你还需要知道什么?你没有语言、工具、框架或概念。因此,硬件似乎有点为时过早

源代码管理、CI、测试

哪一个PAR