自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 《Designing Data-Intensive Applications》笔记1:数据模型与存储

1.数据模型    从数据库的数据模型上,可以将数据库分为关系型、文档型以及图型数据库等。这三类数据库在形式和使用的场景上各有不同。1.1.关系型    关系型模型基于集合论中的关系理论,将数据视为Tuple的集合。关系型在1970年被提出,人们一开始质疑这类技术是否能高效地实现,但在1980年左右出现了目前的SQL和RDBMS系统,从而开始了关系型数据库的时代。关系型的缺点 ...

2018-12-29 09:52:26 1219

原创 《Designing Data-Intensive Applications》笔记2:分布式主从与分区

1.主从备份备份数据,可以将数据的变化同步到其它机器或节点上,从而提供更好的读性能以及数据冗余,提高可用性。1.1.单主同步或异步备份    单主时每个备份只有一个主节点,其它为从节点。备份时有同步或异步两种不同的方式。同步方式指客户端在写入时,只有从节点也成功收到数据后,主节点才会返回成功。异步方式则只要主节点写入成功后就能立即返回成功,从节点的数据会在后续补充。    异步...

2018-12-29 09:51:01 310

原创 《Designing Data-Intensive Applications》笔记:3:事务与一致性

1.事务及隔离级别1.1.Read Committed定义一个事务只能看到其它事务已经提交的修改,不能看到其它事务进行中产生的修改。实现方法对任一事务修改的数据,在事务提交前均同时记录新值和旧值。其它事务读到此数据时,使用旧值;本事务读取时,使用新值。一致性缺陷:不可重复读有可能发生“不可重复读”的情况:即在一个事务中,一次读到的值和下次读到的值会不同,因为存在另一个事务...

2018-12-29 09:49:34 262

原创 scala与函数式编程——什么是函数式编程

什么是函数式编程?  函数式编程是一种面向函数和函数组合的编程方式。   什么是函数?从数学的角度,函数即Function,是从集合A到集合B的一种映射关系。如果集合A中的每一个元素都对应到集合B中的某一个元素,那么这种映射关系就叫做函数。比如每个人都有一个名字,那么“人”这个集合中的每一个元素,都能对应到String集合中的一个字符串,因此“将人通过名字映射到字符串”是一个函数,它的签名可以是m

2017-06-13 22:10:54 1640

原创 scala与函数式编程——面向对象模式在函数式编程下的实现

在函数式编程中也一样要以编程原则为指导。但与OO的实现方式有所不同,主要区别在于将面向对象中的函数式接口直接替换为函数类型本身,将函数式接口对象的构造方法或工厂方法替换为输出新函数的高阶函数。 在面向对象中主要通过对象的set方法和框架来组装对象,从而实现依赖注入;而在函数式编程中主要使用返回依赖组件的函数这一形式来实现。

2017-05-12 17:36:59 831

原创 scala与函数式编程——从范畴论看函数式编程

什么是范畴?  其实范畴Category就是指一群事物以及这些事物之间的所有关联关系,这些事物和这些关联关系共同组成了某个范畴。 函数式编程所描绘的范畴,是一个以数据类型为点,以函数为箭头,并且充满了自函子映射的范畴。从范畴论的角度看函数式编程,会产生一种全新的理解。OO之后人们以构建和封装对象的角度来看待编程,一度使编程与数学脱离。但函数式编程的出现,则重新从数学理论的视角出发,将编程与数学又一次地联系起来

2017-05-09 22:41:54 1467

原创 从零开始学重构——重构的流程及基础重构手法

常用的基础重构手法和简单介绍,并在最后的实践案例中结合基础重构手法来重构代码。## rename(重命名变量/方法/类)## reorder(调整语句顺序)## split for/block(拆分for循环/代码块)## guard clauses(卫语句)## extract variable(提取变量)## extract method(提取方法)## inline method(内

2017-01-30 13:49:22 3404

原创 从零开始学重构——《重构,改善既有代码的设计》

第0篇,引言为什么写这个系列  想写这个重构系列的文章已经有一段时间了,至于写作的动机应该有三个。   首先,是带领的两个团队的所有成员都是刚毕业不久的半新人,都充满了积极的干劲和责任心。只是在一些基础技能上还略有不足,或将成为他们继续成长的瓶颈,也必然会成为团队发展的制约。   其次,是之前在和人交流的时候,包括在面试中,也会有人提及自己重构了哪些哪些模块,但具体细问下来却发现对重构的定义和

2017-01-25 11:40:14 302

原创 2016的结尾,另一个的开始

又是年末了,看着冷清的单位食堂与无人的街边路灯,总有思绪涌上心头。一个程序员要怎样成长?要怎样才能成长?这些是只有自己才能回答的问题。时间只会在不知不觉中飞快流走,而机会却从来不会等。于是想想今年自己有哪些收获,想想三年后会成为怎样的人,想想当下的自己为此又该付出何种努力。每个奇迹都需要出现两次:一次是在自己的脑海中,另一次则是在实现世界里。    我的目标是什么?参加工作已经进入了第三个年头

2016-12-30 19:52:17 249

空空如也

空空如也

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

TA关注的人

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