自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 对DCI(数据、上下文、交互)的理解

从袁英杰大牛的DDD&DCI培训ppt中接触到了DCI,之后又在网上看了一些材料、以及Trygve Reenskaug等写的论文,对DCI有了一点认识,作为学习心得记录,也请行家们指点下。一、           DCIDCI认为面向对象很好的反映了结构,但是在反映系统动作(行为)方面不够。协作交互也是用户的心智模型,但是找不到内聚的形式去表现他们。以转账的例子来说,用户思维里对转账的

2016-04-15 14:20:00 6317 2

原创 分布式系统总结

分布式系统总结     我们的系统一直是分布式的。即便在虚拟化、容器技术出现之前,我想他也是一个分布式系统。今天尝试将我对分布式的理解做一些总结。为什么要分布式?    我想首先是money方面的问题。随着产品支持的容量增加,软件的计算量、存储的数据都变得很大。Grosch定理说CPU的计算能力与它的价格的平方成正比。也就是说如果你付出两倍的价钱,就能获得四倍的性能。这么看其实花钱

2016-04-26 17:38:13 11193

原创 kubernetes源码分析 -- kubelet组件

Kubelet需要在每个minion结点上运行。他负责维护在特定主机上的容器。Kubelet的代码架构与kube-proxy类似,cmd部分组织代码调用(cmd/kubelet/kubelet.go),kubelet的功能实现在pkg/kubelet包中。apiServer负责接收server发过来的Pod管理信息,通过channel推送到PodConfig。PodConfig的mux使用

2016-04-23 12:01:03 5846 1

原创 kubernetes源码分析 -- kube-proxy

Kube-proxy需要在每一个minion结点上运行。他的作用是service的代理,负责将业务连接到service后面具体执行结点(endpoints)。我们列一下体现kube-proxy主要设计的代码部分。    总的来说kubernetes的代码可以从cmd看进去,看每个组件的启动过程,以及提供的业务。Cmd部分组织启动进程的过程以及代码调用,具体的代码实现在pkg里面。Kub

2016-04-23 11:40:13 4431 1

原创 设计模式简要总结——行为型模式

1. chain of responsibility 职责链      使用: · 有多个对象可以处理一个请求, 而具体由哪个对象处理请求需要在运行时刻自动确定。          · 可以处理一个请求的对象集合应被动态指定             原理: 在链上的每个对象都有一致的处理请求的接口, 和访问链上后继者的接口。          从链上的第一个对象开始,要么亲

2016-04-15 15:41:27 4099

原创 设计模式简要总结——结构型模式

1. adapter 适配器        应用: 一个通用的接口,希望使用一个已有的类。        原理:定义一个抽象的接口(或者目标类),总之是应用程序使用的类。这个类定义应用程序使用功能的接口原型。              但是目标类并不具备某些功能,而需要使用已有的另一个类。              这时可以有两种方法:                a 定一个

2016-04-15 15:40:06 643

原创 设计模式简要总结——创建型模式

1. AbstractFactory 抽象工程模式           原理: 有多个具体工厂,分别可以创建自己的一套对象。再搞一个抽象的工厂,             让这些具体工厂继承自它。 应用程序里面确定一个使用工厂的接口。             在应用程序中根据场景需要(或不同产品)实例化一个具体的工厂,作为             参数传给使用工厂创建对象的那个接

2016-04-15 15:38:06 526

原创 Docker集群(三) —— Kubernetes 简单入门

【摘要】Kubernetes是Google开源的Docker容器集群管理系统,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等整一套功能。本文介绍了kubernetes的重要概念,并通过实例的示例解释了如何应用kubernetes管理docker集群。因操作系统不同、应用场景不同kubernetes的使用方法有不同,本文只介绍其中一种笔者实践过的切实可行的方法,旨在使读者快速了解Ku

2016-04-15 15:29:05 11968 1

原创 Docker集群(二) —— Docker资源管理

Docker集群—— Docker资源管理                                                       【摘要】本文介绍在多核CPU下管理docker对主机资源的使用。通常我们关心的是cpu和内存的使用,本文主要介绍这两个。1   工具stress为了测试CPU、内存的使用,需要有一个工具。已经有好心人做好了stress镜像,我直

2016-04-15 15:24:31 1954

