一通りC#の基礎を学んだので分解したタスクのコードを確認し、割り振った時間が適切であるか確認していきます。
分解した下記タスクが含まれるコードを検証していきます。
1.クライアント側にもデータベースにmaster_login_itemテーブルを作成するためMasterLoginItemクラスを作成し、CreatTable関数を記述する
2.サーバーから送られてくるログイン商品のマスターデータを保存するために、MasterLoginItemクラスにSet関数を追記。
所要時間合計:0.75日分(6時間分)
該当コード
//ログインボーナス保存MasterLoginItem.cs
using System;
using System.Collections.Generic;
[Serializable]
public class MasterLoginItemModel
{
public int login_day;
public int item_type;
public int item_count;
}
public static class MasterLoginItem
{
public static void CreateTable()
{
string query = “create table if not exists master_login_item(login_day int, item_type int , item_count int, primary key(login_day))”;
SqliteDatabase sqlDB=new SqliteDatabase(“Service.db”)
sqlDB.ExecuteQuery(query);
}
public static void Set(MasterLoginModel[])master_login_item_model_list)
{
foreach(MasterLoginItemModel masterLoginItemModel in master_login_item_model_list )
{
string query =“insert or replace into master_login_item(login_day, item_type, item_count)
values(“+masterLoginItemModel.login_day+”,”+masterLoginItemModel.item_type+”,”+masterLoginItemModel.item_count+”)
”;
SqliteDatabase sqlDB = new SqliteDatabase(“Service.db”);
sqlDB.ExecuteNonQuery(query);
}
}
}
データベースと連動するqueryコードは現在の私には理解できませんが、行なっていることは、クライアント側のデータベースに履歴がない場合、新しいオブジェクトの作成と存在しているメソッド.ExecuteQueryなどを呼び出し実行すること、あとはforeachで新たにテーブルの値として設定したい配列の値を順番にSetしていく流れで書かれているように思えます。
データベースのプログラムとC#の連動を理解している一般的なエンジニアなら6時間もかからないで終われる内容のように思われるので、タスク分解の作業量は妥当な計測として進めていこうと思います。
次回からは考えられる限りのZEPETO側のタスクを分解していきます。