UPnPの参考書を読んでみた

UPnP(Universal Plug and Play)は、簡単にいうと、USB機器のPlug and Playのように、
バイスをネットワークに接続すると、他のデバイスと相互に認識し、
バイス同士がどんな機能を提供できるのか知り合うことができます。
主に、AV機器のホームネットワーク(DLNA)の基盤になっている通信プロトコルです。

日本語の技術書が少なく、amazonで、検索すると、以下の2冊が出て来る。
とりあえず、2冊ともBuyしました。

UPnP入門

UPnP入門

UPnP入門」は、誤字があるものの許容範囲内。完全に、デベロッパー寄り。
よくまとめられていて、わかりやすかった。良書だと思います。

1章目で、いきなり、TCP/IPとかネットワークの基礎説明が始まってるけど、さらっと流し読み。
「小悪魔女子大生のサーバエンジニア日記」を読んどいてよかった。

3章、4章は、サンプルコードなので、さらっと流して、結局、重要なのは、2章と5章だけ。
そんなに分量はないし、ちょいちょい差し込まれる余談も興味深く、一日で読破できました。

SIP/UPnP情報家電プロトコル

SIP/UPnP情報家電プロトコル

SIP/UPnP情報家電プロトコル」は、自分にとっては、ざっくりしすぎてた。

iOSはUSB機器制御ができる?

www.apple.com

Lightning端子を使用して、USB機器に接続する
そういうのは、Jailbreak でもしないかぎり、できないと思ってたが、
そういうアプリというか製品を目にしたので、ググってみたら、それっぽstackoverflowが。

stackoverflow.com

External Accessory Frameworkというのを使うのかな。

developer.apple.com

Helperクラスとは?

Helperというクラス。
Railsにも出てくるよね。
このHelperさんを、最近、よく見かけるんです。

Helperというディレクトリがあって、
画面の制御、ビジネスロジックの制御、ビジネスロジックそのもの、ユティリティ、データアクセスまで、
そこには、なんでも入ってるんです。

自由すぎて、逆に、困ります。

僕の認識が正しいかわからないけど、Helperクラスは、あくまで、プレゼンテーションレイヤに属していて、
描画処理を助けるものではないでしょうか。

例えば、画面に金額を表示する場合、「3000」ではなくて、「¥3,000」と表示したいとして。
そのとき、「3000」 => 「¥3,000」の変換処理が、Helperさんの役割かなと。

お金を扱うアプリケーションの場合は、金額は、いろんな箇所に表示されますので、
共通部品になっていた方がよいですね。

また、この変換処理は、ビジネスレイヤやデータアクセスレイヤでは使用しません。
使用するのはプレゼンテーションレイヤだけです。

他のレイヤで変換をしてしまうと、ある箇所では、3,000円などにフォーマットを変えたかったり、
国際化対応時に、やっかいなことになりますね。

そこで、プレゼンテーションの助っ人して、Helperさんが登場するのではないでしょうか。

ところで、J2EEでは、View Helperと呼ばれるものがあります。
そこには以下のように定義されていました。

「ビュー」を使って整形コードをカプセル化し、「ヘルパー」を使ってビュー処理ロジックをカプセル化します。
ビューは、POJO、カスタムタグ、または、タグファイルとして実装されるそのヘルパークラスに、処理を移譲します。
ヘルパーは、ビューとモデルの間のアダプタとして機能し、HTMLターブルの生成など、整形ロジックに関する処理を実行します。

単にヘルパーと言った場合も、これのことを指すのでは?