SIerの社長ブログ

DBダイアグラム

最近、自社プロダクトの設計に着手しました。今回は仕様策定とDB設計を同時に進めています。

今回のプロダクトは凝れるだけ凝ってみるつもりです。

凝ったシステムは、多くの複雑な仕様を盛り込むので、設計の甘い箇所が発生しやすくなります。そこで、仕様策定と並行してDB設計を行い、データモデルを明確にすることで、仕様や設計の曖昧さを排除していくのです。

データモデルはシステム全体の複雑度に大きく影響します。より優れたプロダクトを、適切な範囲で小さめの複雑度に納めるように仕様のバランスをとるために、この仕様策定とDB設計を同時に進める方法は優れています。

例えば、Aの機能を入れるならBの機能を入れても、データモデルの複雑度はほとんど変わらないので、一緒に設計しておくべきだとか、Cの機能を入れるなら、Dの概念を検討すべきだとか。データモデルを設計することで、いろいろなことが明らかになります。

現在設計中のデータモデルはこんな感じです。詳細はお見せできないので、テキストを消したダイアグラムを貼り付けました。本当は長方形の中にデータベースのテーブル名が書いてあります。

diaglam.png

データベースのテーブルは、「商品」や「売上」、「顧客」などの単位になっています。上から下に向かって1:Nの関係です。

テーブルの関係に0:Nの関係があり得るかなどを詳しく表現する方法や、主キーをはじめとしたDBの項目まで記入する方法もあるのですが、その書式には拘らず、この方法を採用しています。

逆に拘っているのは把握しやすさ。ダイアグラム内にテーブルをバランス良くレイアウトすることを大切にしています。システムが一定以上の規模になると、データ構造が完全に頭に入った状態を維持し続けるのは難しいので、この図が見やすいことは、とても重要なのです。

【補足】

DB設計は、その全要素が開発時の生産性や拡張性、性能に大きく影響するので、大事なのは見た目だけではなく、DB設計の全てです。微細なところも大事な範囲に含まれます。逆に良好にDBが設計されていても、ダイアグラムがきれいに書かれていないシステムは時々見かけます。


週末の沖縄

半月ほど前になるのですが、週末に沖縄に行ってきました。

沖縄旅行は初めてなので本島を選びました。海で泳ぐにはまだ寒かったのですが、それでも沖縄の暖かな風が心地よかったです。

今回は、土曜日の朝の飛行機で沖縄に行き、翌日の夕方の便で戻る1泊2日の日程。

いつも旅行にいくと、あちらこちらと足を伸ばすのですが、今回は観光は1日目だけにして、2日目はビーチを散歩したり、ホテルのバルコニーでのんびり過ごしたりしました。

okinawa.jpg

景色の良いところで過ごす、何もしない時間は本当に贅沢ですね。短時間でも驚くほどリフレッシュできました。

沖縄、また近いうちに行こうと思います。今回は南の方を少し回っただけなので、次は本島の北のほうか、離島を狙うつもりです。


 私は普段、万年筆を使っています。なんとなく気分が良いからというのもあるのですが、筆圧いらずでスルスル書けるので疲れないのです。お客様との打ち合わせ時に自分用のメモをとるときも、早書きしやすくて便利だったりします。

 この万年筆、これまでビジネス主体だからと、ずっと黒インクを使ってきたのですが、最近になって青インクに変えました。

 これは学生から教わったのですが、青インクだと記憶しやすいのだそうです。私はこの話を初めて聞いたのですが、これは常識なのだとか。

 最初は定番のブルーブラックを試しました。でも、ブルーブラックはその名の通り「黒よりの青」。これだと黒と大して変わらないので、明るめのインクを探しました。

 その後、いくつか試して最後に落ち着いたのは、ペリカンのロイヤルブルー。色彩が鮮やかで少し紫方向のきれいな青です。これを使っていると、少し爽やかな気分になれます。

royalblue.jpg

 このインク、万年筆が趣味の方のブログをたくさん拝見したところ、インクフローが良好なのだそうです。確かに気分だけではなく、書き味も良くなった気がします。


