【SIer勤務でもできる】アプリ開発やってみた 第五話

プログラミングシーシャ

夜を徹したノマドワーク 〜会話とデータベースの設計〜

From 2019/9/13 Fri. to 2019/9/16 Mon.

だらだらと時は過ぎていき、お盆が過ぎて秋の夜長の季節が到来していた。

データベースが動くようになったことで、データベースの中身であるテーブル設計と作成を行う必要が出てきたが、一向に進捗はなかった。事態を打開するため、金曜日の夜に我々は再び新宿に集合した。今回は、酒に流されずノマドな働き方を体現するため、コワーキングスペースなるオシャレな場所で集中して作業することを目指した。選んだのはTSUTAYA新宿店に併設されたTSUTAYA BOOK APARTMENT。幸運にも、その週末は秋の3連休だった。

テーブル設計にあたっては、今回扱う「割り勘」という流れについて、どのようなデータがどのような関係で生まれるかを整理していく必要ある。例えば、買い物で各自が支払った金額は当然だが、支払ったのは誰なのか、支払った人はどのLINEグループに属しているのか、買い物で支払った金額に応じて、各自がいくら誰に支払い、いくら誰からもらえるのか。こういった情報が芋づる式に出てくる。これらデータを整理した上で、実際にどのようなテーブルを作成するかを決める必要がある。

データベース

さらに、二つの決めるべきポイントが見えてきた。実際にLINEBotとやり取りする会話の流れや、その中で金額などの必要な情報を入力させる方法の検討と、入力された項目を実際の割り勘や精算のために計算するロジックの検討である。実際にどのようなデータが必要か、会話の流れがどうなるか紙に書き出しながら考えていくと、会話の始まりと終わりをどのようにシステム側に伝えるかといったイベントの制御や、誰かがまとめて支払い、支払金額と価格に差分があるのでお釣りを受け取ったような場合の計算ロジックがややこしくなることが今後の課題となりそうだった。

 

会話

特に、会話の流れに関しては、複数の会話が同時進行した場合や、ある支払についての会話が続いている最中に新しい会話をしようとした場合どのように制御するのがよいかを、LINEBot側のAPIで提供されているユーザーを管理する仕組みやUI要素を調べた上で考える必要がある

今週末は三連休という浮かれとこれまでの進捗のなさから議論は白熱し、気づけば朝になっていた。

この徹夜の作業により、これまで各自がバラバラにイメージしていた支払~精算の流れが共有、可視化されたことで、実際のデータベースの作成と、LINEを通じて割り勘計算する機能の中身の検討を始めることができた。会話の流れと精算のロジックに応じて、データベースで用意しておくテーブルの項目設計をその後の連休中に決めることができた。

会話と実際の割り勘の流れは「取引機能」「削除機能」「変更機能」「履歴機能」の4機能に細分化して作成することにした。LINEBotとの会話の始まりと終わりを管理したり、やり取りの内容を一時的に保管するため、通常のWebアプリで情報を持ち回る仕組みであるセッションをLINEのAPIの中でどのように使えるかがキーとなるように思われた。

コワーキングスペースでの進捗に自信を深めた我々は、旅好きなこともあって開発合宿への期待が高まっていた。新たに見えてきた課題を解決する突破口が求められていた。

© 2021 OMUL EXPO Powered by AFFINGER5