08 2015 档案
摘要:一、缓存穿透我们在项目中使用缓存通常都是APP先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回。这个时候如果我们查询的某一个数据在缓存中一直不存在,就会造成每一次请求都查询DB,这样缓存就失去了意义,在流量大时,可能DB就挂掉了。这个问题其实经常遇到,...
阅读全文
摘要:我非常确定,作为开发人员我们都喜爱技术文档。我们喜欢阅读文档、写文档,更不用说维护文档了,我简直爱死它了!我也知道,每次你创建一个类或者一个方法,你都会想到要为此写文档。我也很确定你很享受于写文档,就像你喜欢偶尔美味的汉堡一样。但是有时候,只是有时候,你会想要松懈一下,也许这次就跳过文档部分。不幸的...
阅读全文
摘要:前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后,除了在订单表插入一条记录...
阅读全文
摘要:2011年底,浙江公司分管支撑的杨剑宇副总在支撑内部召集了一次头脑风暴,要求部门里各位主管和骨干轮流发言,不讲成绩,只讲问题和思路,一圈人一个一个轮流讲过来: l 负责开发的主管说现在业务部门的需求经常考虑不清楚,而上线的时间压力很大,风险也很大,匆忙上线很容易把现有的业务弄乱,同时,上线后往往要在...
阅读全文
摘要:有时候我们说某个语言具有很强的动态性,有时候我们会区分动态和静态的不同技术与作法。我们朗朗上口动态绑定(dynamic binding)、动态链接(dynamic linking)、动态加载(dynamic loading)等。然而“动态”一词其实没有绝对而普遍适用的严格定义,有时候甚至像对象导向当...
阅读全文
摘要:原则:如果一个版本需要新增字段或新增状态,程序必须考虑兼容历史旧数据,即程序正确运行的前提不能依赖历史的完整维护正确实施的实践: 1 如果一个版本涉及新增字段或新增状态,必须在设计阶段给出程序兼容方案及历史数据维护脚本。 2 正确发版顺序为:先执行ddl脚本(如果新增字段),再发布应...
阅读全文
摘要:(1)新创建的分支Branch命名以DEV_yyyyMMdd的命名方式,如DEV_20150804。(2)新的TAG分为开发dev、回归reg、修复hot三种,命名方式如:dev_20150804_01(3)测试过程中可以多次移交给QA进行测试,打dev的TAG。(4)当进入回归阶段,将dev分支m...
阅读全文

浙公网安备 33010602011771号