【发布时间】:2019-04-28 08:51:47
【问题描述】:
在许多应用程序中,我们需要记录统计指标,例如 hist、guage 等。这会污染业务逻辑。例如:
boolean buy(int id) {
metrics.increament(); // for qps maybe..
int remain = checkRemain();
metrics.hist(remain); // log remain amount..
if (remain > 0)
return true;
else
return false;
}
其中,我希望,我只能写下商业逻辑,例如:
boolean buy(int id) {
int remain = checkRemain();
if (remain > 0)
return true;
else
return false;
}
但我也可以获得指标。
我的问题是:分离业务逻辑和指标日志的最佳做法是什么?
我知道Aspect--Oriented Programming可以解决这个问题,我还有其他选择吗?
【问题讨论】:
-
为什么不想选择AOP?
-
您为什么关心更新业务逻辑中的指标?
标签: java spring design-patterns