《异类》一书告诉我们,天才不是天生的,而是练出来的。
「练」,并非随意的练习,是刻意的练习(deliberate practice)。在体育、音乐等领域,刻意练习帮助人们快速成长为「天才」。
同样,软件设计和代码设计的能力也需要刻意的练习。不可否认,大家在工作的实际项目中能够不停地得到提升,并且还能够得到前辈的指导。但事实上,这样的提升还不够快,因为:
所 · 以
我们就要……
刻意练习
朋友们如有兴趣,可以试验一下这个题目: ThoughtWorks面试题:收银机 & 缓存图
《异类》一书告诉我们,天才不是天生的,而是练出来的。
「练」,并非随意的练习,是刻意的练习(deliberate practice)。在体育、音乐等领域,刻意练习帮助人们快速成长为「天才」。
同样,软件设计和代码设计的能力也需要刻意的练习。不可否认,大家在工作的实际项目中能够不停地得到提升,并且还能够得到前辈的指导。但事实上,这样的提升还不够快,因为:
所 · 以
我们就要……
刻意练习
朋友们如有兴趣,可以试验一下这个题目: ThoughtWorks面试题:收银机 & 缓存图
客户端
服务端
Talk is cheap, show me the code!
我想这句话充分表达了代码的重要性,而我们大部分的代码就是函数,整洁的函数优雅、高效,让人赏心悦目!它能够很容易的被修改、应该讲述事实,不引人猜测。
缓存分两类: 数据缓存和结果缓存。
怎么建立一套高效智能的缓存存取更新响应机制? 我们立即来解答 🙂
举例1: 帖子结果数据=帖子+圈子+用户+回复,假设帖子结果数据为要缓存的内容,那么帖子、圈子、用户、回复都是帖子结果数据的依赖,它们一旦改变则帖子结果数据就立即失效。但是,千万记住这里的依赖不是依赖键的意思。我们所讲的依赖键只针对单表的设计,不涉及到join。所以,在缓存中应该有数据缓存4个:帖子原表缓存、圈子原表缓存、用户原表缓存、回复原表缓存。然后,再重新组合出帖子结果数据,这时,可以将结果数据作为结果缓存存储。
举例2: 我们现在有两张通用表:一张为通用配置表,一张为通用数据表。通用数据表中有我们能够想到的所有通用字段,字段数量超过30个,而通用配置表则记录每个业务需要用到通用数据中的哪些字段。一个业务一条通用配置记录,对应着多条通用数据记录。到时候一些简单的逻辑,我们就不用建表,直接走通用数据。这个时候,我们会发现如果缓存通用数据,那么依赖键的设置单纯的表名是不够的,要使用表名+配置ID来关联。
案例背景:请求动画详细信息,信息包括:动画表所有字段、动画分类表名称字段。
案例设计:为动画表、动画分类表依次建立数据缓存,然后再组合内容成目标动画详细信息。
场景模拟:
数据缓存实例:动画表(案例以动画表为例,动画分类表类同)
一、首次获取:
(1)缓存中无依赖。生成依赖键并赋值当前时间戮。
Redis Key | Redis Value |
---|---|
media_video_tb | 201701010000 |
(2)缓存中无缓存。生成缓存并同步依赖键值内容。
Redis Key | Redis Value |
---|---|
3d2843a3064d296300773e4d320801cc | [{id:1},{id:2}] |
3d2843a3064d296300773e4d320801cc_Time | 201701010000 |
二、再次获取:
(-)判断本SQL语句对应的缓存时间键与依赖键值是否相同。
三、后台更新:
(-)当后台管理进行动画表的增删改操作时,程序代码进行自身依赖键的删除。那么,下一次请求动画表时将会引发缓存过期重新查询数据库。
Redis Key | Redis Value |
---|---|
media_video_tb | null |
哈佛大学教授 威廉·詹姆斯 有做过一项研究表明,在缺乏激励的环境中,人的潜能只发挥20-30%,而在激励良好的环境中,人的潜能能发挥80-90%。对于士气高昂的团队来说,没有什么是不可能的;对于士气低落的团队来说,一棵稻草就有可能压垮整个团队!而一个只会执行指令的团队注定是一个平庸的团队,停止抱怨你的团队、去彻底激发你的团队吧!
以真实的业务场景为出发点,去考量和认知(技术)。金榕(阿里巴巴集团)
今天看到郑芸推荐的 #李翔商业内参|向技术的长征# ,阿里巴巴在14/09/09在纽约证交所上市之后,便成立iDST(数据科学与技术研究院institute of Data Science&Technologies),招纳了一批技术先知去推进数据科技。
马云把下一个时代命名为DT时代
,但在整个集团看来,iDST从未在公司工作过,他们是否能够理解公司正在做的事情,并且用技术来帮助业务团队实现目标,尤未可知。“科技并不是算算数学,并不是只要把点击率提高,它想要能够把商业模型做好”。
科技推动业务的难度案例:
用算法来提升聚划算的GMV(商品交易总额)
在技术上并不困难。如果想要提升交易量,那么,只需要把价格低的商品排列到搜索结果和推荐选项的前列。低价总是可以刺激购买。但是,如果在排序和推荐上,出现的总是更低价的商品,这就意味着网站吸引来的目标用户群,其收入水平在不断降低,“用户从二三线城市一直掉到四五线城市,整个内涵完全变了”。不过,如果要提高优质高价产品在推荐和排序中的权重,交易量和成交总额又会下跌。
All life is Problem-Solving。
想要游刃有余地面对复杂的工作生活,就必须让自己优秀的Problem-Solver。究竟如何才能成为真正的Problem-Solver呢?在我看来,需要以下三方面能力:
命由天定,运在人造。
大家知道昨晚中国队VS韩国队,国足胜了。当时,正在和老板还有兄弟姐妹们吃饭,老板说我们来赌一把,压韩国赢3赔1,压中国赢1赔3,压平1赔4。这时,如果是你,会怎么选呢?
我笃定至少中国平,所以我的策略是“压中国赢100,压平100”,结果不出所料,赚了老板100块,一开心就发红包大家分了。选择的原因有三:(1)中国地界、政治问题;(2)概率优势,2/3概率至少赢100;(3)群众心理,压韩国赢底金300才能赢100,若输则300全输,现场近9成伪球迷且女生居多,定不会冒险求韩胜。输的情况只有韩赢我才会输,而且是陪大家一起输,无所谓也开心。
其实想说,上面的都是歪理,但结果是赢了,运气也是实力的一种。做人有多大气,就会有多成功。因为胸怀,才是成功者的标志。记住一句话:越努力,越幸运。
近期评论