3

我已经编程了一段时间,我对 Java 和 PHP 以及网站非常熟悉。我感到困惑的是程序员如何一起使用它们。我听说 Facebook 和 Google 如何将 Python、C、Java、PHP 等各种语言用于一个产品,但我只是对这怎么可能感到困惑。

另外,另一个问题是:在为 Twitter 和 Facebook 等大型在线公司工作时,软件工程师到底做什么工作?大部分代码都处理数据库和信息,那么除了可以通过一些教程在线学习的内容之外,还需要在服务器端完成哪些主要级别的编程?

4

4 回答 4

6

这是一个非常广泛的问题,但这里有一个模糊的答案。很多时候,大型应用程序会有许多组件。例如,您可能有某种报告引擎、业务逻辑、Web 界面、桌面界面、Web 服务 API、移动界面等。理论上,这些中的每一个都可以用不同的语言编写并通过数据库或类似 Web 服务的东西。

对于你的第二个问题。在大公司,需要做大量工作来保持稳定性、开发新功能、修复发现的错误以及努力提高效率等。例如,Facebook(和谷歌)雇佣了大量的软件工程师来帮助他们处理每天收到的大量交易量。

编辑这里有更多的澄清和对您问题的直接回答。

大部分代码都处理数据库和信息,那么除了可以通过一些教程在线学习的内容之外,还需要在服务器端完成哪些主要级别的编程?

事实是,在大多数情况下,高层负责人是相同的。在网络上完成一些基本的 PHP/MySQL 教程后,您可以很容易地构建 Facebook 克隆。区别在于:你的克隆人在它到达 Facebook 每天看到的一小部分用户之前就会死掉。这会很慢,不可靠,人们会离开,因为他们的数据会不断地通过 SQL 注入和其他恶意攻击被黑客入侵。这甚至还没有讨论分布式计算。所以,是的,从高层次来看,这就是你需要知道的全部。实施和现实要复杂得多。

于 2012-04-08T23:39:31.610 回答
0

如您所料,大型“网站”并不是按照传统意义上构建的,即您拥有一些 PHP 代码、一些 HTML 模板和一个数据库,因为这种架构在扩展到数千个并发用户时存在严重问题。

为了缓解这种情况,您可以将网站分成几个组件:

  1. 将请求分发到多个应用服务器的负载均衡器
  2. 生成 UI 并处理用户操作的应用服务器
  3. 处理业务逻辑并将其分布在数据库服务器之间的中间件服务器
  4. 以某种方式存储数据的数据库服务器

该系统的每个组件都可能以不同的语言实现,您甚至可能根据请求类型(例如移动设备)拥有不同的应用服务器。

这种类型的系统称为多层架构。您还可以找到有关该主题的学术书籍。

于 2012-04-08T23:45:14.203 回答
0

这是您正在寻找的实际答案
你很困惑,因为你看不到如何在网站上使用 C 和 C++ 应用程序,但我想告诉你,它们被用于很多事情......比如,当你在 facebook 中上传包含色情内容的图像时,php 不会验证该图像,他们将做的是通过通过参数传递该图像的地址来执行程序,并且该应用程序将验证该图像......并且应该存储一些数据以供将来使用,以便应用程序使用公共数据库网站正在使用,如果我们在googleplus中上传图片,那么它会将标签建议加载到可以看到人脸的某些部分,这是由该应用程序完成的,它将图像数据保存到google正在使用的公共数据库和php从那里获取信息,这是开发更多功能网站的技术......比如,我制作了一个程序来在本地主机上工作时关闭我的家用电脑:

<?php
$command="shutdown -s -f -t 5";
shell_exec($command);
?>

这个脚本一旦在 apache 中运行将关闭服务器类似地你可以将参数传递到一些应用程序中,比如如果你想在命令行中为你自己的没有安装 Cpanel 的服务器创建电子邮件帐户......
以及第二部分的答案你的问题:
实际上聘请了软件工程师,以便他们开发一些可以在服务器上运行的应用程序以增加网站的功能......就像如果网站只有网页脚本语言,那么谷歌也无法识别这张脸facebook,并且网站无法进行人工智能..
这篇文章可能会消除您的困惑...

于 2012-04-09T06:33:00.013 回答
0

大多数复杂的产品由许多部件组成。例如,StackExchange 具有在您的浏览器中运行的代码,这些代码是用 JavaScript 编写的,因此它可以在您的浏览器中运行。但是构建网页的代码不在浏览器中运行,因此也不是用 JavaScript 编写的。如果需要复杂的数据库查询,它们很可能在 SQL 中。以此类推。这个大难题的每一个部分都以最适合该部分的功能和运行环境的语言实现。

感谢GMail。有一个用 JavaScript 编写的浏览器内片段。还有一个 Web 服务器、一个数据库、一个邮件服务器、一个大容量存储系统、索引以及许多其他部分。

于 2012-04-08T23:52:40.233 回答