工作第十五周:上线前的惊悚

新增单词

thus far 到目前为止
nondestructive 无损的
deliberately 故意的
recursive 递归的,回归的
bulk 大量的
comprise 包含
demonstrated 论证
proportional to 成正比
be taken into account 被考虑到
ameliorate 改良
threshold 阈值
bin 箱子,容器
short circuit 短路
shift operation 位运算
preserve 保存,保持

这一周

1.最惊险的一件事

上线前 prd 环境测试,测试给自信满满的我提了个 支付请求的 bug,我还以为是网络问题,结果测试了半天都不能成功,奇了怪了。

别人说我代码是不是有问题我还不服,怎么可能?测试环境下明明没问题!

后来检查代码时发现,我居然把支付域名写死忘改了!我的天!

感谢测试,我的救命恩人啊,这要是上线了我就 GG了。 记得之前有个同事上线忘了改一个信息,导致被领导批评,没几天就辞职了…

写下来警告自己:

域名、配置信息记得写活,根据是否生产配置,不要写死,不然上线忘了改,就完蛋了!!

2.偶然看到大 V 阮一峰前辈写了篇软文,引起争论

文章大概内容就是当前上大学没什么用,不如上网校好好学个技术。

没有歪曲,就是这么赤裸裸 “读书无用论”,个人是极其不赞同的。毕竟在大学里有很多尝试机会,虽然很多事情没有为我带来经济收益,但是我却毫不后悔,借用《增长黑客》里的一段话:

总的来说,一路野蛮生长,跌跌撞撞,体内吸收了不少“混乱”的能量,然而,那些在当初看来任性妄为、无足轻重的经历,终将在某日连点成线,开花结果。

但是也有人支持,比如 R,大学调剂到不喜欢的专业,专业知识非但不能吸引他投入精力,反而让他因为每天要上这些课、写作业、考试,感到折磨,那种不喜欢却不得不做的感觉想想都痛苦。R 不是一个个例,现在大学转专业之难,不知道埋没了多少人才,唉。

但是总的来说,大学也好过直接读在线教育吧,毕竟学校还能和很多人打交道,也有更多机会,不至于那么早一条道走到黑。

评论亮点很多,摘录 1 个激励自己:

不懂体系结构(含缓存和指令集调度等知识)、网络原理、操作系统(文件系统、进程调度等)、并行计算(算法),以及编译原理,你给我试试精通 C++(举一反三,知道什么样的写法编译器能优化掉,以及 boost 之类的模板元编程能够掌握),并写出高效的计算/IO密集型程序,甚至是分布式的程序来?

原文在这里:网络文凭,你要不要

3.深刻理解了“君子之交淡如水,小人之交甘若醴”

我是一个不知分寸的人,过去总是开玩笑开过头,惹别人生气。现在好些了,却还忍不住过于推心置腹。

在学校还好,利益冲突少一些,走上社会发现的确没以前那么单纯。

跟同事、新朋友,关系再好也要控制度,因为你们之间是有一些冲突的,比如薪资、比如级别、或者其他什么心理冲突。真正长久、稳定的关系,应该是保持距离的。

恩宜自淡而浓,先浓后淡者,人忘其惠;

威宜自严而宽,先宽后严者,人怨其酷。

技术收获

1.当多个依赖库引用同一个库,但是版本不一致时,可以选择去除其中的某个。

这里写图片描述

比如 glide 中引用的 volley 与项目中引用的 volley 版本不一致,可以在 gradle 中引用时 exclude glide 中的 volley :

compile ("com.github.bumptech.glide:volley-integration:1.4.0"){
    exclude module: 'library'
}

2.git tag 的删除命令,记不住啊 - -

删除本地tag

git tag -d tagname

用push, 删除远程tag

git push origin :refs/tags/tagname

3.指令重排序

一般来说,处理器为了提高程序运行效率,可能会对输入代码进行优化,它不保证程序中各个语句的执行先后顺序同代码中的顺序一致,但是它会保证程序最终执行结果和代码顺序执行的结果是一致的。

但是要注意,虽然处理器会对指令进行重排序,但是它会保证程序最终结果会和代码顺序执行结果相同,因为处理器在进行重排序时是会考虑指令之间的数据依赖性,如果一个指令Instruction 2必须用到Instruction 1的结果,那么处理器会保证Instruction 1会在Instruction 2之前执行。

指令重排序不会影响单个线程的执行,但是会影响到线程并发执行的正确性。

4.按位运算符 shift/bitwise operation

左移
    <<,低位 补 0
右移
    >>,有符号,正数高位补 0;负数高位补 1
    >>>,无符号,直接补 0

5.知乎看到个算法题,记录一下

有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药。你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药?

https://www.zhihu.com/question/19676641

法一

决策树模型

二分的本质在于,每次处理,都把问题规模降解为原来的1/2,这才是问题得以解决的关键。

在命运之神的全力狙击下,依然肯定能按期交付的方法,才是可控的方法,才是够理想的方法。

如果你学过算法,可以知道这也是一种叫“随机化算法思想”的奥妙。而且和算法研究中,关注于“最坏情况运行时间”的研究原则一致。所以二分。

法二

1,把1000瓶标号:1,2,3,4,5,6…1000.
2,所有老鼠排列在一起组成一个2进制队列: 0000000000
0代表不喝,1代表喝
3,0000000001代表第一瓶水被喝情况
0000000010代表第二瓶水被喝情况
0000000011代表第三瓶水被喝情况
0000000100代表第四瓶水被喝情况

1111101000代表第1000瓶水被喝情况
4,第7天,喝了毒药的老鼠都死了,那个二进制队列转为为十进制就是毒药的标号。
比如第3只老鼠死亡,其他老鼠没死,队列为0000000100,第四瓶水有毒。
第1,5,6,8老鼠死亡,其他没死,队列为0010110001,第177瓶水有毒。

链接:https://www.zhihu.com/question/19676641/answer/14123096
来源:知乎

总结

本来还觉得这周没什么收获,写下来发现还是有一点点内容的,嘿嘿。

最大的遗憾就是拖延啊,本来计划一周把 Map 几个关键实现类的源码分析都写完,结果一拖再拖,完成了不到三分之一。:-(

昨日之日不可留,继续加油吧!

posted on 2016-10-31 19:44  疯子123  阅读(174)  评论(0编辑  收藏  举报

导航