自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

I think therefore I am

不积跬步无以至千里!

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

原创 单链表反转

反转一个单链表/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func reverseList(head *ListNode) *ListNode { if head == nil &&amp...

2018-12-08 17:32:08 218

原创 grep 命令各参数详解带例子

在工作中经常用到grep命令,在此做一下总结。grep 用于匹配文件中符合条件的行。用于测试的文本> cat test.txtaaaabbbbbccccddddeeeeeeeffff各个选项-A-- after-context : 除了打印匹配的行,还要打印匹配行之后的几行内容;例如: 除了匹配“bb” ,还要知道该行的后三行内容。> grep -A 3...

2018-11-19 23:39:53 1508

原创 如何开发一个完整的服务?

服务的完整性不仅仅是代码写的好无bug就可以了。我认为一个好的服务具备一下几个方面。代码质量符合好的代码规范,每个公司针对每个语言都有一套代码规范,团队开发首先要遵守代码规范。服务稳定稳定大于功能全,一个服务无法对外提供服务,功能再全也是无用功。监控平台可以从几个方面来日志分析端口监控数据埋点 ,收集数据,图像展示服务降级方案出现问题不可怕,可怕的是出了问题...

2018-11-10 00:12:46 415

原创 effective go 笔记

格式化golang 提供了gofmt程序(也可以使用go fmt,它以包为处理对象而非源文件)将go程序按照标准风格缩紧、对齐,保留注释兵在需要时重新格式化;比如,下面程序你无需花时间将结构体中的字段注释对齐,gofmt 会处理的;type T struct { name string // name of the object value int // its value...

2018-11-09 23:57:55 251

原创 内存分配

问题如何申请 如何管理在提高内存碎片做了哪些操作有什么缺点以及改进的地方每一步都是什么意图?效率设计分层heapa. 从os申请大块内存b. 处理大块内存的申请c. 管理大块内存centrala. 从heap 获取大块内存b. 按size class 提供内存cache从 central 获取内存块,为当前线程提供无锁的快速分配回收之两次平衡第一次平衡:...

2018-11-06 13:21:26 177

原创 golang 反射

什么是反射?维基百科中解释为: 反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力通俗来讲就是, go 语言中提供一种机制,可以在代码运行时获取变量的类型和值,这种机制就是反射。有反射那么有“正射“么? “正射“就是我们一般用法:定义变量, 编译时就可以知道变量的类型和值。反射如何使用反射主要是reflect包提供,提供的类型和方...

2018-07-16 22:53:44 778

原创 golang 字符串拼接性能比较

背景最近在做一个服务发现/注册的agent, 各个服务需要通过这个agent来注册自己的服务,同时获取自己依赖服务的ip 列表等相关配置, 对服务提供的接口性能有一定要求,在完成开发后,测试性能时发现性能达不到要求,通过pprof 来确认cpu主要耗费在gc上,分析结果主要是由于字符串拼接导致,故需要测试一下字符串拼接的几种方法的性能;字符串拼接的几种方法直接使用加号进行拼接 ...

2018-05-21 23:46:46 6607

原创 go 中 make 与 new 的区别

适用范围:make 只能创建内建类型(slice map channel), new 则是可以对所有类型进行分配返回值: new 返回指针, make 返回引用填充值: new 填充零值, make 填充非零值

2017-10-09 21:52:27 571

原创 nginx-lua worker 之间数据共享

问题最近工作中做性能优化用到Lua (openresty), 由于调研不深入,导致上线时滥用了全局变量导致数据共享,数据错乱,所以有必要整理一下这个知识点。nginx worker之间数据共享如果要在同一个 nginx worker 不同请求之间共享数据,需要将共享数据或者代码放到一个lua 模块中,然后使用内置函数require 导入该模块,就可以读取或者操作共享数据了,除了模块级变量外,lua

2017-09-25 23:19:27 1812

原创 nginx rewirte 和 location

什么是rewrite ?rewrite 顾名思义就是重写的意思,主要是针对URL进行重写,采用方法是使用PCRE(Perl Compatible Regular Expressions) perl兼容正则表达式语法进行规则匹配。 其意义所在: 可以规范URL 根据变量来做URL转向和选择配置。执行顺序1.执行server块的rewrite指令,server {} 内部的rewrite; 2.执行

2017-03-31 22:48:04 574

原创 从建水厂看简单工厂、工厂方法模式和抽象工厂之间的区别

从下面一个例子看一下几个模式之间的区别,代码很简单,道理很明显;有一个程序员 小A 工作了几年赚了一些钱,厌倦了大都市的紧张节凑,想回家开一个水厂,过一下舒适的日子。可是开工厂也需要一定的管理方法,小A 同志毕竟是程序员啊,设计模式啥的还是懂一点的,所以就用设计模式来管理厂子。考虑到产品比较单一,只有dawawa和xiaohaha两种类型的矿泉水,那么只需要开一个水厂一个产品线就可以,每次缺货时告诉

2017-03-23 23:22:11 589

原创 工厂方法模式

什么是工厂模式? 用子类来实例化对象,父类只是抽象出公共部分;举个例子: 两个系统之间通信,需要一种加密方式用来传输数据,目前有两种算法A 和 B用来加密和解密,这样我们需要三个类 1. 用来数据加密传输的数据加密类; 2. 用来数据解密的数据解密类; 2. 用来选择数据加密方式并处理数据的管理类;代码实现如下所示; abstract Class DataEncript {

2017-03-19 17:41:20 363

原创 单例模式

单例模式: 一个类生成一个且只有一个对象实例。代码如下:class db { private static $db_instance; /*设置构造函数为私有函数*/ private function __construct(){ } public static function getInstance(){ if (empty(self::$d

2017-03-19 15:48:55 352

原创 linux 循环设备 loop device操作实践

基本概念循环设备 与 回环设备把文件挂载为一个文件系统卸载基本概念 在类Unix系统中,/dev/loop(或称vnd (vnode disk)、lofi(循环文件接口))是一种伪设备,这种设备使得文件可以如同块设备一般被访问。 在使用之前,循环设备必须与现存文件系统上的文件相关联。这种关联将提供给用户一个应用程序接口,接口将允许文件视为块特殊文件(参见设备文件系统)使用。因此,如果

2016-11-23 23:43:08 1378

空空如也

空空如也

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

TA关注的人

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