alighters

程序、写作、人生

Javascript Garden 笔记

| Comments

PS : 这是一篇针对javascript garden做的笔记,更多内容请查看原文链接 : http://bonsaiden.github.io/JavaScript-Garden/zh/

对象

  1. JavaScript 中所有变量都可以当作对象使用,除了null 和 undefined;
  2. 2.toString(); // 出错:SyntaxError,因为解析器试图将2.作为浮点数的一部分来解析,可以使用(2).toString()或者2..toString()或2 .toString();
  3. 使用{}可以创建一个新的对象 ,新的对象继承自Object.prototype;
  4. 访问对象的属性,可以通过 “.”或者“[]”操作符,删除属性则通过delete操作符;

Android Studio常用快捷键合集

| Comments

在使用AS的过程中,之前使用的是Eclipse的快捷键的风格,现在切换为Mac系统的AS快捷键风格,一时不适应,下面记录一下Mac风格的快捷键;

PS: 注意Mac上的delete键是执行删除前一个字符(即是backspace的效果),而要达到删除后一个字符(即是delete的效果),则要执行按键 fn + delete。需要注意这里的区别

浅析EventBus 3.0实现思想

| Comments

最近接触了EventBus,也看了一些源码分析的文章。在此就不再细述其代码的实现细节,主要针对其的设计思想做一些记录,也是自己思考的过程。同时本文尽量以较少的代码来将其主要设计思想说的透彻明白,不会针对细节做过多深入。

基本的事件发布订阅的实现

一般情况下,事件发布订阅机制都是跟观察者模式紧密相连。事件的发布中心都会维持着一组当前的观察者(也可叫做订阅者),这里称之为事件总线,(观察者的注册/取消则对应着在这组数据中进行添加和删除)。另外被观察者(也可叫发布者)则通过发出事件,事件总线拿到该事件,则在观察者列表中根据事件来查找相应的事件观察者,紧接着执行观察者的行为即可。对应一个简单的事件总线图如下:

Android编译期代码生成之apt实践入门

| Comments

现在 Android 主流库中使用 apt 的越来越多,如Dagger2,ButterKnife,DBflow等。不研究一下其怎么玩的,心里实在是不舒服斯基,所以就有了这篇apt代码简单生成的文章。文章的末尾,会附上一些关于注解的基础知识,有兴趣的童鞋可以再去看看。

程序员加班之说-谈效率

| Comments

加班

最近听人谈起程序员的加班问题,忙到那么晚,真有那么多事情要做么?当然每个人遇到的情况不一样,给到的答案也是不一样的,这里针对个人所遇到的情况,谈谈对加班的一些看法。

Rxjava+Retrofit 实现全局过期 Token 自动刷新

| Comments

我们在做客户端的设计实现底层网络架构时候,常常不可避免的一个问题:token的有效验证,若是token过期,则需要先执行refresh token的操作,若是执行refresh token也无效,则需要用户再执行登陆的过程中;而这个refresh token的操作,按理来说,对用户是不可见的。这样的话,我们应该是怎么解决这个问题呢?

本文是采用RxJava + Retrofit来实现网络请求的封装的,则主要讨论这种情况的实现;一般的写法,则主要是在回调中,做一些拦截的判断,这里就不叙述了。

SimpleArrayMap源码解析

| Comments

本文SimpleArrayMap源码分析是基于support v4 23.3.0版本的。 另外,因ArrayMap涉及的多是算法知识,而主要的思想比较简单,所以本文会主要以代码为主,细讲其每个实现。

为什么要引入ArrayMap?

在Android设备上,因为App的内存限制,出现OOM的错误,导致开发者不得不关注一些底层数据结构以及去分析App的内存使用情况。提及数据结构,HashMap是我们最经常使用到的,而我们是否会注意其实现的细节以及有什么优缺点呢?

Octopress搭建博客之路1

| Comments

最近,因之前的博客是通过hexo搭建的,而通过hexo搭建的样式,有点烂大街的赶脚。另外,想对它做一些改动,看着它的代码有点头大。然后,就接触了Octopress,稍微了解了一下,就决定把我的博客迁到这个上面了。原因有二:1.是基于Ruby开发的,正是我目前在学的语言;2.相对于hexo提供更多的功能。废话不多说,开始搭建第一篇Octopress博客吧。

Dagger2深入理解

| Comments

最近,看到一些小伙伴想要入门Dagger2,加之最近刚经历了Dagger2的水深火热,在这里针对Dagger2中不同的注解方式,会生成怎样的代码,结合其生成的不同代码,来帮助大家做一些深入的理解。