自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 go channel 基础知识

1.ubuffered channel 使得进行数据交换的双方在一个可知的状态: 读的一方会一致堵塞直到对方传递数据过来, 写的一方会一直等待直到对方取到数据。2.buffered channel 可以看作信号量,比如用于吞吐量控制:var sem = make(chan int, MaxOutstanding)func Serve(queue chan *Request) { ...

2018-08-02 16:07:44 211

原创 redis-分布式锁

redis提供了一个分布式锁的教科书式(canonical)的实现: Redlock, 实现了一个DLM(Distributed Lock Manager).为了能够非常有效的使用分布式锁,需要至少三个条件:1.安全保证:互斥。在任何时间, 只有一个client 获取到一个锁。2.存活A:死亡即释放。3.存活B:容错,只要 主redis 节点恢复, 客户端就能够获取和释放锁其他...

2018-08-02 12:58:30 190

原创 clickhouse-数据迁移-磁盘扩容

开始上clickhouse的时候比较脑残,服务器上有三个大的盘,每个盘15T, 但是我把最大的几分日志数据都弄到了其中一个盘上了。所以最近磁盘高静,不得不开始考虑数据的重新分布。还好clickhouse提供了比较好的数据移动的支持参照clickhouse的 single page  文档 的 Manipulations with partitions and parts 这个部分。从这方面来讲,c...

2018-08-02 12:57:18 15492

原创 java-性能分析工具

在jvm参数中添加如下参数"-XX:+FlightRecorder","-XX:FlightRecorderOptions=defaultrecording=true,disk=true,maxchunksize=32m,repository=/path/to/jvm/jfr,maxage=168h,maxsize=64g,dumponexit=true,dumponexitpath=/pa...

2018-08-01 16:48:49 245

原创 java-虚拟机

sun的JDK版本从1.3.1开始运用HotSpot虚拟机, 2006年底开源,主要使用C++ 实现, JNI接口部分使用C实现。HotSpot是较新的java虚拟机,用来替代JIT(just in time), 大大提高java的运行性能。Java原先是把源代码编译为字节码在虚拟机执行,这样执行速度较慢。而HotSpot将常用的部分代码编译为本地(原生,native)代码,这样显着提高了...

2018-07-31 10:25:15 156

原创 Java-内存管理

java GC roots的对象包括一下四个地方的对象:· 虚拟机栈中引用的对象· 方法区中静态属性引用的对象· 方法区中常量引用的对象· 本地方法栈中JNI(即Native方法)引用的对象对象引用:1.强引用:Object obj = new Object();  2.软引用:描述有些还有用但是并非必需的对象工作中还没有用到这样的引用,需要多读一些代码3....

2018-07-31 09:45:27 116

原创 java-第一个gradle工程

1.创建目录firsjava2.使用portable 的grable 包 :gradlew  gradlew.bat gradle文件夹, 将这三个文件拷贝到firstjava3. 在firstjava 目录下执行./gradlew init  初始化工程4创建src/main/com.me/ 目录5. 创建一个java类 package com.me.helloworl...

2018-07-27 15:33:45 1019

原创 redis的配置文件

1.支持危险命令重命名,或者隐藏2.连接数设置3.密码设置 其实很简单  

2018-07-27 15:26:51 118

原创 精辟

《领域驱动设计模式、原理与实践》写道:为了避免将代码库变成大泥球(BBoM)并因此减弱领域模型的完整性且最终减弱可用性,系统架构要支持技术复杂性与领域复杂性的分离。引起技术实现发生变化的原因与引起领域逻辑发生变化的原因显然不同,这就导致基础设施和领域逻辑问题会以不同速率发生变化。...

2018-07-27 14:03:02 152

原创 gradle-使用系列1

gradle 编译java或者scala的工程:1.简单的编译代码,打包成jar 这只需要配置: project(':data-client') {}打包后的jar包 在 build/libs/目录下 2.编译部署,打包所有的代码和依赖包到tar或者zip中:project(':xxx-server') { apply plugin: 'application'...

2018-07-27 11:28:21 327

原创 写在前面

我觉得需要对redis做一次全面深入的学习了梳理工作中用到的redis的功能,部署、坑以及优化

2018-07-26 17:47:35 97

转载 linux 调节笔记本屏幕亮度

http://www.ylmf.net/ubuntu/qa/2010123119730.html

2014-05-11 17:01:19 943

转载 Google首席软件工程师Joshua Bloch谈如何设计一款优秀的API【附PPT】

http://www.csdn.net/article/2014-02-18/2818441-How-to-design-a-good-API原文地址

2014-02-18 10:00:55 346

原创 如何写出可读性很高的代码-(1)

研究生毕业已经整整一年了,在一家软件公司上班,也写了不少代码,其间,有很多对于写代码的感受,和思考,写出来和大家分享下,现在思绪还是比较凌乱,以后随着工作的积累,会慢慢进行整理归纳。        直接切入主题吧,在研究生阶段和工作阶段,读了很多关于如何编程的书,代码级的《代码整洁之道》,到代码组织结构级的《设计模式》 《重构》以及 编程思想层面的面向对象设计与分析相关的书籍,如《敏捷软件开发

2014-02-17 11:30:38 786

转载 删除文件夹

int iPathLen = _tcslen(path.c_str()); if (iPathLen >= MAX_PATH) {  return ; } /*确保目录的路径以2个\0结尾*/ TCHAR tczFolder[MAX_PATH+1]; ZeroMemory(tczFolder, (MAX_PATH+1)*sizeof(TCHAR)); _tcscpy

2013-07-15 09:34:53 341

原创 operator << 重载 注意事项

进行类的运算操作符重载时,需要把涉及到的运算符重载的类的头文件包含近年来,例如:#include如果没有包含上面头文件,则下面的类进行operator binary 'class A{ friend ostream& operator  private: string str;}std::ostream& operator { out }这是因为

2013-06-07 16:19:46 593

转载 ubuntu - 中文输入法的安装和设置(菜鸟入门)(http://www.2cto.com/os/201207/144189.html)

Ubuntu 12.04中文输入法的安装 Ubuntu上的输入法主要有小小输入平台(支持拼音/二笔/五笔等),Fcitx,Ibus,Scim等。其中Scim和Ibus是输入法框架。在Ubuntu的中文系统中自带了中文输入法,通过Ctrl+Space可切换中英文输入法。这里我们主要说下Ubuntu英文系统中,中文输入法的安装。安装输入法的第一步,是安装语言包。我们选择System S

2013-06-04 21:56:21 733

原创 autocad——长事物管理——参考模型编辑

在autocad中 利用refedit命令可以实现参考模型的编辑,而长事物管理提供的函数和类能够检出参考模型中的实体进行编辑,并能够返回修改到参考模型中(这地方有些不确定:1,检回的模型只是在参考块中修改了,参考模型的原文件中并没有进行修改, REFEDIT能够对原文件进行修改)。 下面是利用长事物管理进行参考模型检出的例子(该例子来自http://adndevblog.typepad.c

2013-06-04 15:26:13 1013

转载 C++测试框架的选择

框架1.工作量2.可移植性3.fixtures4.异常5.断言6.各种输出7. 测试套件8.MockCPPUnit多需RTTI, STL支持支持很好支持支持不支持Boost.Test一般需RTTI, STL, Boost支持支持最好支持支持支持不支持CppUnitLi

2013-05-30 09:18:18 399

原创 TODO

这个星期学习使用一套单元测试框架-2013.5.291、选择一个非常好的单元测试框架: google test http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html2、使用该框架完成一个小项目3、已经将gtest测试框架集成到项目工程中,测试没有问题;4、阅读gtest源代码(这个周末-谷歌送个儿童节的礼物

2013-05-29 17:22:17 353

原创 tchar char 字符 和 字符数组 字符串操作

如下操作实在类中定义的: TCHAR m_illegal_chars[13];TCHAR temp[13] = {_T('|'),  _T('*'),   _T('\\'),   _T(':'),   _T(';'),   _T('>'),   _T('  _T('?'),   _T('"'),   _T(','),   _T('='),   _

2013-05-29 11:40:36 2411

转载 Martin Follower

Martin Fowler是国际著名的OO专家,敏捷开发方法的创始人之一,现为ThoughtWorks公司的首席科学家.  福勒(Martin Fowler),在面向对象分析设计、UML、模式、软件开发方法学、XP、重构等方面,都是世界顶级的专家,现为Thought Works公司的首席科学家。Thougtlt Works是一家从事企业应用开发和集成的公司。早在20世纪80年代,Fowler就是使

2012-10-15 11:24:17 535

转载 osgi-like c++ implementation

http://blog.cppmicroservices.org/2012/03/29/osgi-and-c++/OSGi and C++ An Overview?Updated on 10/04/2012: Poco OSP facts corrected (source: private mail with the developer)In Septem

2012-10-11 19:28:27 1951

原创 异常的引入对于c++的意义——[0] 开题

占位

2012-10-08 10:42:07 277

原创 Designing for usability(可用性设计)——三个设计与原则

Cloud(1985),“Designing for usability” : 三个设计原则:今早关注用户并持续关注用户;对使用进行经验性测量;迭代式设计;啊哈 是不是很想敏捷开发,但是敏捷开发要早七八年哦。

2012-10-08 10:27:14 301

转载 自底向上设计

自底向上设计  自底向上设计 : zì dǐ xiànɡ shànɡ shè jì   一种设计程序的过程和方法。在设计具有层次结构的大型程序时,先设计一些较下层的程序,即去解决问题的各个不同的小部分,然后把这些部分组合成为完整的程序。   自底向上设计方法是根据系统功能要求,从具体的器件、逻辑部件或者相似系统开始,凭借设计者熟练的技巧和丰富的经验,通过对其进行相互连接、修改和扩大,构成所要求

2012-10-08 10:11:25 411

转载 设计模式—(桥)—实践-反思(1)

——(转自)程序员面试宝典

2012-10-03 11:56:22 1155 1

转载 类的函数调用——(1)

2012-10-01 09:26:01 215

原创 面向对象—基本概念——(2)

是封装 继承 多态封装主要是指类可以隐蔽某些类中的变量 而是通过函数访问和改变继承..就是子类可以继承父类的方法(函数)和变量多态..是和调用虚函数有关的..封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);他们的目的都是为了代码重用;而多态则是为了实现另一个目的——接口重用。多态是你将父对象设置成为一个或更多的他的子对象相等的技术;parent =

2012-09-29 22:58:06 225

转载 困扰专业设计者的错误不在于错误的设计了东西,而是设计了错误的东西——Frederick P. Brooks, Jr.

如题。技术性的东西通过看技术性的文章和书已经实践就可以学到,但是有些东西是学不到的,就是大牛们对于一些问题的看法,这些看法来自他们已经架构起来的知识体系。所以能够把他们的知识体系学习到就成功了。

2012-09-27 13:06:30 310

原创 职业规划——(1)

早上和舍友吃早餐,聊了很多关于我未来的打算的问题,有些话是开玩笑和吹牛的,但是有些还是有可能实现的, 可能也是心血来潮:十年目标:像侯捷一样,对c++整个机制有一个非常完整清晰的认识了解,桌面上的很多书都是侯捷翻译的国外经典的c++类书籍,他的口味还是很适合我的。十五年目标:重构, 马丁·福勒对于重构的讲解应该是非常了得,虽然没有看他的书,但是单从书名就能够知道这是一位面向对象骨灰级人物,

2012-09-27 09:49:00 258

原创 敏捷开发综述——(1)-基本概念

敏捷开发三个概念:1、可以提供必要的纪律和反馈的实践——持续交付,结对编程,面对面交流,业务人员与开发人员一起工作,测试与开发人员一起工作。2、可以保持软件灵活性,可维护性的设计原则。SRP— 单一职责原则,ocp,lsp,dip,isp,rep,ccp,crp,adp,sdp,sap——稳定抽象原则。3、已经被证明针对特定的问题可以平衡这些原则的设计模式——面向软件架构的设计模式,设

2012-09-26 16:46:41 516 1

转载 面向对象-概念探索——(1)

OOP不像过程性编程那样,试图使问题满足语言的过程性方法,而是试图让语言来满足问题的要求。其理念是设计与问题的本质特性相对应的数据格式。——stephen prata面向对象编程的主要目的之一——提供可重用的代码。

2012-09-25 13:13:57 187

转载 类中的引用类型数据成员

与指针比较:相同点: 都是地址的概念; 指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名。不同点: 指针是一个实体,而引用仅是个别名; 引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”,指针可以“见异思迁”; 引用没有const,指针有const,const的指针不可变; 引用不能为空,指针可以为空; “sizeof引用”得

2012-08-25 09:57:17 278

原创 开始接触c++异常

用C++  做了一年的一个系统,但是却存在非常多的bug,系统经常崩溃,不能连续运行很长时间,  以前一直通过判断对一场进行围追堵截,  实在难搞,但是对c++的异常体系很少涉猎,从未用过,对于微软提供的一套seh 异常捕获也从来没有听说过,经过两三天的研究,终于对c++的异常以及seh 了解的比较透彻,现在开始在项目中进行加入c++异常处理,可能已经很晚了,但是要改的还得改,这对系统只有好处。现

2012-08-24 23:11:47 234

转载 马丁·福勒(Martin Fowler)谈重构:什么是重构 ——重构——(1) 转

重构(refactoring)是现代软件工程的核心理念之一。它更是一种普适的方法论,特别是对于惯于宏大叙事但往往流于空泛的中国式思维,是一个非常有益且行之有效的互补。马丁·福勒(Martin Fowler)是现代软件工程的大师之一。在过去十年中,马丁·福勒在商业化信息系统开发领域倡导了许多新的软件开发技术。他在许多领域的工作都为世人所瞩目,包括:面向对象的分析与设计,软件模式,统一建模

2012-03-08 13:24:18 1338

原创 新手成长之路——UML(1)

以前写代码不会去找个软件画画设计,或者找张纸画个草图,总是大脑把整个逻辑想通了,然后即开始写代码, 边写边分析,修修改改,终于写完了一个小的程序,过了一两天在看,虽然整个的框架还能记得住,但是具体的逻辑关系总需要花一段时间才能理清楚,  写程序的整个过程中,开始代码数量增长很快,但是后面修改代码,重构代码则变成非常痛苦的一件事情,只有代码,所以修改的时候你看到的就是代码,很容易陷入到局部细节中,思

2012-02-18 12:47:44 377 1

货郎担的一个c++程序

用动态规划思想解决了一个货郎担问题 ,不过程序中还有不完善的地方,规模是固定的

2010-12-07

空空如也

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

TA关注的人

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