目次
回复内容:
ホームページ バックエンド開発 PHPチュートリアル javascript - 请教关于多语言程序设计的问题?

javascript - 请教关于多语言程序设计的问题?

Jun 06, 2016 pm 08:13 PM
c++ java javascript php python

有经验的前辈们劝解各种问哪个语言最厉害的新手时常说,一个系统是用多种语言,让各语言都放在他们擅长的领域才是最好的。同时其他场合也有前辈常说,因为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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP:サーバー側のスクリプト言語の紹介 PHP:サーバー側のスクリプト言語の紹介 Apr 16, 2025 am 12:18 AM

PHPは、動的なWeb開発およびサーバー側のアプリケーションに使用されるサーバー側のスクリプト言語です。 1.PHPは、編集を必要とせず、迅速な発展に適した解釈言語です。 2。PHPコードはHTMLに組み込まれているため、Webページの開発が簡単になりました。 3。PHPプロセスサーバー側のロジック、HTML出力を生成し、ユーザーの相互作用とデータ処理をサポートします。 4。PHPは、データベースと対話し、プロセスフォームの送信、サーバー側のタスクを実行できます。

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHP対Python:ユースケースとアプリケーション PHP対Python:ユースケースとアプリケーション Apr 17, 2025 am 12:23 AM

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

なぜPHPを使用するのですか?利点と利点が説明されました なぜPHPを使用するのですか?利点と利点が説明されました Apr 16, 2025 am 12:16 AM

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

PHPの影響:Web開発など PHPの影響:Web開発など Apr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

パフォーマンスレース:ゴラン対c パフォーマンスレース:ゴラン対c Apr 16, 2025 am 12:07 AM

GolangとCにはそれぞれパフォーマンス競争において独自の利点があります。1)Golangは、高い並行性と迅速な発展に適しており、2)Cはより高いパフォーマンスと微細な制御を提供します。選択は、プロジェクトの要件とチームテクノロジースタックに基づいている必要があります。

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

See all articles