SOAP / EXISTING CODE
SOAP連携、
よく分からないまま
既存コードを追った。
Windchillの開発で、 SOAPを使った連携処理を触りました。
ただ、 SOAPをきちんと勉強してから 実装したわけではありません。
既に動いている元コードがあったので、 必要なところだけ追って、
呼び出し方や値の渡し方を真似する。
正直、 今でもSOAPそのものを 深く理解しているわけではありません。
でも、 実務ではそれでも 進めなければならないことがありました。
INTRODUCTION
SOAPを理解することが、
プロジェクトの中心ではなかった。
Windchill案件で SOAPによる外部連携を触りました。
ただ、 プロジェクトの中心は SOAPそのものではありませんでした。
Windchill上のデータを扱ったり、 条件によって処理を分けたり、 業務ロジックを組んだりする方が 自分の担当としては重要でした。
その処理の一部に、 外部システムとの連携があって、 そこでSOAPが出てきた。
「SOAPをやる案件」ではなく、
「必要な処理の中にSOAPもあった」
自分の中では、 そのくらいの位置づけでした。
01 / FIRST LOOK
最初に見ても、
正直よく分からなかった。
SOAPの処理を見ても、 最初は何をしているのか きれいには理解できませんでした。
XMLっぽいものがある。
外部に何かを送っている。
戻り値もある。
でも、 SOAPの仕様を一から理解して 全体像を整理したわけではありません。
それより先に、 実装しなければならない処理がありました。
02 / EXISTING CODE
元コードがあるなら、
まずそこを見る。
幸い、 既に動いているSOAP連携の 元コードがありました。
なので、 まずその処理を追いました。
どの値を渡しているのか。
どこで連携処理を呼んでいるのか。
何が返ってくるのか。
返ってきた値を その後どう使っているのか。
「この形で呼べばいいのね」
必要な部分だけ分かれば、 今回の実装は進められます。
そのため、 元コードの使い方を真似しながら 対応しました。
03 / NECESSARY RANGE
全部を理解するより、
今必要な範囲を見る。
もちろん、 SOAPの仕組みを全部理解した方が 技術的にはきれいです。
でも現場では、 それだけに時間を使えるとは限りません。
今回変更する場所はどこか。
どの値を渡せばいいか。
どの処理を呼べばいいか。
戻ってきた値を どう扱えばいいか。
そこを確認して、 必要な処理を作る。
理解していないものを、
分かったふりはしない。
でも必要なところまでは追う。
当時は、 そんな触り方でした。
04 / RESULT
SOAPは分からない。
でも処理は作れた。
この経験で SOAPに詳しくなったかと言われると、 そうでもありません。
今でも、 SOAPの細かい仕様を きれいに説明しろと言われると怪しいです。
ただ、 既存コードを追って、 必要な値の流れを確認して、 同じ形で連携処理を組むことはできました。
実務では、 こういう進め方になることもあります。
技術を全部理解してから 実装を始められるとは限らない。
既存処理を手掛かりに、 必要な範囲だけ理解して 先へ進むこともあります。
05 / LOOK BACK
今振り返ると、
SOAPよりロジックを追っていた。
Windchill案件を思い返すと、 SOAPを触ったことより、 業務ロジックを追った記憶の方が強いです。
どこから値が来るのか。
どの条件で処理が変わるのか。
どのデータを使うのか。
どこへ渡すのか。
SOAPは、 その流れの途中にあった 外部連携の一つでした。
だから、 SOAP単体の知識よりも、 処理全体の中でどこに連携があるのか を見る方が重要でした。
FIELD NOTE
全部理解しなくても、
仕事は進められる。
分からない技術が出てきたら、 最初から全部理解しなければならない。
当時の現場では、 必ずしもそうではありませんでした。
元コードがある。
既に動いている処理がある。
今回変更する場所もある程度決まっている。
なら、 まず必要なところだけ追う。
ここに値を入れる。
この処理を呼ぶ。
ここで結果が返ってくる。
そこまで分かれば、 今回の実装は進められる。
全部を理解することと、
必要な範囲を理解して変更できることは別だった。
SOAP自体は、 今でも深く理解しているとは言えません。
でも、 分からないものを 既存コードから追って 必要なところまで使う。
それも、 実際の開発で何度も使うことになった 進め方の一つでした。