搜索
首页后端开发php教程javascript - 请教关于多语言程序设计的问题?

有经验的前辈们劝解各种问哪个语言最厉害的新手时常说,一个系统是用多种语言,让各语言都放在他们擅长的领域才是最好的。同时其他场合也有前辈常说,因为PHP易部署,开发效率高,所以用来负责处理业务逻辑,而一些对分布式并行等等的用java实现,涉及数据处理等用python实现。但都没用提及具体设计的方法。

所以在这里问一下,怎么用多种语言设计一个系统?

根据我个人浅薄的知识,大概想出两种方案。

  • 利用C/C++做底层的拓展,把各个用不同语言写的模块连接在一起。但直觉告诉我这样不科学。

  • 把各个不同语言的模块都设计成C/S的模式,模块间用socket交互,但这样感觉效率不高,而且如果所有模块都可以在同一机器上部署,也要设计成C/S的模式吗?

已经问过度娘,实在找不到需要的答案,才来这里提问,希望有相关经验的前辈分享一下经验,如果能给出相关资料更加好,十分感谢!

回复内容:

有经验的前辈们劝解各种问哪个语言最厉害的新手时常说,一个系统是用多种语言,让各语言都放在他们擅长的领域才是最好的。同时其他场合也有前辈常说,因为PHP易部署,开发效率高,所以用来负责处理业务逻辑,而一些对分布式并行等等的用java实现,涉及数据处理等用python实现。但都没用提及具体设计的方法。

所以在这里问一下,怎么用多种语言设计一个系统?

根据我个人浅薄的知识,大概想出两种方案。

  • 利用C/C++做底层的拓展,把各个用不同语言写的模块连接在一起。但直觉告诉我这样不科学。

  • 把各个不同语言的模块都设计成C/S的模式,模块间用socket交互,但这样感觉效率不高,而且如果所有模块都可以在同一机器上部署,也要设计成C/S的模式吗?

已经问过度娘,实在找不到需要的答案,才来这里提问,希望有相关经验的前辈分享一下经验,如果能给出相关资料更加好,十分感谢!

thrift或者restful是常规型的多语言胶水方案

跨语言常见的有两种方式。一种是基于 SOA 架构的,服务可以由多种语言分别编写,但是接口统一。客户端也可以是多种语言编写的,只需要调用统一的服务接口。典型的例子就是各种开发接口,比如微博、微信等开发接口就是这类。在程序里调用SQL其实也可以算在这类里面。

另外一种方式就是常见的提供二次开发脚本的方式,在程序中提供一套 API 由客户按此 API 开发插件之类的东西,比如 Office 里面的 VBA。

其实最常见的多语言配合开发其实是网页,一般至少由 HTML、CSS 和 JavaScript 来配合开发,就算你不把 CSS 当语言,HTML 和 JavaScript 总是语言吧,何况还有 LESS 之类的 CSS 预处理语言。

在以前 C/C++ 里嵌汇编也是常有的事情,只是现在不多见了。

不要为了使用多种语言而使用多种语言,多种语言之前的配合也是需要成本的。有时候如果能用一种语言解决,也不一定非要用多种语言来各干各自擅长的事情了。

关键看你做什么系统,如果你比较了解各个语言的特点和现有的类库,那你大概就知道会结合你的业务做如何选择
1) C++ 追求性能极致的必须用C++,性能无出其右,缺点是开发效率低,别说什么java比C++快,那是基于C++程序员水平不行并且没有优化的前提下,试用领域: 图形图像处理、游戏后台开发,原因:没有GC,没有延迟,试想你做一个游戏后台服务器,服务器做GC导致卡顿了几十毫秒在客户端是一个什么样的糟糕的体验,目前很多做手游的也在用java,但是手游和端游是2回事,呵呵。
2) java 你如果做web或其他的对延迟没有那么苛刻的要求的,这个是比较好的选择,性能上接近c++,开发效率又没有那么低,一大堆类库和框架可以用,不论是web还是大数据,java都是个不错的选择,即使你不喜欢java,还有一大堆基于jvm的语言给你选择,对于企业来说,招一个能干活的java比招一个差不多的C++容易很多,培训几个月就能开始写java了,这点C++是绝对做不到的,很多写了半年多C++的还搞不清什么是编译期,什么是运行期。
3) 脚本,如PHP, python啥的脚本语言,糙快好省,网上一堆例子,巴拉巴拉就能写个最小粒度的能跑起来的例子了,小公司的不二之选,而且python也算是一个胶水语言,既有jython这种JVM上的, 也有.Net的实现,语法也非常容易上手,所以用python的也很多。
4) 其他的,如C#,Delphi等,不做评论了。

计划赶不上变化,我觉得楼主想的太多了。实际上没有必要这么细致,首先来说多语言共同部署,你的开发人员成本就马上增大了,然后协调成本,维护成本也相应增加,得不偿失。其实完全可以用一种语言进行先期开发,例如php这种易于部署而且比较灵活的东西,项目成型之后如果在实际使用中发现具体问题,且php无法提供好的方案时,可以再有针对性的使用其它语言解决问题。此时由于业务逻辑等已经稳定,重构的成本就降低了。

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
PHP的目的:构建动态网站PHP的目的:构建动态网站Apr 15, 2025 am 12:18 AM

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

PHP:处理数据库和服务器端逻辑PHP:处理数据库和服务器端逻辑Apr 15, 2025 am 12:15 AM

PHP在数据库操作和服务器端逻辑处理中使用MySQLi和PDO扩展进行数据库交互,并通过会话管理等功能处理服务器端逻辑。1)使用MySQLi或PDO连接数据库,执行SQL查询。2)通过会话管理等功能处理HTTP请求和用户状态。3)使用事务确保数据库操作的原子性。4)防止SQL注入,使用异常处理和关闭连接来调试。5)通过索引和缓存优化性能,编写可读性高的代码并进行错误处理。

您如何防止PHP中的SQL注入? (准备的陈述,PDO)您如何防止PHP中的SQL注入? (准备的陈述,PDO)Apr 15, 2025 am 12:15 AM

在PHP中使用预处理语句和PDO可以有效防范SQL注入攻击。1)使用PDO连接数据库并设置错误模式。2)通过prepare方法创建预处理语句,使用占位符和execute方法传递数据。3)处理查询结果并确保代码的安全性和性能。

PHP和Python:代码示例和比较PHP和Python:代码示例和比较Apr 15, 2025 am 12:07 AM

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

PHP行动:现实世界中的示例和应用程序PHP行动:现实世界中的示例和应用程序Apr 14, 2025 am 12:19 AM

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

PHP:轻松创建交互式Web内容PHP:轻松创建交互式Web内容Apr 14, 2025 am 12:15 AM

PHP可以轻松创建互动网页内容。1)通过嵌入HTML动态生成内容,根据用户输入或数据库数据实时展示。2)处理表单提交并生成动态输出,确保使用htmlspecialchars防XSS。3)结合MySQL创建用户注册系统,使用password_hash和预处理语句增强安全性。掌握这些技巧将提升Web开发效率。

PHP和Python:比较两种流行的编程语言PHP和Python:比较两种流行的编程语言Apr 14, 2025 am 12:13 AM

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

PHP的持久相关性:它还活着吗?PHP的持久相关性:它还活着吗?Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在现代编程领域中依然占据重要地位。1)PHP的简单易学和强大社区支持使其在Web开发中广泛应用;2)其灵活性和稳定性使其在处理Web表单、数据库操作和文件处理等方面表现出色;3)PHP不断进化和优化,适用于初学者和经验丰富的开发者。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具