ホームページの最上部に動画を入れました。

ビジネス用途のシステム開発業のホームページは退屈な内容になりがちなので、自社プロダクトの紹介を中心にストーリー風に仕上げています。

子供達の笑顔が気に入っています。癒やされますよね。

hpmovie.png

最初のiPadアンケートの動画は、プロダクトのWebサイトにも配置しました。
→ iPadアンケートアプリKURERU
こちらは動画に重ねる網掛けとタイトルなしなので、印象が違います。

この動画コンテンツは、専門業者には依頼せずに自分たちで撮影・編集しています。私はこのところ開発関連の業務が立て込んでいて、今回は撮影・編集ともにタッチできず、1シーン毎に仕上がりを確認しています。

takem.jpg

途中で見ると不要な口出しをしてしまうので、あえて見ないようにしています。というより途中で声を掛けると「編集中です!」と軽くブロックされます(笑)。それでも見たくなったら見ますけど。。。

撮影は35mmフルサイズの一眼レフカメラを使用。そのまま使うとファイルサイズが大きいので、編集時に解像度を落としています。

この動画コンテンツは時々追加する予定です。


辰巳の会

 最近、お客様を含む5人の仲間で東京辰巳国際水泳場に月1回のペースで通っています。数ヶ月ほど前にトライアスロンをされているお客様と雑談中にスイムの話が盛り上がり、最高のプールだからと、私がお誘いしたのがきっかけです。

 辰巳では2kmほど泳ぎます。30秒の休憩を挟みながら2分で50mプールを一往復するペースです。このペース、初回の泳ぎ始める前は「行ける!」と思ったのですが意外ときつく、不覚なことに1kmを超えたあたりからついて行けませんでした。

 しばらく泳ぐ頻度を落としていたせいで、泳力が思った以上に落ちていたようです。私の場合、週1回で泳力を維持でき、週2回で向上、週1回未満だと悪くなっていきます。

 泳ぐときは競争しているわけではなく、別にペースについて行けなくても、気にする必要はないのですが、私はそれなりにショックで、このときからプールに通う頻度を週2回に増やしました。

 2ヶ月ほどで過去の調子を取り戻しました。今では過去一番良い状態です。泳力だけでなく、肩こりなども減るので普段の仕事も捗ります。

 ただし問題が1つ。体調は過去最高なのですが、食欲が進み体重は3ヶ月で3kg増えて80kgになってしまいました。理想体重の75kgまで落とした以前のダイエットはどこかへ行ってしまった感じです。泳いだ日に多く食べるのは良いのですが、泳がない日も多食を続けるとこうなるのですよね。

 実は1年ほど前から、あと少しウエストが細くなったらスーツを買い換えようと、先送りし続けていました。拘っていないはずなのですが、3センチ程度のサイズ差でズボンの雰囲気が違うので、どうせなら痩せてからと思ってしまうのです。

 このところの体重増で、履けていたズボンがきつくなってきました。そろそろ妥協して新しいスーツを買おうと思います。

tatsumi.jpg


HYSOLIDのテクノロジ

 おかげさまで昨年12月にリリースしたハイレゾ再生ソフトのHYSOLIDは雑誌や有名Webサイトなどで紹介して頂くなど、予想以上の好評を頂いています。問い合わせフォームやTwitterから「音が良い」「気に入って常用している」等の嬉しいメッセージも多数頂きました。

 最近はオーディオが分かる方とお話しすると、必ずと言って良いほど「なぜハイレゾの再生ソフトを開発したのか」と質問を頂きます。これは単にたまたまハイレゾオーディオの分野を調べていったら、必要な技術分野が自分たちの得意分野と一致していたからです。つまり自分たちならハイレゾ再生ソフトのスタンダードを目指せると気づいたのです。

 「スタンダードを目指せる」と言っても「スタンダードになる」にはまだまだ改善が必要で、今は道半ばといったこところです。HYSOLIDは今後も改善を続けていく予定です。

