#! /bin/blog

実行形式のブログです。というか、ほぼポエムです。

UPnPの参考書を読んでみた

UPnP(Universal Plug and Play)は、簡単にいうと、USB機器のPlug and Playのように、
バイスをネットワークに接続するだけで、オートマティックに認識や設定をしたり、
バイス同士が制御しあうための汎用的なAPIを提供する
主に、AV機器のホームネットワークの基盤になっている通信プロトコル

ネットにつながる家電製品が増えてきているので、重要になってくると思われる。

日本語の技術書が少なく、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ターブルの生成など、整形ロジックに関する処理を実行します。

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