弐条海月の とはずがたり

そこはかとなく書き綴るブログなるもの

仕事用のアプリ開発…

 先日書きました仕事上のプログラム開発の話の続きです。会社のサイトの中のコンテンツの機能追加によって、ローカル側の私のプログラム(HSPで開発)も変更が必要になります。仕事仲間の氷翠さんによるサーバー側プログラムは、ほぼ新規で作り直すようで大変そうなのですが、私のほうは「ほんの少しの改良で済むなぁ」と思っておりましたら、ソースが行方不明に(笑)。結果…最初から書き直すことにしました(泣)。

 まずは…自分で開発しておきながら、まったく忘れてしまった初期型のアプリの仕様を調べます。忘れてしまった…というのは、開発時にテストしただけで、実際に自分で使ったことはなく、別の部署で使われているアプリケーションだからです。ちなみに、T女史が週一回、このアプリで仕事をしてくれております。

 初期型アプリは…2008年7月14日にビルドされておりましたが、確か…不具合があって一度、バグ対策を施した記憶があります。それはこのアプリがVer1.1であることからも分かります。

 アプリの起動時に、同一ディレクトリにあるINIの設定ファイルを読み込んでおりますね。これがないと起動しません。私のアプリはレジストリをいじらないことを前提につくっておりますので、必然的にINIファイルが必要になるのです。

 このINIファイルの中身は簡易的なXML。ここから、私が開発した文字処理用モジュール「kurage_mod」は、公開前のプロトタイプ(現行の二世代前)を使って動いていることが推測できました。

 すでにGUI(アプリケーションの外観)は…昨日のうちから作り始めてました。とは言っても、今までのアプリ実行画面を再現する作業です(笑)。いつも思うのですが、HSPはウインドウ内に視覚的にオブジェクトを配置できないのがツライです。ですので、ピクセル単位で調整しては実行、また調整して実行…と繰り返す必要があります。

 旧型のアプリには、ボタンを押すとウインドウサイズがぐいーんと横に広がるギミックを備えていたのですが、新型では、処理が面倒なので省くつもりでおりました。本来は最初から表示されていれば良いものなので、そんなギミックはいらないのです(笑)。ですが、新型のアプリでは今までは単一の処理だった部分が4つに分かれているため、ギミックがあったほうが逆に分かりやすいという判断に達し、復活させました。

 処理開始後は、入力された項目でXMLファイルを書き出す処理を追記。旧アプリではプログラムのソース内部でXMLファイルを生成していましたが、今回の新型アプリでは外部にあるXMLのテンプレートファイルを読み込む仕様に変更しました。しかも、処理も特定のXMLタグに反応するのではなく、データを書き込みたい場所に直接働きかけるようにしてあります。説明が下手で申し訳ないのですが、こうすることでXMLタグを少々変更しても、ソースをいじる必要がなくなってラクになるのです(笑)。

 後は必要な部分が入力されているかどうかのチェックや、全体のデバッグなど。あとひと頑張りです。


プログラム開発について

 仕事の話です。会社のサイトの中のコンテンツの機能追加について、氷翠さんと打ち合わせをしました。詳細を書けないのがもどかしいくらいですが(笑)、最近なんとなく盛り上がりにかけるコンテンツの「てこ入れ」にもなる可能性を秘めた機能追加なのです。

 このコンテンツ、ローカル側のプログラムは私がHSPで開発。サーバー側のプログラムは氷翠さんがPHPで開発しています。私のほうはプログラムの一部書き換えで済みそうですが、氷翠さんのほうはコンセプトはこれまでと同じですが多分、全部書き直していると思います。私もよく分かりますが、プログラム開発って勢いとかもありますから、過去のソースを解析しながらあれこれいじるより、ひらめくまま一気にダーッと書いたほうが早い場合が多いですからね(笑)。

 今回のコンテンツはオモテ側だけではなく、管理ツールも必要なコンテンツなので、それも作らねばならないようで大変とは思いますが、早期の完成を期待しています。


