arakawatomonori / kyaru

0 stars 4 forks source link

バイトの職種を指定する機能がほしい #72

Open yuiseki opened 5 years ago

yuiseki commented 5 years ago

職種によって時給が変わるべき

ao-spirogyra commented 5 years ago

誤って自分をassignしたのかと思ったらassignされていた

ao-spirogyra commented 5 years ago

これ例えば workみたいな名前でクラス作って継承するのと各職種の情報をjsonでしまっておくのとだと後々どう変わってくるんですか?

ao-spirogyra commented 5 years ago
class Work
{
 public string type;
 public int money;
 public string time;
 public int stress
}
class kombini : Work
{
 public ...
}

みたいなのと

{"kombini":
 {"money_h":1000,
 "time":5,
 "stress":2.0
 },
"ohuro":
 {
 }
}

みたいなの

ao-spirogyra commented 5 years ago

class Work { public string type; public int money; public string time; public int stress } class kombini : Work { public ... } みたいなのと {"kombini": {"money_h":1000, "time":5, "stress":2.0 }, "ohuro": { } } みたいなの

これ書いてて気づきましたが同じ属性?しか出てこないならjsonで良さそう?

yuiseki commented 5 years ago

上の例ようにクラスベースで作るべきですね。 Rubyっぽくかくと

lib/kyaru/works/work.rb

# AbstractWorkというクラスを定義する
# Abstract = 抽象的な
class AbstractWork
  # クラス変数のデフォルト値
  # 名前
  @name = "absctact"
  # 時給
  @hourly_wage = 1000
  # 勤務時間
  @working_hours = 1
  # ストレス
  @stress_per_hour = 1.0
  class << self
    attr_accessor :name, :hourly_wage, :working_hours, :stress_per_hour

    def inherited(klass)
      klass.name = @name
      klass.hourly_wage = @hourly_wage
      klass.working_hours = @working_hours
      klass.stress_per_hour = @stress_per_hour
    end
end

とかやってAbstractWorkを定義しておいて

lib/kyaru/works/comvinience_storerb

# AbstractWorkを継承して具体的なクラスを定義する
class ConvenienceStore < AbstractWork
  @name = "コンビニバイト"
  @hourly_wage = 1010
  @working_hours = 6
  @stress_per_hour = 1.4
end
yuiseki commented 5 years ago

問題あったら私や高野さんがベストプラクティス教えるので、とりあえずこれでどうだろうという気持ちでコード書いてPullRequest立てちゃってOKです

ao-spirogyra commented 5 years ago

了解です