工作第十六七周:生活这么繁琐,我们还要努力爱她
工作2016-11-14
一眨眼又是两周,上周周末有些事,耽搁了总结,只好拖到这周一起了。
我跟肉肉在一起也有 5 年 4 个多月了,没毕业前双方家里睁一只眼闭一只眼,过得倒也开心、自在。毕业工作后,不能算早恋了,两个人关系也要拿上台面谈谈。
肉肉从小娇生惯养,掌上明珠,见识比我多,脾气也不小,但对我很好,家里一顿饭没做过,跟我在一起后也开始做饭。对我爸爸妈妈也比较热情,挺受喜欢的。
我虽然家境一般,长的一般,工作一般,但好在诚实可靠,有点上进心,脸皮厚不怕肉肉欺负。所以叔叔阿姨不讨厌我,对我俩的关系也没什么意见。
关系确定了接下来就要商量订婚、结婚大事了,结果双方父母都没什么经验,突然要商量这个,七大姑八大姨的咨询,这下子,我的电话一个接一个,这个说东那个说西,整的我心力憔悴。
本来觉得订婚是很简单的一件事,现在看来我还是 too naive。
双方家长考虑问题角度不同导致侧重点不同,我和肉肉在中间周转、传话,就像风箱里的耗子。折腾了好一阵子,才先大概确定下来。
My god, 真累。
上周业务上有个需求,需要自定义一个组件,本来一开始打算自己写,结果由于我之前开始的 Java 集合框架源码分析系列 拓展内容太多,进度比计划慢了许多,从而导致没有时间自己写。
然后我就从 GitHub 上找了一个现成的,大概了解后就直接拿来用了。
现在想想心里还是有些鄙视自己的,没有自己写就算了,不好好看清楚源码确定没问题就直接用人家的,这不是我想要的结果。
希望下周加速度搞完需求,仔仔细细地把这个组件代码看看,了解清楚吧。
哈哈,本来双十一没打算买什么,陪肉肉逛逛就睡了。结果 JD Mac 搞活动,肉肉看我那么想要,居然同意了!
作为一名小屌丝,能有一本 Mac 是我梦想了许久的事情。
虽然是分期,拿我每个月零用钱的一部分还,但我当时脑子里只有 Mac,管不了那么多了哈哈。
Mac 除了装逼好,用斌哥的话说,还更“专业”。
Windows 第一用户是办公用户和家庭用户,界面化操作封装了太多东西。
Linux 又太“专业”,底层暴露太多,缺少优秀的 UI 界面软件。
而 Mac 则兼具两者优点。
斌哥的话,听着好像很有道理的样子哈哈。
在 Facebook 上市当天,创始人扎克伯格的公开信中有这么一段关于 黑客文化 的话:
黑客文化是一种持续改进和衍变创新的做事方法。黑客们认为,优化无止境,产品无完美。当有人说无法再改动一丝一毫,或是满足于现状时,黑客们却当着别人的面,情不自禁地动手修改。
黑客们迅速发布小规模更新,并从中汲取经验教训,而不是试图一蹴而就,一劳永逸,他们希望通过长久努力打造出最佳服务。为此,我们建立了一个测试框架,无论何时均可测试数千个版本的 Facebook。我们的办公室墙上写着“完成胜于完美”(Done is better than perfect),以提醒大家按时“交付产品”。
“黑客”也意味着一种亲身实践、积极进取的天然纪律。黑客们不会召开长达数天的马拉松会议,以讨论某个创意是否可行,或是试图寻找最佳方法。他们会制作原型产品,看看是否行得通。在 Facebook的办公室里,黑客们的口头禅是:“代码胜于雄辩”(Code Wins Arguments)。
“黑客”还意味着极度开放和精英为王。黑客们认为,最优秀的创意及其实现始终掌控一切——而不是由最善于鼓吹创意或是权力最大的人掌控一切。
你不需要等到够优秀才开始,你应该立即开始去变得优秀。
1.为什么 ART 中不需要分包 multidex?
要理解这个只需搞清楚,为什么有最大方法限制呢?
5.0 以前的 dalvik 虚拟机用一个链表保存 每个类的 id,而这个链表的长度是 short 类型,由于 short 占两个字节,数据范围为 -2^15 到 2^15(-32768~32767),也就是总共 65536 个数。
新版本的 Android 系统中修复了这个问题, 但是我们仍然需要对低版本的 Android 系统做兼容.
解决方法有如下几个:
http://blog.csdn.net/j08006869966/article/details/51780676
https://segmentfault.com/a/1190000004053072
2.Android studio 全局替换:
项目右键 – Replace in path 选项
相当 Eclipse 中的 Ctrl + H
注:如果替换的字符串过多,请记住备份工程文件,因为谁也说不准替换完了之后会出现什么错误,所以请谨慎使用!
3.new FrameLayout.LayoutParams(-1, -1) 简便写法
-1 就是 MATCH_PARENT,-2 是 WARP_CONTENT:
public static final int MATCH_PARENT = -1;
/**
* Special value for the height or width requested by a View.
* WRAP_CONTENT means that the view wants to be just large enough to fit
* its own internal content, taking its own padding into account.
*/
public static final int WRAP_CONTENT = -2;
比如:
mProgressView.setLayoutParams(new FrameLayout.LayoutParams(-1, -1, Gravity.CENTER));
4.上周我负责将项目中引用的旧框架 library 换成 gradle 引入依赖,得到了一些经验
框架里要写什么、不写什么:
框架应该只实现功能,不能写任何跟界面、业务相关的内容,因为那些都容易改变,比如这些:
5.高效率的程序员都把时间花在制作工具上(忘了哪儿看的了,抱歉)
很多人也认为工具是很重要的,但是他们并没有花时间去制作、整合自己的工具。但是,Jonson 团队最出色的员工耗费了他们1/3的时间在工具制作上,这些工具可以用来发布代码,监控系统,以及能让他们花更少的时间去做更多事情。
优化你的迭代速度
假设你要花12秒钟去搜索某个函数是在哪里定义的。再假设你每天做这个动作60次,那么你每天就要花12分钟去搜索函数定义。
如果你用一个好一点的编辑器,每次找到函数定义只要2秒钟,那么你每天就会节约10分钟。每年你就可以节约40个小时。
如果你能找到3个这样的场景去优化一下,那么你每年可以节约一个月的时间。想想这一个月你可以做多少有意义的事情。
再假如你在调试一个App的bug的时候,改完一次代码都需要重启一下App,然后点击4、5次才能看到bug有没有改好。那么你是不是可以先花几分钟设置以下,让App一启动就转到显示Bug的页面呢?
总之,不要花时间去做机器可以代替你去做的事情。
千万不要小看这些琐碎的细节,改善它们的回报是巨大。
6.一个奇怪的警告
A connection to http://abc.xyz was leaked. Did you forget to close a response body?
https://github.com/square/okhttp/issues/2843
7.errorCode:405
请求方法不正确,比如人家要 get, 你用的却是 post。
搜索的时候加 关键字 http status : “HTTP STATUS 405”
1.前几天才发现,面试官问你的他也不一定会。
之前面试我的面试官,问过我 Git 的一些问题,结果有天晚上加班,看到同事教他怎么用 Git 我惊呆了 0.0。
所以面试的时候一定要自信,你了解多少尽量的说,不要怕别人觉得你掌握的少,better than nothing.
2.可以说,我们这一波人赶上了最好的时代,我们上来用的就是是新的开发工具(Android Studio)、主流的语言(Java,JS, Kotlin, Go),这让我们节约了很多时间。
不过别人的今天就是我们的明天,程序员要为自己的将来做好准备。
3.还是要感慨一句废话:毕业后乱七八糟事情真!多!啊!
无奈生活这么繁琐,我们还努力爱她,这才是真爱。