Android 推荐架构试水+LiveData源代码学习

老夫最近又要做 Android APP 的开发工作了(我特码到底是什么工程师?),上次做 Android 开发还是在四年前。四年多过去了,Android 也升级了好几个大版本,而 Google 这边也一直在更新支持库和开发工具,甚至还引入了 Kotlin 作为默认的开发语言。同时在官方文档里也推荐了标准的开发模式,例如数据绑定、访问数据库的方式、AndroidX 库等等,当时这些东西还是在 beta 阶段,不知道啥时候已经正式发布了。本想快速把这个 APP 做起来,但是想了下还不如花点时间做个好的架构,所以最近几天都在研究怎么使用 Google 推荐的架构方式去开发 APP……

老夫常用的软件推荐

近一年来博文的数量略少,其中一个原因是写的“水文”变少了。今天更新一篇水文介绍一下老夫喜欢用的一些软件(包括 PC 和手机),这些软件实在是做得太好了,同时也非常良心,因此老夫要推荐一下,免费帮他们打广告。一些非常大众化的软件(比如 Chrome、Office 等就不打广告了)……

Java 的源代码学习(3)——ConcurrentSkipListMap

乃可能会说:“乃为了准备面试也是拼了,看了这么多 JDK 的源代码!”实际上以老夫以前面试的经验(以及别人面试的反馈),老夫在研究的 JDK 源代码基本上不会有任何可能被问到。比如上次研究的 ConcurrentHashMap,面试官问了 HashMap 以及 Hashtable 的实现细节,当时我就很好奇如果要它实现高并发的哈希表会怎么去做,于是试探性地提了一下,结果他除了想到分段锁其他毛都没有了解!这样看来要他想一个办法去实现低延迟的扩容也是太难为他了!(乃会说乃面试的时候还问面试官问题?实际上老夫会提一个和官方实现相近的方案,然后试探性地问他有没有更好的方法。)……

N-Sum 问题

最近在准备面试,所以一直在刷算法题。然后越准备越发现不论是哪个公司,面试问的算法问题基本上都很水。我这里说的“很水”并不是所有的题我都能做出来,有些问题没见过类似的还是不太好想的。而是这些问题基本上都围绕着二分查找、链表、递归之类的在转圈圈。例如下面一些“水题”……

Java 的源代码学习(2)—— HashMap 和 ConcurrentHashMap

HashMap 这个数据结构在教科书上已经被讲烂了,而且我们在大学期间也写过无数次它的实现。不过“魔鬼藏在细节之中”,作为一个通用的类库,要考虑的东西远远不止在学校学的如何去实现其基本功能。有很多需要考虑的因素,为了更好地积(zhun)累(bei)经(mian)验(shi),还是要仔细读一下它的代码……

一些简单的面试题精选(1)

屌丝又“扬言”要找工作了,所以要赶紧准备一下面试。实际上,按照我之前“找工作”的惯例,面试官都很注重项目经验,而对于算法、设计之类的问题,由于我遇到的这些面试官水平堪忧所以基本都难不倒我。不过,还是要准备一下,说不定下次面试的时候挂掉了呢?下面我就选一些很简单的面试题,看看乃会不会在这些简单的问题上挂掉……

HTTP 请求中的 X-Forwarded-For

最近某个私人产品的服务器被一个无聊的小黑客攻击了,主要表现是在短时间内调用了几千次我们发送短信验证码的接口,致使运营商觉得我们的产品有异常情况从而暂时停止了我们的短信发送功能。请求短信验证码的功能是以前某个哥们做的,我记得他当时说过有考虑过这样的情况。昨天看了代码后才得知他采用的只是限制每个电话号码在每天所允许接受的短信条数的功能,而且漏洞一大堆,因此想要攻击那也就是轻而易举了。没办法,老夫只能靠自己想想办法缓解这个问题了……

分布式事务的处理(幼儿园版)

最近和同事讨论了不少信息系统中事务控制的问题,那么现在结合以前做过的项目,来稍微总结一下。现在设想我们要山寨一下小米每周二的抢购模式,就叫“大米”网好了。那么现在放出特定数量的一些商品给用户来抢,每个用户只能买一定数量的某个商品。按照现有系统,大概有以下这么几步……

Android 的 FragmentStatePagerAdapter 的笔记

好久没有写开发相关的博客了,老夫最近做了 N 多项目,可是都没有写笔记的习惯,这样的坏处是很快就会忘了。话说最近公司有同事经常来问我 Android 开发的问题,特么老夫只是酱油开发好不好。但是乃看最近 app 那么火,不管啥东西都要做 app,所以做一做总不是坏事。所以老夫要开始写“笔记”,这样以后忘了的话可以直接回过头来看……

HTML5 支持的 DataURL 属性

最近某个创业项目要做一个类似于上传头像那种的截图工具(因为招过来的运营智商堪忧,弄一张图片要整好几个小时),由于其他人员对于前端基本残废,那么显然又要我去弄(说到这里,我也不是做前端的啊,为啥不论是公司还是私人项目我都要去帮忙做前端)……