自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(21)
  • 资源 (19)
  • 收藏
  • 关注

原创 我对服务维活的思考

近来,在参加面试,面试过程中也遇到各种各样的问题。现将其中的一个问题分享出来,也分享下自己的思考,如有错误,欢迎指正。 问题:我现在有成千上万台的服务,因为数目巨大,不可能人为的去监控,那么我要如何去监控这些服务的存活或者是否有卡死? 结果:当时,我直接被这个问题卡住了,原因有二: 1. 成千上万台服务的话,意味着本身服务比较多,如果设计一个监控中心...

2019-11-27 09:50:09 219 1

原创 C++11的线程

在C++11中,作为程序猿的我们在编写多线程程序的时候不需要再像以前写个多线程程序那么复杂的调用一系列的系统层面的接口,比如类Unix系统下使用一堆的pthread的接口,在Windows下使用一堆的CreateTheread相关的接口。尤其在进入线程的互斥控制的时候,类Unix系统与Windows的使用更是差距较大。从而在开发的成本上来说,要做一个可移植的多线程程序,复杂度还是大大的上升了。但是

2016-04-13 16:33:17 753

原创 我用select做多路复用踩到的坑

既然说是用select踩到的坑,那么就先直接贴一段使用select的代码上来瞅一下: bool SocketAction(int fd, const char* buf, size_t len, uint64_t milli_expire) { struct timeval tv; tv.tv_sec = milli_expire / 1000;

2016-03-28 10:35:40 1442

原创 c++11的使用心得(二)---右值引用

在C++11中,可能有人在看到别人写代码的时候会有这样的函数声明:template;void RigisterFunc(FuncType&& func);看到这行代码,如果之前没有用过C++11的人,瞬间可能会感觉到一愣,这个&&符号是什么意思?这肯定不是逻辑与的运算,在上网查了之后知道了这个叫做右值引用运算符,是C++11开始引入的机制。但或许很多人在编码的过程中凭借着习惯和经验,

2016-03-13 10:48:59 675

原创 go的学习记录(二)--- 数组与数组切片

在go语言的学习中,少不了接触的就是数组和数组切片,并且这两者的使用也是非常频繁的。因此如果不能进行很好的理解,或许很容易犯错。那么在go中,数组和数组切片都有什么特点,又是怎么声明赋值的,如何使用的呢,下面我就自己的理解总结一下,个人总结可能不全或者有错,望指点。一、数组和数组切片的特点数组是什么就不用多说了,作为开发者,这是经常会用到的东西,相信大家都有自己的理解。现在先总结一下数组的

2016-01-27 12:43:22 4392

原创 C++ Scope Exit

最近在新的项目中帮忙时有对于SCOPE_EXIT的使用,对于这个能够在任何异常或者正常的时候都能执行,这好像是一个很牛逼的代码,激起了我的兴趣,于是瞅了一下这段代码:#include

2016-01-22 16:05:19 4406 2

原创 go的学习记录(一)

近来由于部门想统一所有项目的服务端开发,即以后所有新开的项目均采用同一套框架,这样有助于开发人员在参与多项目开发时完成低成本转换。因此,技术方面通过由技术总监指定了一个同事作为该方面的推动者,推动以后新项目的语言与框架的选型。从目前的意见来看,语言选型可能往go语言方面转换。因此本人也开始了go的学习。在学习过程中也发现了很多好玩的东西,权作记录:一、包的定义与引用go语言同样可以像jav

2016-01-20 16:21:35 778

原创 【杂谈】记近期项目的三次重构

对于程序员的我以及大家来说,代码重构似乎是非常常见的事情,也是大家乐于去做的事情。因为无论是重构自己的设计或代码,还是重构其他人的设计或代码,都能有一种重构后的成就感,会清楚的感觉到重构后代码的干净度以及功能问题的考虑的完善程度。但有时候会出现不得不重构的情况,比如1. 之前的功能实现错误或者不完整,但却难以接手完善2. 为迎合一些策划或产品的特殊需求对设计做了一些特殊的处理,虽然功能得以

2016-01-13 16:42:31 529

原创 使用libevent实现的HTTP客户端和服务端

现在越来越多的应用里需要使用http的请求与服务,对于C++而言,也已经有了很多第三方库对此进行支持。在诸多的第三方库里,异步实现也成了主流,主要原因是同步阻塞的模式在现在的大多数应用里是不适用的。在近来的自己参与的多个项目中,由于接入Http的时间不同,因而在使用过程中也选择了不同的第三方库。之前一次总结了Mongoose实现HttpServer,这次又是使用libevent。之所以选择封装,是

2015-12-28 09:10:49 1798

原创 const 它究竟做了什么?

在C++中,为了定义常量,大部分人都不是继承C的特征去写宏定义,而是使用常量定义const。并且const也遍布了函数的返回值声明和参数声明,以确保函数的返回值或者参数不被使用的时候修改。那么事实上,const究竟做了什么呢?那么这样的话我们就分为三种不同的使用分析分析const:一. const 常量定义的使用。先看一段代码:#include int main(){

2015-12-16 12:02:49 580

原创 c++模板的巧妙

大部分的C++程序员都写过模板。可以说模板是个非常巧妙的东西,它被使用在C++的STL的实现中,也同样经常被用在各种开源代码的底层,更经常被各程序员作为底层代码开发的一个基础。对于模板的概念这里也不再赘述,只阐述模板的巧妙,当然这也只属于个人的理解,可能存在错误,欢迎各同行朋友来指正。首先先看几行代码:templateclass base_1{public: typedef int

2015-12-10 18:05:10 577

原创 Protobuf与Json互转

上次写了一个Protobuf转Json的博文,实际本来是将那篇博文作为上,新写一篇博文作为下,即上为Protobuf转Json,下为Json转Protobuf。然而,上篇写的是使用的Json cpp作为三方的Json解析库,而我近期在项目中又没有再用到Json cpp。但正也因为在另外的项目帮忙,项目中使用了其他的Json解析库,并且该解析库使用C++11编写。我为了该项目的使用,重新封装了Jso

2015-12-01 23:12:18 11231 1

原创 c++使用Protobuf Message转Json字符串(Json库使用Json cpp)

为了一些项目的需要,可能需要google protobuf 的Message结构与Json结构进行互转。我本人也在近期的项目中使用到这个,虽然可以自己写代码一个变量一个变量的进行转化,但终究觉得使用自动化处理会更好,一步到位,其他的成分就只是处理逻辑罢了。因此在项目中做了一个简单的封装,并且已经得到了项目的验证。今天先将protobuf Message转Json结构的代码献上,供大家玩味吐槽,下一

2015-11-23 14:42:31 18053 8

原创 c++利用mongoose实现http服务

近来在项目中需要实现一个http service的功能。虽然可以通过封装socket自己实现http的发送和解析。但考虑到目前网络上还是有大量的http的解析源码,自己再从头实现一番稍显麻烦。因此在网络上搜刮了一番,看到很多实现http的代码, 无一不体现了其轻量级的特点。然而,虽然轻量级,但从代码的量上来说,为了一个http service的功能,引入这许多的代码,也着实不是十分情愿呢。后在

2015-11-20 13:20:44 21175 15

原创 c++ 的vector、array和数组的比较

在c++11中,STL中提拱了一个新的容器std::array,该容器在某些程度上替代了之前版本的std::vector的使用,更可以替代之前的自建数组的使用。那针对这三种不同的使用方式,先简单的做个比较:相同点:1. 三者均可以使用下表运算符对元素进行操作,即vector和array都针对下标运算符[]进行了重载2. 三者在内存的方面都使用连续内存,即在vector和array的底层...

2015-11-15 12:16:17 14028

原创 C++的宏的示例

由于在前段时间写了一个关于c/c++的宏的使用的自我总结,但实际在那个简单的总结中,很多内容并没有总结的很完善。作为个人的随笔,我也抛上来自己的写的一个简单的使用宏的代码,欢迎大家挑毛病:#include #define CompareOperatorDefine(T, oper) \ bool operator##oper(const T& rh) \ { \ ret

2015-11-14 13:23:57 450

原创 c++11的使用心得(一)

c++11标准已经推行很多年了,然后在这几年里,由于所在的项目都没有使用该标准, 因此久久未能接触。近来,由于另外一个项目需要赶进度,被领导临时调动到该项目进行协助开发,因此也算是初次接触了c++11标准。现在就我个人关于c++11的使用心得稍作一点简单的总结。1. c++11对于指针的空指针常量使用nullptr关键字,该关键字在使用时和NULL宏等价,但略有不同。对于NULL宏而言,在c+

2015-11-10 21:34:43 612

原创 Java的反射reflect使用

在Java中提供了reflect类,可以帮助我们完成Java的类的属性的遍历,并且可以使用它完成属性的修改。范例如下:import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class Te

2015-10-27 17:11:54 637 1

原创 关于STL中map的erase迭代器是否失效的讨论

近来,在阅读一份开源代码的时候,看到了类似如下的代码:typedef std::map id_names_t;id_names_t id_names;void EraseName(std::string name){ id_names_t::iterator it = id_names.begin(); while(it != id_names.end()) { if(it->s

2015-10-21 10:16:02 5420

原创 C/C++宏的使用

在进行C/C++的开发中,宏是开发中常用的手段,甚至有人曾经说过,C开发的精华就是宏的使用。虽然宏在C/C++中属于最基础的知识,但是在宏的使用中,如果使用不当,可能会引发一些意向不到的错误。因此自己稍微整理一下自己的理解。一、什么是宏?在C/C++中,宏是C/C++提供的预处理功能的一种,由关键字#define进行定义,并且宏可以定义宏常量和宏函数两种,宏函数更是分为带参函数和不

2015-10-13 17:10:29 801

原创 数据库、sql server语句

2010-03-31 11:10:00 425

深入浅出 MFC 简体版.rar

深入浅出MFC,据说这本书是MFC精华呢。还有一本书叫做VC++深入详解,似乎也很不错呢,不过我没有电子版,也应该有其他人有吧

2010-10-27

cmake-2.8.2-linux

linux下的cmake,似乎可以帮帮大家的忙.如果有需要的可以下载

2010-09-25

cmake-2.8.2

cmake-2.8.2,最新版的windows下的cmake工具

2010-09-25

Database Management System(Second Edition)

个人感觉还算不错的一本数据库教程,不过是英文的

2010-09-15

51CTO技术黄皮书《SQL Server数据库管理精品电子书》

对于初学数据库的同学来说,应该会有一定的帮助的

2010-09-15

dav格式转AVI工具

这个软件是一个绿色软件,并且较小,只需要解压直接实用就行。

2010-08-22

SQL_SERVER_7编程技术内幕_(18)

用c/c++进行数据库操作的一个好的教材

2010-08-06

socket udp 编程

socket的udp编程,不会可以借鉴一下

2010-08-06

程序员手册 v22文档

很好的一个文档,对于程序员而言,应该有一定的帮助

2010-08-06

vc中socket编程步骤

这个文档说明了一些vc socket编程的步骤,可以给新学者作为一个简单的引导

2010-08-06

Susan 算子代码

这个Susan算子的代码,可以进行边缘检测和角点检测。在输入时需要输入读入文件名和输出文件名。诸如:susan2l.EXE try.pgm Eresult.pgm -e;这个只能接受pgm格式的图片和输出的图片的格式也是pgm的

2010-05-03

Canny 算法文档

一个关于Canny算子的文档,里边讲解了Canny算子的公式、步骤等等,是一个很有用的东西呢

2010-05-03

Linux常用命令介绍

这本书的可能大家都不屑于下载,但是这本书却很方便,介绍了众多的Linux命令,介绍详尽,下载后无论什么时候遇到困难命令都可以直接在自己电脑上查看

2010-04-25

Java开源测试工具JUnit教程

一部关于Java开源测试工具Junit的教程,主要讲了junit的设计,还有一些代码

2010-04-25

cmake-2.8.1工具

这个是我最近找到的cmake-2.8.1的工具,以前的那个源代码对应的就是这个。这个工具可以帮助大家编译开源软件

2010-04-25

cmake-2.8.0

一个编译开源软件的工具。之前放上去的cmke-2.8.1的是一个开源文件,所以现在提供这个工具

2010-04-15

cmake-2.8.1

用于进行一些开源软件的编译的工具,所以需要的同学可以下载

2010-04-12

电脑爱好者2009年第22期

电脑爱好者2009年第22期,一本好的电脑用书,可以帮助大家解决很多电脑问题。

2009-11-30

程序员面试宝典.pdf

为程序员的面试提供方便。在本书中不仅有求职方面的信息,还有一些关于编程的基础。

2009-11-30

空空如也

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

TA关注的人

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