自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Cmd的笔记本

记一下笔记

  • 博客(29)
  • 收藏
  • 关注

原创 为什么往Github push提交不用输密码?

背景今早我一如既往的往着自己的Github仓库提交代码,在命令行中熟练地输入:git push很快我的本地提交就被同步到Github上了,忽然我感到一个严肃的问题:为什么我提交代码不用输我的帐号密码?难道我的Repo任何人都可以随意push代码吗?不寒而栗,于是我开始搜索github push 权限历程最开始找到的是如何在Github多人开发并管理权限的问题,例如:Gi...

2019-07-25 16:08:19 989 3

原创 学习Dagger2笔记:【10】dagger中依赖关系与继承关系

目的通过前面几篇文章,我们了解到@Module代表着一个数据仓库,提供需要注入的依赖实例;而@Component代表着一个桥接类,桥接了被注入对象和其依赖的注入器/工厂类。打开这两个注解的源码,会发现原来还有新的世界等待着我们去探索:@Module.includes、@Module.subcomponents、@Component.dependencies,这些就是本系列压轴中要介绍的内容了@...

2019-05-17 17:45:59 937

原创 学习Dagger2笔记:【11】dagger.android

回顾我们回顾一下目前为止的代码,我们通过ApplicationModule数据仓库,提供应用名数据,而Activity和Computer为了拿到这个数据,是通过定义@Subcomponent,使其与ApplicationComponent称为类似内部类组合的关系,从而可以使用到ApplicationModule中的内容。在Android系统中,Activity、Fragment都是由系统创建的,...

2019-05-17 17:45:49 888 1

原创 学习Dagger2笔记:【9】Bind系列注解

目标本篇文章的目标是介绍dagger中Bind家族相关的注解,有@Binds、@BindsOptionalOf、@MultiBinds、@BindsInstance@Binds之前我们一直没有为CPU创建CPUMoudle,因为我们将@Inject注解到其构造函数上了,dagger就会自动生成CPU_Factory工厂类,当有其他对象需要依赖CPU时,直接调用此工厂类去创建而不用在@Comp...

2019-05-17 17:17:11 1992

原创 学习Dagger2笔记:【8】注入到Set和Map容器

目标我们知道,每台电脑中都有硬盘,并且可能不止一张,每个电脑也会连接很多外设,本文的目的就在于将这些东西用dagger注入到我们的Computer中@IntoSet & @ElementsIntoSet每张硬盘有着不同的类型(机械硬盘和固态硬盘),还有者不同的容量,在Computer中如果将每张硬盘都单独作为一个成员变量,未免扩展性太低了,因此我们用Set容器保存这些硬盘:clas...

2019-05-17 17:16:00 1045 1

原创 学习Dagger2笔记:【7】@Scope

目标:使用dagger注入“单例”通过我们之前对@Provides生成的工厂类、@Inject注解变量或方法生成的注入器以及@Component生成的桥接类的分析,我们发现dagger每次在注入依赖时,其实都会通过工厂类创建一个新的实例,所以在上一篇文章最后,我抛出了dagger中单例的问题,本篇也是围绕着此问题展开的Kotlin中的单例众所周知,在kotlin中通过object可以非常简单...

2019-05-17 17:14:16 677

原创 学习Dagger2笔记:【6】Provider & Lazy

再看@Component我们之前使用@Component都仅仅是在其注解的接口中添加一个inject方法,作为进行依赖注入的入口,但@Component的作用远不止如此新需求为了深入研究@Component,我们新增两个需求需求1在Activity显示Computer信息时,我们要求根据当前时间(System.currentTimeMillis())单双作为区别,如果单数就显示wind...

2019-05-17 17:12:54 842

原创 学习Dagger2笔记:【5】@Qualifier

dagger与抽象继承、封装和多态是面向对象的三大特征,这三大特征无一不是围绕着抽象这个词展开的,但在前几篇的例子中,我们的依赖都是具体的类型,比如Computer、CPU、Memory,严重违反了依赖倒置原则:模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的总之,我们接下来需要加上抽象的思想,看看dagger怎样处理新增需求现在我们将Co...

2019-05-17 17:10:45 762

原创 学习Dagger2笔记:【4】@Component

目标上一篇说到我们想要dagger自动生成出类似于我们手写的Bridge桥接类,本文就是对实现此功能的@Component做一个简介分析,来看看dagger中怎样使用@Component吧依赖图在介绍本篇主角@Component之前,我们先根据已有代码画一个依赖图:(个人认为使用dagger就必须要弄清楚自己的依赖图,无论是画在纸上还是在脑海中,一定要想清楚再编写dagger)如上图所示...

2019-05-17 17:08:30 1243

原创 学习Dagger2笔记:【3】@Module & @Provides

