有经验的前辈们劝解各种问哪个语言最厉害
的新手时常说,一个系统是用多种语言,让各语言都放在他们擅长的领域才是最好的。同时其他场合也有前辈常说,因为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无法提供好的方案时,可以再有针对性的使用其它语言解决问题。此时由于业务逻辑等已经稳定,重构的成本就降低了。

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

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

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

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

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

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

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

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


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版
好用的JavaScript开发工具

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver Mac版
视觉化网页开发工具