【问题标题】:What is best practice for handling application configuration?处理应用程序配置的最佳实践是什么?
【发布时间】:2012-03-22 19:15:00
【问题描述】:

我将在我的应用程序上下文中提出这个问题,但我认为它通常具有更广泛的配置范围。我的应用程序允许公司跟踪其员工的缺勤和假期。好处之一是它会根据雇主设定的规则自动增加一个人的假期权利。目的是让公司在:

A) 每年自动将员工的权利增加一定天数,例如每年 1 月 1 日,假期权利增加 1 天;或

B) 员工的权利会根据服务年限而增加,例如工作 2 年后,权利增加 2 天

实现此功能的最佳方式是什么?第一个选项实现起来相当简单,因为我跟踪了每个休假年的开始/结束日期,并且每个员工的增量可以存储为整数。

我想我正在寻找存储所选方法的最佳实践解决方案;如何以可扩展的格式存储相关选项和所有选项,以便我以后添加更多方法。

我正在使用 Ruby on Rails,但这个问题可能与其他语言有关。

谢谢

罗宾

【问题讨论】:

  • 雇主可以为不同的员工制定不同的规则吗?或者它只是一个不时变化的每个人的规则?
  • 我想说一条适用于所有员工的规则。每个员工的不同规则是我不想处理的极端情况。

标签: ruby-on-rails configuration settings


【解决方案1】:

如何:将余额存储在 Employee 中。员工属于公司。时机成熟时,使用类似的东西来设置平衡

self.company.set_balance(self.balance)

因此,您的员工评估员会检查所有员工并要求公司重新计算其余额。

如果是全局策略,那么您不需要告诉 Company 员工是谁,但如果您需要有特殊情况,您可以将 Employee 传递给 set_balance 方法,以便获得更多关于正在重新计算员工。

至于Compay如何增加天数的策略,我会放在一个模型中,以限制策略改变时所需的代码更改。

如果这是一个简单的规则,也许只是将它保存在一个键/值对中:

“holiday_entitlement”/“平” 要么 “holiday_entitlement”/“服务年限”

我不会将值(1 或 2)保留在数据库中,以避免聪明的员工侵入数据库并将“有利”值放入其中 :)

【讨论】:

    猜你喜欢
    • 2010-10-31
    • 2021-01-09
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 2011-04-21
    • 2011-11-28
    相关资源
    最近更新 更多