[過去ログ] Go language part 3 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
447
(1): デフォルトの名無しさん [] 2020/04/28(火) 20:31:42.46 ID:ghSBG3zr(1) AAS
>>445
445(2): デフォルトの名無しさん [sage] 2020/04/28(火) 19:31:28.17 ID:Ce9HOSET(1/3) AAS
大きくなってきたんでパッケージを分割

設定とか全体を管理するAパッケージ
httpのリクエストを管理するBパッケージ
webAPIのロジックを管理するCパッケージ
ロジックのインスタンスは設定で作って、リクエストから呼び出して処理してもらう

さて、ここで落とし穴
Cパッケージから設定を参照するためにAパッケージをインポートすると import cycle not arrowed 発生
AパッケージではCパッケージをインポートして、ロジックのファクトリを呼び出してる

インポートの循環の制約とか、それは厳しすぎやしませんかね
第三の上位パッケージを作ればなんとかなるのかなぁ?
Goに限らずモジュール境界はインタフェースで抽象化するもんじゃ?
そうしないとユニットテストつらい
493
(1): デフォルトの名無しさん [sage] 2020/05/14(木) 17:27:46.77 ID:ljUxN++I(1) AAS
>>447
ものすごく遅い話なんだけど
そっかー、インタフェース定義とファクトリの実装が同じパッケージにある必然性って全くなかったんだな
io.Reader の実装が到るところにあるように、定義と実装を分離させれば済む話だった

あーでもない、こーでもない
いつの間にかそうリファクタリングしていて、アレ?となった
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.215s*