私のプロジェクトの1つはPHPとして開始されましたが、最近、いくつかの新機能がNode.jsプラットフォームのJavaScriptで記述されています。
複数の言語を使用してサーバーコンポーネントを作成する大規模な多言語プロジェクトは、どのようにコードを編成しますか?
そのために必要なことの1つは、モデルとサービスを複数の言語で作成することです。これは私たちを導きます:
/models
/php
/js
/Ruby
/lib
/php
/js
/Ruby
あるいは、異なる言語で書かれた実装を同じフォルダーに入れ、ファイル拡張子によってのみ区別することもできます。
/models
user.php
user.js
role.rb
/lib
auth.php
service.js
anotherService.rb
これに対処するためのいくつかの一般的なパターンは何ですか?
パッケージを導入するのに適切な時期かもしれません。プロジェクトは、さまざまな機能を独立したパッケージに分離するのに十分なほど複雑になっているようです。したがって、構造は次のようになります。
/package-1 # (Ruby)
/models
file.rb
/lib
some-file.rb
/package-2 # (Node)
/models
...
/lib
...
/package-3 # (Node)
/models
...
/lib
...
このような構造を持つことで、各パッケージからコードを個別に更新し、それらの間にクリーンなAPIを配置し、さらにはそれぞれの独立したバージョン管理を行う可能性が広がります。あなたがそれを知る前に、あなたは本格的なマイクロサービスアーキテクチャを実行するつもりです:-)
もちろん、状況はそれぞれ異なりますが、このパターンは大規模なサービスでは非常に一般的です。