使用@Module和@Provides注解还记得上一节中添加的需求吗?要求显示Computer信息前,还要显示当前页面的生成时间为此,我们对Activity添加了如下成员变量:@set:Inject lateinit var timestamp: Date它是一个java.util.Date对象,自然我们是没法将@Inject注解添加到其构造函数上的,因此我们也就没有Date的工厂...

2019-05-17 17:05:11 2055

原创 学习Dagger2笔记:【2】@Inject

Kotlin中的注解在开始讲解注解之前,先看下kotlin中的注解有何不同我们知道以下kotlin代码:class Test(var temp: Int)转换为Java代码后是:public final class Test { private int temp; public final int getTemp() { return this.temp; ...

2019-05-17 16:59:51 2119

原创 学习Dagger2笔记:【1】依赖与注入

依赖与注入都说dagger2是一个依赖注入的框架,那么什么是依赖,什么又是注入呢?下面以显示一台电脑的信息来举例:每台电脑(Computer)有其操作系统(os)和定价(price)电脑内有处理器(CPU),处理器有着自己的序列号(ID)电脑内有内存(Memory),内存有着自己的容量(size)电脑执行(execute)时,会分别执行处理器和内存,它们在执行时都将自己信息以文本方式返...

2019-05-17 16:58:21 800

原创 学习Dagger2笔记:【0】前言

文章目的本系列为个人学习笔记,更多在于个人理解以及对源码的剖析,可能对于想快速上手的人不那么适合普遍认为dagger难以上手,但我认为一是因为官网引导不够详细和普适(用怎样制造咖啡为例着实不熟悉,各种不完整代码片段看得人一脸懵逼),二是大部分文章只说了一些基础用法,一旦涉及到高级用法就潦草带过,难以理解我试着从dagger的使用、设计模式、源码理解几个方面去分析,由浅入深本系列主要以ko...

2019-05-17 16:56:29 914 2

原创 支持多选的邮件自动补全提示插件 - 【第一次插件开发过程记录】

邮件地址自动提示支持多选可自定义样式、邮件尾缀、邮箱验证等功能

2016-10-28 01:23:29 763

原创 使用Node.js作为后台进行爬虫

使用Node.js与request模块,爬取B站上的小GIF动图

2016-10-05 05:17:52 8842 2

原创 使用SVG制作热区图

前两大段都是闲侃,正文可从【准备工作】开始看

2016-08-18 21:33:27 10153

原创 可视化排序

这是百度IFE的一个题目,感觉很有趣,就想写一个详细一点过程,并且看下是不是能更完善一点

2016-07-26 11:01:20 2369

原创 记一个有趣的问题

题目的重点应该是原型与定时器,题目如下:function MyObject(myInfo) { this.info = myInfo;}MyObject.prototype.sayInfo = function() { console.log(this.info);};MyObject.prototype.repeatSay = function() { setInterval(

2016-07-22 11:43:29 669

原创 js各种模式的自定义对象

js中用的最多的肯定就是对象(Object)了,通过将某些属性和某些方法放到某个对象内进行封装,可以避免之后的各种繁琐工作

2016-07-22 11:04:38 600

原创 移动前端开发

一些移动设备上前端需要注意的小地方

2016-07-14 10:33:53 1087

原创 纯CSS制作简单几何图形

在网页中我们经常看到三角形、梯形、多角形等小巧精美的元素,这些简单的几何图形其实并不需要图片模拟,而直接通过纯CSS编写就可以得到

2016-07-12 11:01:34 1347

原创 flex弹性布局

2009年,W3C提出了一种新的方案——Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持(IE10+)

2016-07-11 16:18:40 1456

原创 三栏式布局

通常来说,三栏式最基本要解决的是 左右两侧固定宽度,中间列自适应宽度,另外根据浏览器从上至下的渲染原理,通常中间栏才是最主要的内容,最好能在DOM结构上 将中间栏放在更前面

2016-07-08 18:14:10 1321

原创 HTML标签笔记

值得注意的标签和用法

2016-07-08 12:13:53 942

原创 HTML/CSS 快速编写必备 - emmet插件

Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生。它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度

2016-07-08 10:56:26 1298 1

原创 github使用笔记

使用git的笔记,take down & share

2016-07-05 15:48:42 890

原创 CSS 高端进阶 - LESS

LESS 是一门 CSS 预处理语言,它并不是去取代CSS,而是去扩充CSS,给CSS于 变量、混合、函数、运算 等功能,让CSS的编写更加方便,结构上更为清晰

2016-07-05 15:28:56 1179

原创 正则表达式

在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码,最多的用途就是匹配带有一定规律的字符串

2016-07-05 15:05:22 2311

原创 Markdown 标记语法

md的一些语法笔记,一个让你过目不忘的语法

2016-07-05 13:02:53 1166

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除