簡易データベースの並び替え…

 仕事用に開発した自作の簡易データベース作成プログラムを大幅に改良しているのですが、それに付随して過去の簡易データベースの中身をひっくり返す必要があったため、そのサポートアプリを開発しました。一応、その記録です。

 今回は何も難しい処理をしていません。単純に簡易データベースの並び替えを行っているだけです。簡易データベースの中身は、単なるテキストです。もともとは数多のテキストファイルだったのですが、それを1行=1ファイルとして1日毎に異なるタグで囲み、簡易XM風にまとめたものです。これを読み込んで検索アプリが動作しますので、検索速度向上のために並び替える必要があったのです。

 ドラッグドロップで追加した簡易データベースファイルを開き、頭から順に呼び出して旧データベースが潜在的に抱えていたバグの回避処理を行った後、変数の頭に追加していくだけ。これにより、今までは古い順にならんでいたデータが新しい順に並びます。

 ところが、途中でものすごく処理が遅くなるため、1年分のデータベースを5つに分割して処理を開始。合間にさらなる速度向上を図るためプログラムの見直しと書き換えを実施しました。

 その中で分かったことは、HSは変数にデータを追加した際に動作低下を起こすのではないか、ということ。最初のプログラムでは1行づつ読み込んで別な変数に追加していく処理が300行くらいから徐々遅くなっていったのですが、読み込みだけであれば最初の速度を維持したまま処理が可能であることが分かったからです。また、処理の効率をアップさせるため、必要な行でのみバグ回避処理を行う仕様に変更(笑)しました。もちろん、一番の問題はマシンスペックにあるわけですが…。

 次に、並び替えのデータをどうやって作るかですが、動作速度を落とさないため、単純に変数に加えている方法はやめます。そこで、メモリノートパッド命令によって先頭行に追加する方式を試してみます。
この方法だと、書き込みをしない時と速度が変わらないので劇的にプログラムが改善できますね。私的には、これがダメならばsotenote命令で並び替えることも検討し、実際に試してみて一瞬で処理ができることを確認していたのですが、そこまでやる必要もありませんでしたね。

 ここまで完成したところで、通常の仕事を進めながら、バックグラウンドでデータベースの並び替え作業を進めました。今日は2008年からさかのぼり、2005年まで完了。明日も続きをやります。


簡易データベースの作成プログラム…

仕事で使っている自作の簡易データベース検索プログラムを改良しているのですが…その際にデータベースそのものの作り直しが必要となったため、簡易データベース作成プログラムを新規に開発し直しました。これがほぼ完成したようで、動作チェックしながら今年のデータベース(今日までの分)を作成することができました。

簡易データベースは従来のそれとは異なり、新しいものが上にくるようにしてあります。そのほうが検索速度に有利に働くことが分かったためです。また、旧型のアプリはかなりバグが目立っていたのをだましながら使っておりましたが(笑)、その部分も改善してあります(…あると思います)。結論から言うと…従来のものより大幅に性能が上がっているのですが、作成したデータベースの保存方法を変えているため、速度は大きく低下しています(笑)。

ただし、速度の低下が顕著に表れるのは、データベースを新規で構築する必要がある時だけです。今回のように1月~12月のデータを作成するようなことは通常ならがあり得ないことなので、問題ないと思います。何しろ、普通は1日ないし多くても2、3日分のデータベースしか作成することがないからです(爆)。

さて、ここでデータベース検索プログラムの開発に戻ろうかと思いましたが…そうもいきません。過去のデータベースを作成しなければならないからです。ただし、過去のデータベースは、元になっているデータそのものがもう存在しておりませんので、旧データベースを元に新しいデータベースを作らねばなりません。これは単純にデータの並び替えを行えば良いので、暇な時間を見つけてサクっと作ってしまおうと思っています。


プログラム開発…法則性は大切です

先週のことでしたか、 2009年12月08日 仕事で使うサポートアプリ開発… で書いたプログラムを開発して便利だなぁ…と思っておりましたが、週1回あのアプリを使用する日がやってきました。サクっと動作することを期待してボタンを押したら…さっそくバグが発生しました(笑)。

急いでプログラムを組んで完成させたアプリですので、エラー処理とかがまるでなっていません(笑)。それでもシンプルな構造ですから、順を追って画面に処理結果を表示しながらバグが発生しているヵ所を調べると…すぐに判明しました。

データ内にある特定の文字とスペースが2つ入っている箇所で題と名称とを分離しているのですが、今回のデータは特定の文字とスペースが1つしか入っていなかったため、処理が止まっておりました。記述の法則が違っているのは、過去2週間分のデータとは違う人が作成したからなのでしょうかね。分かりませんけれども。

もちろん、すぐに対応するべくプログラムに手を入れました。特定の文字があれば、スペースが1つでも動作する仕様に変更して解決です。こういったチカラ技的な作業は得意ですからね。別の取引先から送られてくるPDFファイルのリネーム処理プログラムで鍛えられておりますので(笑)。

無事に動作することを確認し、紅茶でひと息つきながら…
「うーむ、法則性のない仕事っぷりの取引先が多いなぁ…」
と、ふと思ってしまった今日この頃。。


固定ページ

最近の投稿

カテゴリー





カレンダー

2024年5月
 12345
6789101112
13141516171819
20212223242526
2728293031  

過去の日記はこちら

キーワードで検索