devtech.png

 参考までにHYSOLIDで使ったテクノロジをご紹介します。

【Windowsのネイティブプログラミング】

 Windows上で.Net Framework等を使わずに動作するプログラムを開発する技術です。プログラミング言語はC++を使います。(余談ですが、C++は私の最も好きな開発言語です。)

【iOSアプリ開発】
 iPhone/iPadアプリを開発する技術です。言語はObjective-CかSwiftです。iOSアプリ開発は私たちの主力ビジネスで、自社プロダクトのKURERUやCardfeelをはじめ、お客様向けの業務システムも多数開発しています。

【Androidアプリ開発】
 Androidのアプリ開発技術。言語はJavaです。Cardfeelやお客様向けのアプリ開発の実績があります。いつもどおりではあるのですが、安定動作や動きの良さには特に気を配っています。

【COMプログラミング】
 マイクロソフト社の定義したCOMと呼ばれるソフトウェアのモデルに則したプログラム開発技術です。COMはコンポーネントオブジェクトモデルの略です。ブラウザコントロール(ActiveXコントロール)やBHO(ブラウザヘルパーオブジェクト)のプログラム開発では必須になります。尚、オーディオ再生のインターフェイスWASAPIもCOMで実装されています。

【マルチスレッドプログラミング】
 1本のプログラムが複数に枝分かれして平行動作するプログラムを開発するプログラミング技術です。今回はWindows、iPhoneアプリもAndroidアプリの3点ともこの技術を使っています。

【サービスプログラミング】
 WindowsのOS起動とともに動作するプログラムのことをサービスと呼びます。Windowsサーバー上で、普通のWebサーバーの仕掛けでは対処しきれない高度な要件があるときに、この技術が必要になってくることがあります。UIを持たないのでデバッグなどで余分な手間がかかります。

【ソケットプログラミング】
 TCP/IPのためのプログラミング技術で、HTTPやFTP等のベースとなる技術です。WebサーバーやFTPソフトなどは全てこの技術を使って構成されています。一昔前はネットワークプログラミングといえばソケットプログラミングを指していました。今は上位のライブラリが充実しているため使う機会はほとんどなく、専門書もなかなか見つかりません。

【Webシステム開発・運用】
 サーバー上でWebサーバーとデータベースを組み合わせてシステムを構築する技術です。今回の選択は最も一般的な組み合わせであるLAMPを採用しました。LAMPは、Linux, Apache, MySQL, PHPの頭文字を並べたものです。この技術には、ドメインを取得してDNSを設定したり、送信メールがスパム扱いにならないような設定を入れたり、複数世代のバックアップアップを自動取得する仕掛けを入れたりと小技のオンパレードも含まれています。

【AWSの利用】
 Amazon社のクラウドサーバーを利用する技術です。現在は大部分(80%以上)の受託開発でAWSを利用しています。具体的にはコンピューティングのEC2、ストレージのS3、データベースのRDS等です。


皆様、あけましておめでとうございます。本年もどうぞ宜しくお願い申し上げます。

2016年1月16日(土)に、秋葉原のPC/オーディオショップのオリオスペック様で、弊社のハイレゾ再生ソフトHYSOLIDを使った試聴イベントを開催頂けることになりました!

使用PCは、HYSOLID向けにカスタム仕様がほどこされたオリオスペック様オリジナルのオーディオPC Ritmo。このRitmo、アルミ削り出し一体形成の筐体を見るだけですごさが伝わってきます。秋葉原だからこそ実現したこの組み合わせが嬉しいです。

ritmo2-front1-600.jpg

イベントでは、僭越ながら私からHYSOLIDのコンセプトや拘りの実装について説明するほか、再生ソフトでどのような音の違いが出るのかを実際にデモストレーションする予定です。

今回のイベントは、ハイレゾに関心のある方だけでなく、PC好きの方、IT業界の関係者の方や現職プログラマの方も歓迎との事です。ご都合があうようでしたら是非ご参加ください。皆様にお会いできるのを楽しみにしております。

