工作第十六七周:生活这么繁琐,我们还要努力爱她

一眨眼又是两周,上周周末有些事,耽搁了总结,只好拖到这周一起了。

这两周生活、工作

1.订婚大事

我跟肉肉在一起也有 5 年 4 个多月了,没毕业前双方家里睁一只眼闭一只眼,过得倒也开心、自在。毕业工作后,不能算早恋了,两个人关系也要拿上台面谈谈。

肉肉从小娇生惯养,掌上明珠,见识比我多,脾气也不小,但对我很好,家里一顿饭没做过,跟我在一起后也开始做饭。对我爸爸妈妈也比较热情,挺受喜欢的。

我虽然家境一般,长的一般,工作一般,但好在诚实可靠,有点上进心,脸皮厚不怕肉肉欺负。所以叔叔阿姨不讨厌我,对我俩的关系也没什么意见。

关系确定了接下来就要商量订婚、结婚大事了,结果双方父母都没什么经验,突然要商量这个,七大姑八大姨的咨询,这下子,我的电话一个接一个,这个说东那个说西,整的我心力憔悴。

本来觉得订婚是很简单的一件事,现在看来我还是 too naive。

双方家长考虑问题角度不同导致侧重点不同,我和肉肉在中间周转、传话,就像风箱里的耗子。折腾了好一阵子,才先大概确定下来。

My god, 真累。

2.可耻地直接搬了别人的代码

上周业务上有个需求,需要自定义一个组件,本来一开始打算自己写,结果由于我之前开始的 Java 集合框架源码分析系列 拓展内容太多,进度比计划慢了许多,从而导致没有时间自己写。

然后我就从 GitHub 上找了一个现成的,大概了解后就直接拿来用了。

现在想想心里还是有些鄙视自己的,没有自己写就算了,不好好看清楚源码确定没问题就直接用人家的,这不是我想要的结果。

希望下周加速度搞完需求,仔仔细细地把这个组件代码看看,了解清楚吧。

3.双十一买了 Mac

哈哈,本来双十一没打算买什么,陪肉肉逛逛就睡了。结果 JD Mac 搞活动,肉肉看我那么想要,居然同意了!

作为一名小屌丝,能有一本 Mac 是我梦想了许久的事情。

虽然是分期,拿我每个月零用钱的一部分还,但我当时脑子里只有 Mac,管不了那么多了哈哈。

shixinzhang

Mac 除了装逼好,用斌哥的话说,还更“专业”。

Windows 第一用户是办公用户和家庭用户,界面化操作封装了太多东西。

Linux 又太“专业”,底层暴露太多,缺少优秀的 UI 界面软件。

而 Mac 则兼具两者优点。

斌哥的话,听着好像很有道理的样子哈哈。

4.Done is better than perfect

在 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 系统做兼容.

解决方法有如下几个:

  1. 精简方法数量,删除没用到的类、方法、第三方库。
  2. 使用 ProGuard 去掉一些未使用的代码
  3. 复杂模块采用 JNI 的方式实现,也可以对边缘模块采用本地插件化的方式。
  4. 分割 dex

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 引入依赖,得到了一些经验

框架里要写什么、不写什么:

  • 非公用、公用但常变的尺寸不该写到框架 dimen 中
  • 颜色也一样
  • 常用自定义 View,要把功能抽象成基类,具体界面效果交给 app 实现,因为可能经常会变
  • Activity、Fragment、WebView 基类里要有 loading/content/failed 逻辑,但具体效果还是交给 app

框架应该只实现功能,不能写任何跟界面、业务相关的内容,因为那些都容易改变,比如这些:

  • 基类 BaseActivity,BaseFragment,BaseWebViewFragment
  • 网络请求库
  • 图片加载库
  • 三级缓存
  • 常用工具类
  • 常用自定义 View
  • 常用第三方 SDK 调用代码封装
  • Hybrid
  • UBT
  • 调试、测试类

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”

  • 400 - 错误的请求。
  • 401 - 访问被拒绝
  • 403 - 禁止访问
  • 404 - 未找到
  • 405 - 用来访问本页面的 HTTP 请求方法不被允许
  • 406 - 客户端浏览器不接受所请求页面的 MIME 类型
  • 407 - 要求进行代理身份验证
  • 413 – 请求实体太大
  • 414 - 请求 URI 太长

总结

1.前几天才发现,面试官问你的他也不一定会。

之前面试我的面试官,问过我 Git 的一些问题,结果有天晚上加班,看到同事教他怎么用 Git 我惊呆了 0.0。

所以面试的时候一定要自信,你了解多少尽量的说,不要怕别人觉得你掌握的少,better than nothing.

2.可以说,我们这一波人赶上了最好的时代,我们上来用的就是是新的开发工具(Android Studio)、主流的语言(Java,JS, Kotlin, Go),这让我们节约了很多时间。

不过别人的今天就是我们的明天,程序员要为自己的将来做好准备。

3.还是要感慨一句废话:毕业后乱七八糟事情真!多!啊!

无奈生活这么繁琐,我们还努力爱她,这才是真爱。

发布了268 篇原创文章 · 获赞 1765 · 访问量 268万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览