シリアライズはLengthで数えちゃだめ
PHPのシリアライズのサイズの件、解決!! だいたい、文字列をLengthで取得してるところが間違ってる。 シリアライズするんだからbyteで数えなきゃならないのに。 ちなみにSharp Serialization Library | Get Sharp Serialization Library at SourceForge.netここにあったC#のプログラムもLengthで数えてた。 外国はマルチバイトを考慮しなくていい分、こんなところで躓かないんだろうけど、マルチバイトに触れることがあったら困るんだろうな~。
そんなこんなで、ベース部分はだいぶ整ったので、この時点でSさんに一度見てもらった。 そこで簡単な仕組みの説明をして、疑問点に答え、その後は意識合わせのためホワイトボードにて30分程度話をした。 イメージしてることなど、全般的に一致してる感じ。
あと、2,3週間あればもっと余裕があって、安定して使いやすいものを提供出来ると思うんだけど、残り1週間。
最近のサイクルとしては、業務時間中にせっせと作る。 ほとんど残業無しにそのまま帰宅。 帰宅中にやり残したことと、明日の予定を考える。 翌日、通勤中にはもう少し具体的な作成の手順をイメージする。 またせっせと作る。 こんな感じ。 たぶん、キーボードを打ってる時間は結構あると思う。
ほとんど残業無しで帰ってはいるが、サイクルとしては効率がいいと思う。 定時くらいになると何かで悩み始めるか、これから作るにしては時間がかかるひとまとまりの作業が残ってるから。 しかも、このひとまとまりという単位は意外と曲者で、頭が働いてないときに手をかけると失敗しやすい。 それを防ぐためにも、帰宅、通勤中にある程度整理する。
これがすごくいいペース。 3,4週間こんな感じで、全体的にすっきりとまとまってる。 修正が入ってもそれほどモデルが壊れることはなかった。 この件は以前よりもモデルの扱いに慣れてきたというのもあるんだろうけど。
帰りの電車、たいてい熟睡。 それくらいみっちりと取り組んでる。 悩みがでかいときは頭がくらくらして、寝たような、寝ないような感じで最寄り駅到着。
今回の新たな発見、関係性はRDBのテーブルだけではないということ。 RDBのカラムの中にシリアライズされてるオブジェクトが入ってることがあった。 これって、シリアライズされてるのを1つのテーブルとして定義したらもうひとつリレーションが増えるってこと。 重要なのは3テーブルくらいだったから、簡単かと思いきや、そこが膨れた。 DB部分、クラスをもう少し細かく分けた方がいいんだけど、今は時間がないからそれはしない。 ちょっとでかいけど、わかりづらいわけじゃないし、個人的には大丈夫な範囲。
まぁまぁ、順調に一週間が終わりました。