我对网络开发很感兴趣,我的意思是更大的项目,比如facebook或twitter。我知道java,css,php和mysql的基础知识。我知道那里还有更多。我读到了它。但我不知道目的是什么以及如何落实。
类似:Scribe,thrift,casandra,Unix / Linux,shell / perl / python脚本,PostgreSQL,MongoDB,非关系NoSQL数据存储,JVM,nginx
我想知道为什么他们需要它,他们如何使用它以及目的是什么。
我需要的是一本像facebook这样的假人技术背景的书。 是否有任何书籍或网站从头开始解释这一点?
谢谢!
编辑:
感谢您的回答!你一直非常乐于助人。我是在假设,经验丰富的程序员几乎都知道今天使用的技术。但正如我所读,你只能知道这么多,我需要弄清楚使用哪种技术。我鼓励开始建设小型。并将采用PHP并从那里提高我的技能。
再次感谢!
答案 0 :(得分:5)
这是最好的网站之一。有几个案例研究描述了许多网站使用的内容和原因,并指出了进一步的参考。我还会看一下2007年谷歌可扩展性会议
答案 1 :(得分:2)
这就是为我的工作选择合适的工具。那里有很多技术,所以不可能全部学习。只需选择适合您的子集。
答案 2 :(得分:2)
最好的起点是建立小型简单网站,当您遇到需要解决的问题时,您需要研究解决这些问题所需的工具。
如果你一次攻击所有区域,那将是压倒性的,你将无法到达任何地方。
对于每种技术的作用的一般概述,维基百科对大多数技术给出了很好的概述。
如果您对数据库内容感兴趣,那么一个好的起点就是阅读规范化。
答案 3 :(得分:1)
Scribe,thrift,casandra,Unix / Linux,shell / perl / python脚本,PostgreSQL,MongoDB,非关系NoSQL数据存储,JVM,nginx
我会在维基百科上搜索以获得快速概述。 Facebook是用PHP / MySQL编写的。有一些关于创建社交网站主题的书籍,有些书籍在亚马逊网站上得到了不错的评论,但我自己还没有读过任何书籍。
如果我是你,我会从PHP / MySQL开始,坐下来写一个简单的社交网络。将项目分解为组件和任务以及Google,以应对您遇到的每个挑战,例如会话,数据库结构,安全性,朋友结构以及处理POST和GET请求。
你会学到很多东西,你会得到全面的了解。一旦你看到了大局,你可以再看一下可用的不同技术,然后决定你可以用其他工具更好地开发哪个组件。我个人并不认为对可用技术的过分关注对于仍处于起步阶段的人来说是好事。开始做,从中学习,然后你的问题变得更加具体,很多事情会更有意义。
答案 4 :(得分:0)
有很多框架可以做很多不同的事情。你已经从很多不同的领域命名了很多不同的东西。想到这些事情的最好方法是按类别对它们进行分组。这是一个例子:
假设您有一台笔记本电脑并且想要托管网站。您至少需要以下内容:
1)Web服务器软件。两个流行的选项是Microsoft的IIS和Apache Web Server。
这就是你真正需要的一切。您可以设置www_root文件夹并将文件加载到其中。假设一切都配置正确,您现在可以将HTML页面加载到该文件夹并通过您的IP地址访问它们。您在Web浏览器中查看的每个页面都是HTML格式。 CSS是一种样式表语言,用于定义HTML的格式。您也可以开始编写Javascript,因为大多数现代浏览器都支持客户端脚本语言。
您可能还需要以下内容:
2)数据库软件。两个流行的选项是Microsoft的SQL Server和MySQL 3)服务器端脚本。 PHP非常受欢迎,ASP也是如此。您需要在服务器上部署运行时。 Python,Ruby,Perl等都属于这一类。 4)Web应用程序框架。这将为您提供所选语言的库,以帮助开发Web应用程序和网站。 CakePHP,Ruby on Rails和Google Web Toolkit是Web应用程序框架的示例。
此外,您可能想要使用:
5)其他图书馆。例如,JQuery正迅速成为一个流行的Javascript库,可以为您处理许多常见任务。而不是编写复杂的效果代码,而不是自己,只需使用JQuery库中预先编写的代码。 6)数据交换技术。如果要来回传递大量信息,您可能希望以逻辑格式封装此数据。理想情况下,此格式将描述数据并允许您的应用程序按照标准轻松读取/处理它。这就是XML和JSON发挥作用的地方。
我不能推荐一本好书来帮助你学习这些东西,但我觉得这里集体回答你的问题应该足以让你开始。
最终,您需要做的是确定您需要哪些技术,然后为工作选择合适的技术。不要使用Ruby on Rails构建应用程序只是因为它是Twitter使用的,而是选择它,因为它为您提供了一些优势,而不是其他选项。