私は現在C言語で書かれたREST APIに取り組んでいます。私の現在のアーキテクチャとそれがどのようにリファクタリングできるかについての第二の意見を聞きたいと思います。メディアストリーミングアーキテクチャに関する第2の意見
これは基本的に、2種類のコール(syncとasync)を持つオーディオストリーミングプラットフォームです。私たちはヤヌスの上に、具体的にはaudiobridgeプラグインを構築しています。
問題:私たちの現在のjanus_audiobridge
ファイルはトラフそれ(単一ファイル内のコードの5Kの周りのライン)をナビゲートするには大きすぎるし、そのかなり難しい成長してきました。だから私はリファクタリングのための時間を決めました。
私の現在の解決策と問題点:私の考えは、2つの別々のファイルに同期と非同期の呼び出しを分離することでした。こうすることで、オーディオとrtpフォワードをミキシングするためのすべてのものがメインのjanus_audiobridge
ファイルにあり、実際のエンドポイントは別々になります。
しかし、このアプローチの問題は、同期/非同期呼び出しでも、メインjanus_audiobridge
ファイルの構造体と静的変数が使用されることです。だから私はハンドラメソッドにそれらを渡す必要があります。それはかなり醜いです。
どのようにこの種のシステムを設計しますか?
ありがとうございました!
一般に、コンパイル単位でグローバル変数を共有するのは悪い考えです。変数を必要に応じて関数に簡単に渡すことができるstructオブジェクトに変数をグループ化することを検討する必要があります。モジュール間の依存関係を最小限に抑えます。 – user694733
また、2つのソースファイルはほとんど聞こえません。それが他のコードとは明確に異なる場合、100行未満のコードを持つファイルに恥ずかしいことはありません。 – user694733
ありがとう、structs(私はメソッドへの構造体へのポインタを渡すことができ、それからすべてのものにアクセスする必要があります)と素晴らしいアイデア。ええ、私はすでにいくつかのことを壊しました。ありがとう! – IvRRimUm