1.每天挤地铁内心是疲惫的,所以放首灵魂慢歌,静静,思考今天又哪些任务,以及怎么美美的过完这一天,是一件幸福的事情。
2.一个天才的程序员,能在无知的情况下,总能想出一个解决问题的方案!一个笨的程序员,总是偶尔才能想出问题的解决方案。一个聪明的程序员会记住基础知识,和别人用过的技术性知识,然后在关键时刻总能借鉴并运用。勤于记住“聪明”的方案。
3.每次写完代码都要回头看看自己的代码,有哪些可以改进的。实现学习闭环。
4.最近发现一个的技术栈就跟计算机的内存一样,我们总希望脑袋里面装的东西的价值达到最大(最大利用率)。
瞬间就联想到计算机的内存的置换算法:MRL(most recently used 最近最常使用的)和LRU(least recently used 最近用的最少的)。
有时候用的比较多的,未必是对我们有用,比如以前用c++开发,现在用Java开发。所以优先考虑最近使用。
再回来分析内存,内存相对于cache 来说,还是充分。所以内存要解决的问题是怎么腾出空间,换句话,就是要把价值不高的给踢出内存。
内存瞬间相对于cache是挺大的,但是他仍然装不下最近使用的所有内容(假定4个小时内被使用的,都定义为最近使用的,这里我们按照时间排序,就可以找出那些事最近使用的)。这时候我们需要按照使用的次数来再一次排序。把使用次数较少的给踢出去。——LRU算法就这样完成了。
而对于cache,这个昂贵的小盒子。我们要考虑不是要踢谁出去了,而是要请谁进来。我们仍然按照时间排序,找出最近使用的。然后再按照使用次数,把使用次数最高的请进来。——-MRU算法。
2种算法都是基于一个假设“经常被用的都是好的”。这是偏见,生活中无处不在,学习成绩好的都是聪明人,长得帅的都是好男人,矮子搓都是屌丝,高富都是帅比。要颠覆这些观念,就要让这些规律反过来,毕竟观念来自于实践。
2种算法都是针对实际需要来绝对要MRU还是LRU。
如果空间比较大的,但是又不想浪费的,比如大公司,就采用LRU,将浑水摸鱼的踢出去。
而像高级实验室或者是白宫(小公司的话,不属于上述两种情况,我只是做客观分析,好残酷)这种宝贵的资源,只能采用MRL算法了。
5.相关的组件的版本要根据发行日期来选版本,否则会出现版本相互不兼容,然后报奇怪的BUG,万一遇到了就只能一步一步去debug了