小编Cod*_*Boy的帖子

在Sqlalchemy中,使用Base和Table定义表有何不同

我知道我可以使用Table定义表:

user = Table('user', metadata,
    Column('user_id', Integer, primary_key = True),
)
Run Code Online (Sandbox Code Playgroud)

并使用Base:

Base = declarative_base()    
class User(Base):
        __tablename__ = 'user'
        user_id= Column(Integer, primary_key = True)
Run Code Online (Sandbox Code Playgroud)

但是有什么不同???

sqlalchemy

7
推荐指数
1
解决办法
331
查看次数

如何分离业务逻辑和指标日志?

在许多应用程序中,我们需要记录统计数据指标,例如历史记录,指标等。这将污染业务逻辑。例如:

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;
}
Run Code Online (Sandbox Code Playgroud)

我希望我只能写下biz逻辑,例如:

boolean buy(int id) {
  int remain = checkRemain();
  if (remain > 0)
    return true;
  else
    return false;
}
Run Code Online (Sandbox Code Playgroud)

但是我也可以获得指标。

我的问题是:分离业务逻辑和指标日志的最佳实践是什么?

我知道面向方面的编程可以解决这个问题,我还有其他选择吗?

java spring design-patterns

5
推荐指数
1
解决办法
105
查看次数

+ =操作在scala地图中真正做了什么?

如代码所示:

val map = scala.collection.mutable.Map[Int, Int]().withDefaultValue(0)
println(map(1))
map(1) = 10
println(map(1))
map(1) += 10
println(map(1))
Run Code Online (Sandbox Code Playgroud)

和输出:

0
10
20
Run Code Online (Sandbox Code Playgroud)

但是,在我看来,"map(1)+ = 10"在java中是无效的,甚至是有效的,这一行之后的结果map(1)应该是10.

所以为什么???以及"+ ="在地图中的确切操作是什么?

scala

4
推荐指数
1
解决办法
96
查看次数

标签 统计

design-patterns ×1

java ×1

scala ×1

spring ×1

sqlalchemy ×1