Separate Side Effects from Logic
Separate Side Effects from Logic — Chinese original prompt
这个函数既算价格、又写数据库、还发消息。请把它拆成 [纯计算部分] 与 [副作用执行部分]:纯函数只收参数只返结果,副作用集中到一个薄壳里。给出两段代码和调用处的改法,并说明拆分后哪些原来「顺手」的一致性保证会消失、需要在哪里补回来。
Site original
Chinese original
How to use
拆完检查异常路径:原来同一函数里的事务边界,现在可能需要显式包一层。