以下は、オリオスペック様のブログ http://blog.olio.co.jp/?eid=134 から転載したイベント詳細です。
どうぞ宜しくお願い致します。

======================================
日程:平成28年1月16日(土)
場所:オリオスペック イベントスペース(秋葉原)
東京都千代田区外神田2-3-6 成田ビル2F
時間:14:00~15:30
定員:20名様程度
申し込み方法:メール( pcaudio@oliospec.com )または
お電話 03-3526-5777 にてお申し込み下さい。
※先着順にて受付とさせて頂きます。(定員になり次第受付終了とさせて頂きます)

皆様のご参加を心よりお待ち致しております。
======================================

※無料イベントです。


本日、ハイレゾに対応した無料の音楽再生ソフト HYSOLID(ハイソリッド) をリリースしました。

HYSOLIDはWindows PCがオーディオのネットワークプレーヤーになるソフトです。専用のスマホアプリから快適に操作できます。再生には、USB-DAC(デジタル信号をアナログに変換するオーディオ装置)が必要です。

 

hysolid.png

 

特徴はPCの電源ONだけでスマホアプリから操作できること。

この特徴は利便性のメリットも大きいのですが狙ったのは音質です。Windowsにサインインすると多数のソフトが起動するため多くのノイズが発生します。そこでHYSOLIDはWindowsにサインインしなくても動作する設計で、不要なノイズ発生を回避できるようにしました。

hysolid2.PNG

HYSOLIDの設計は、全体に渡って音質最優先を貫いています。例えばスマホからPCを操作するときの接続方式は、普通ならHTTPプロトコルを使い、SOAPやRESTなどの方式を採用します。ところがHYSOLIDはPCの負荷を最小限にするために、低水準なソケットライブラリを使い、オリジナルのプロトコルで双方向の通信を実装しました。

今回は収益のことを一旦忘れて、ソフトの価値を追求しました。これはまじめに仕事に取り組んだ結果なのですが、もし誰かから「製品と言うより、自分が欲しいソフトを作ったのではないか」と言われたら、そのとおりかもしれないです。


シンガポール

今年の夏休みはシンガポールに行ってきました。
驚くほど近代的でした。街はよく整備されていてきれい。しかも南国とは思えないほど快適でした。


sin1.JPG

今回の旅行のメインは地上200mの高さにある有名なプール。
ゆっくり平泳ぎすると、息継ぎの度に素晴らしい景色が見えます。
深いプールではないので普通に立てばいいのですが、趣味スイマーとしてはやはり泳がないと。

sin2.JPG

この写真だと、何か間違うと落ちてしまいそうに見えますよね。
このように位置によっては端が見えない作りのプールをインフィニティプールと呼ぶそうです。


現地のレストランでチリクラブを食べました。

sin3.JPG

どうしても素手を使うので大変な感じ。満足度は高いです。
1.5kgで105シンガポールドル。割高な気もしますが食べ物の名物は外せないです。。。


Apple Watch

Apple Watch、発売日に入手できました!

選んだのはスポーツタイプのグリーンです。スーツには似合わないでしょうが、カジュアルなら良い感じですね。

IMG_2857s.JPG

(写真は、WatchにiPhoneのカメラがとらえた画像を表示させているところ。面白いですよね。)

さっそく触ってみたのですが、画面は予想以上に見やすく、操作性も良好でした。

チェーン店向けアプリだと簡単なカタログを表示したり、会員情報を表示したりといった機能を用意すると良さそうですよね。iBeaconと連携しても面白い物が作れるかもしれません。

このApple Watchの対応は、新規のテクノロジと言うよりはiPhoneアプリの延長で行ける上、実現する機能も必然的にシンプル。だから比較的短期間で開発できます。対応アプリはかなりの勢いで増えそうです。


プロフィール

山口達雄
山口達雄

SIerの社長ブログへようこそ。コンサルティングや設計も参加する現役技術者です。

SIerとは:「エスアイヤー」と読みます。情報システム開発において、コンサルティングから設計・開発・保守まで一貫したサービスを個別企業のお客様に提供する会社のことです。


カテゴリ