原创 Docker集群(一) —— Docker网络及flannel介绍

【摘要】本文介绍docker网络原理和设置,以及在docker集群中需要解决的问题。最后介绍flannel在解决docker网络问题中的作用。1   基础在介绍docker的网络之前,必须先认识docker所依赖的几个linux技术,这对理解docker的网络有帮助。因水平有限这一节仅简单介绍,对linux网络原理感兴趣的TX可以继续深入研究。1.1 网络命名空间:Linu

2016-04-15 15:15:32 11705 3

转载 递归与尾递归

尾递归就是把当前的运算结果(或路径)放在参数里传给下层函数,深层函数所面对的不是越来越简单的问题,而是越来越复杂的问题——因为参数里带有前面若干步的运算路径。对于阶乘而言,越深并不意味着越复杂。从时间和空间效率上看,尾递归和传统递归差不多。递归运算效率低主要是分支巨大,像阶乘这类单分支的递归,效率并不低。递归运算的深度和运算总量大致成指数关系,return多次并不会造成显著的性能损失。一言

2016-04-15 15:10:38 646

原创 堆排序算法及go语言实现

堆分最大堆、最小堆。 以最大堆为例。最大堆是一个完全二叉树。 并且要求每个结点的值必须大于他的两个子节点。 所以他的根结点一定是最大值。但是左右结点大小不一定。用数组表示的二叉树,可以这样表达: i的子节点下标为 2*i + 1 和 2 * i + 2.   i的父节点下标为 (i-1)/2。对于数组长度length,大于length/2的下标一定没有子节点.排序思想是构建最大

2016-04-15 15:08:22 852

原创 归并排序及go语言实现

归并排序的基本思想将待排序序列R[0...n-1]看成是n个长度为1的有序序列,将相邻的有序表成对归并,得到n/2个长度为2的有序表;将这些有序序列再次归并,得到n/4个长度为4的有序序列;如此反复进行下去,最后得到一个长度为n的有序序列。综上可知:归并排序其实要做两件事:(1)“分解”——将序列每次折半划分。(2)“合并”——将划分后的序列段两两合并后排序。归并操作(

2016-04-15 15:05:26 1116

原创 golang类型系统笔记

一、常量:  const Pi float64 = 3.14159265358979323846  const zero = 0.0 // 无类型浮点常量  const (   size int64 = 1024   eof = -1 // 无类型整型常量  )  const u, v float32 = 0, 3 // u = 0.0, v = 3.0,常量的多重赋值

2016-04-15 14:54:45 1294

原创 设计原则学习笔记

1. 软件开发中的视角:   a 概念:软件要做什么,负责什么   b 规约:软件的接口   c 实现:软件如何实现,如何履行负责的事情这也是抽象一个类时要做的事情: 一个类要负责什么,怎么接口,怎么实现。2.封装。  封装是对对象内数据直接访问的隐藏。    ------- 这样理解比较片面。封装不仅隐藏数据,也隐藏了职责的具体实现。使调用者不知道实现过程,则修改实现

2016-04-15 14:47:36 589

转载 VIM常用命令

把学习过程中收集的资料放一起发出来。 都是转自网上其他大牛的总结。 文本的选择,对于编辑器来说,是很基本的东西,也经常被用到,总结如下:v    从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束。 V    从光标当前行开始,光标经过的行都会被选中,再按一下V结束。 Ctrl + v   从光标当前位置开始,选中光标起点和终点所构成的矩形区域,再按一下Ctrl +

2016-04-15 14:43:03 2471

原创 为什么cleancode

很多人觉得cleancode基础,cleancode那本书很容易读完,cc是啥也容易理解,似乎一次培训就能解决。但是并非基础就容易做到。好像世间很多事相通,拿写字来和我们写程序做个对照。程序能用对应没写错别字,cleancode就对应“横平竖直”。“横平竖直”是学写字时的第一个要求,基础不,是最基础的了。虽然基础,但却要求一定的功力,要花一定的努力。有多少人写了一辈子字,横竖未必直。为

2016-04-15 14:28:31 865

原创 快速排序算法 原理及golang语言实现

设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。一趟快速排序的算法是:1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;、

2016-04-07 09:19:13 994

空空如也

空空如也

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

TA关注的人

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