2011/11/20

[felica]FALPのAPI

SDK for NFC Starter Kit beta2。
FALPができるのだが、まだ受信できてない。

それはまあいいとして、ライブラリ実装がなんか不自然なのが気になる。
なんというか、静的解析ツールくらいはかけてからリリースした方がいいと思う。
自分では持っていないから何とも言えないが、見ただけで変なところもあるので、ちょっと書いておく。


felica_basic_lite_s.h

 

L.7
マクロ名の先頭がアンダーバー2つっていうのは、システム側で使用するものなので、普通は避ける
一致しなければ別にいいんだけど。
この辺は間違って覚えている人が多いので、ありがちといえばありがちだ。

 

L.41
Visual C++なら通らないからいいけど、そうでなければコンパイルエラーになると思う。
#elif、だ。
よく知らんが、最近は#else ifなんて構文もあるのか?

 

L.42
Cにはboolがないから定義したのだろうが、せめてtypedefしてほしいところ。
boolのサイズはけっこう処理系依存だと思うけど、unsigned charで大丈夫なのか?
下の方でextern "C"してるから、boolは使わない方がいいと思うんだけどね。
戻り値も定義した方が、ソースとしては一貫性があるだろう。

 


felica_mobile2_lite_s.h

 

L.94
このAPIだけ、他と違って変。
違う人が作ったのかな?

 

L.101
XPは32bit版だけだったけど、それ以外は64bit版もあったような。
APIが違うのはドキュメントに書かなくていいのだろうか・・・。


なんとなくFeliCa関係のソースは結構適当なできばえという印象がある。
動くからそれでいいやん、というのもそれはそれでいいんだけど、金を出して買った方からすると「品管は大丈夫なの?」なんて心配をしてしまう。

だって、ソフト仕様書とヘッダファイルなんて、製品で言えば筐体に当たるものやん。
もう少し気を遣った方がよい。

 

ソフトって、OJTだけでは成長しないので、ちゃんとした教育をしないといけない。
動くソフトとちゃんとしたソフトの差は大きく、やはりそれなりの教育がどうしても必要なのだ。

私も長いこと「動けばいいやん」派だったけど、この歳になってようやくわかってきたと思う。
セミナーとかによく参加させられて、「それなら仕事させてくれー」と上司に反発していたのだけど、悔しいが役に立っている。

ただ、教育を受けてしまうとソフトの考え方が固くなってしまうので、それはそれで面白くない。
なので結局、仕事用のソフトと遊び用のソフト、みたいな作り方をするようになってしまう。

とはいえ、こればっかりは難しいのよねぇ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。