作者:方健
(转载请注明出处)
有时候代码写了一大堆。发现是基本思路不清晰。 越来越感到代码抽象的重要。

没找到专门讲这个的资料。自己摸索了几点。
1. 处理无状态的计算 a=f(b,c) 用bc计算出a
2. 改变状态 s(session,key)=a 改变Sesssion中key的状态为a
3. 维护状态的生命周期 s.start=when s.end=when 状态生命周期的开始和结束

例如用上述语言描述微信网页登陆的过程:

code=f(scan) //扫描二维码得到code
unionid=f(code,appid) //用code和appid取得用户id
s(session,uid)=unionid  //把unionid保存到session中
unionid=f(session)  //从session中取出unionid
user=f(unionid,db-user) //根据id从数据库取得用户详细信息

session.start=用户登陆    session.end=用户登出或者过期

参考:
https://en.wikipedia.org/wiki/Literate_programming