自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jiange_zh的博客

持之以恒,不乱节奏

原创 竟事而后言——谨记微言,聊以自省

接触不同的人,听不同角度的观点,总会有一些收获。“听了那么多大道理,却还是过不好这一生。”所以我想,还是踏踏实实从小处做起。在与人接触的过程中,汲取到的点滴智慧,让我念念不忘,在此记录下来,聊以自省,希望接下来能够踏踏实实地去践行。 竟事而后言——这是我自己的浓缩,原话大概是:至少要先把事情做成了...

2016-01-06 11:15:44 1902 3

原创 【后台开发拾遗】通信协议演进与JCE协议详解

一、通信协议概述 通信协议是两个节点之间为了协同工作、实现信息交换,而协商的规则和约定,例如规定字节序,各个字段类型,使用什么压缩算法或加密算法等。 1、原始数据 假设A和B通信,获取或设置用户基本资料,一般开发人员第一步就是定义一个协议结构: struct userbase { un...

2019-01-20 15:01:38 2726 2

原创 hashmap C++实现分析

一、简介 Map 是 Key-Value 对映射的抽象接口,该映射不包括重复的键,即一个键对应一个值。 在HashMap中,其会根据hash算法来计算key-value的存储位置并进行快速存取。 本文介绍的C++ hashmap,是一个缓存用的hash_map,实现模仿自Java的HashM...

2018-08-12 17:24:50 5029 0

原创 语法糖:萃取lambda表达式

背景 现在手头主负责的服务代码,基本上都用C++11来开发了,异步编程使用的是TAF的future/promise。 future的then函数,接受的是一个Callback对象,该对象通过promise::bind来生成。 Callback和bind是参考chromium的base::Ca...

2018-06-22 11:39:39 677 0

原创 C++11常用新特性快速一览

最近工作中,遇到一些问题,使用C++11实现起来会更加方便,而线上的生产环境还不支持C++11,于是决定新年开工后,在组内把C++11推广开来,整理以下文档,方便自己查阅,也方便同事快速上手。(对于异步编程十分实用的Future/Promise以及智能指针等,将不做整理介绍,组内使用的框架已经支持...

2018-02-23 19:28:13 41276 18

原创 找出ID字段中,存在A表,但是不存在B表的数据

A、B两表,找出ID字段中,存在A表,但是不存在B表的数据。 方法一   使用 not in ,容易理解,效率低 select distinct A.ID from A where A.ID not in (select ID from B) 方法二   使用 left join…...

2018-02-10 20:14:17 1702 2

原创 游戏后台状态同步与帧同步

最近开始学习一下游戏后台的一些知识,一直很好奇多个玩家之间的数据是如何同步的,查了一下,目前使用的比较多的是状态同步和帧同步。状态同步同步的是游戏中的各种状态。一般的流程是客户端上传操作到服务器,服务器收到后计算游戏行为的结果,即技能逻辑,战斗计算都由服务器运算,然后以广播的方式下发游戏中各种状态...

2017-11-11 23:19:12 5985 1

原创 【Tars】腾讯微服务框架Tars介绍

Tars是【基于名字服务】【使用Tars协议】的高性能【RPC】开发框架,同时配套一体化的【服务治理平台】,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。Tars在腾讯内部名为TAF,内部从08年开始使用,到现在将近10个年头了,今年终于开源

2017-11-11 21:38:52 19563 4

原创 【后台开发拾遗】C/S架构中接入层的安全体系

前阵子,同事对某App与后台交互的数据进行了抓包分析,由于该App未对数据进行安全加密,因此通过抓包分析可直接获取其后台请求的接口,通过构造Http请求,爬取其App内的数据。平日的工作里,接触的比较多的都是业务逻辑,很少关注接入层这一块,经过上面这件事,激起了我对接入层的一些兴趣,要是哪一天自己...

2017-10-22 21:34:06 1948 0

原创 Mysql问题一则:Commands out of sync

最近在使用C++访问mysql(使用mysql提供的C API)时,偶尔会出现一个错误:Commands out of sync; you can’t run this command nowMysql文档中说明错误:Commands out of sync If you get “Comman...

2017-10-22 15:35:43 9702 0

原创 C++使用sort排序导致的coredump(Strict Weak Ordering)

当我们需要自定义排序规则时,需要实现一个比较函数,该函数类似如下:bool cmp(int a,int b) { return a>b; }当cmp返回true时,a将会排在b前面,因此上面的函数将从大到小排序。 换句话说,cmp函数重新定义了“小”的概念(当a>b时,a“小于”b...

2017-10-15 14:57:40 1768 1

原创 【后台开发拾遗】异步代码同步化

在当今的编程世界中,异步编程已经成为了一种习惯。传统的同步阻塞编程,虽然处理流程非常清晰,但是程序常常处于阻塞等待状态,CPU资源利用率低。而早期的异步编程,通过callback的方式进行回调处理,当回调嵌套开始多起来的时候,程序代码可读性变得非常差。 对于C++,协程和Future/Promi...

2017-10-05 19:35:17 877 0

原创 Linux常用文本处理工具总结备忘(grep,awk,sed,cut...)

1. grepgrep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。日常用法:$ grep [-acinv] ...

2017-10-04 10:23:03 4551 0

原创 shell脚本进行数据库查询(分库分表)

背景: 前阵子遇到一个问题,需要从Mysql数据库中查询一些数据,这些数据分布在多个数据库和表中,也就是分库分表。按照某种规则,我们把数据存储在100个表中(10个数据库,每个数据库10个表)。 库名为:db_app_info_$i,其中$i取值为整数0~9; 表名为:t_app_info_...

2017-10-03 11:25:37 1032 0

原创 C++中两个类中互相引用

有时候,我们会有两个类需要互相引用的场景,由于两个类的定义是有顺序的,因此两个类相互引用,不管哪个类在前面,都会出现有一个类未定义的情况。这时可以通过类的前置声明来提前告诉编译器,所要引用的是个类,但由于此时后面的那个类还没有定义,因此无法给对象分配确定的内存空间,故只能使用类指针而不能是类实体。...

2017-10-02 15:18:51 1008 0

原创 非root用户安装python第三方模块

非root用户在安装python模块时,会报“Permission denied”的错误,这是因为python模块默认的安装路径是/usr/local/lib/python2.x/dist-packages/,这是系统路径,需要root权限。(其中2.x表示你的python版本,比如2.6)用户可...

2017-09-17 21:36:06 1221 0

原创 【后台开发拾遗】数据访问、缓存与更新

一个App或者网站,其数据内容是需要不断地更新的,为方便日常运营,我们建立了一个内部使用的运营管理系统。通过运营管理系统,可以配置一系列的运营数据,并写入到DB中。而后台服务器则读取这些数据,做一系列处理之后传输给客户端做展示。由于后台服务端对数据的读取是十分频繁的,因此每次都从数据库读取是不切实...

2017-09-13 22:54:07 642 0

原创 【后台开发拾遗】总帖

正式工作已经2个多月了,工作日忙于写代码,晚上/周末回到家不是打王者“上分”就是追剧。王者荣耀上了王者了,90多集的剧也看完了,接下来还是要干一干正事,好好梳理一下后台开发的一些基础性的知识。后台开发涉及到的知识十分广泛,还需要慢慢地去学习,由浅入深地去了解。为方便读者(包括我自己)查阅,以及敦促...

2017-09-12 23:21:53 632 2

原创 入职一个月——告别学生时代

一个月前,又回来原来的岗位开始工作了。 虽然之前在这里实习了大半年,但是现在的身份已经不同。不能再是那个只抱着学习的心态去做事情的实习生了。一个月来,还得慢慢去适应作为一个正式员工。近来有些困惑,刚好导师找我聊了一会,大部分困惑解开,但是还是需要自己去调节,去适应。希望自己接下来能够多注意下面几...

2017-08-12 21:22:30 1190 3

原创 Mysql联表查询、查询近期某段时间内的数据等

最近使用mysql时用到的一些功能,此处做记录方便日后查阅。联表查询1. 引用两个表SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders...

2017-08-12 11:31:37 1207 0

原创 makefile 入门知识备忘

前言 在windows下,编译、链接工作就是一个按钮的事情,IDE帮你把大部分工作都做了。这当然非常方便,但是如果你对背后的工作原理不了解,就经常会出现一些自己无法解决的、莫名其妙的编译、链接错误。 在linux下,离开了IDE,要编译一个大型工程,就需要借助makefile了。makefil...

2017-05-14 11:29:34 1041 0

原创 【C++后台开发面试】C++语言相关

推荐书籍:《C++primer》 相关读书笔记专栏:重学C++之读书笔记 1. 虚函数 实现多态所必须, 当有虚函数时,类会有一个虚表,对于一个实例,会有一个虚指针(只有 一个)指向虚表,执行前查表。 有子类时,析构函数必须是虚函数。构造函数不能是虚函数(指针未构造)。 构造析...

2017-05-12 12:17:13 2386 1

原创 【C++后台开发面试】网络相关

推荐书籍:《TCP/IP详解》 相关读书笔记专栏:http://blog.csdn.net/column/details/tcp-ip1.html 1. TCP vs UDP TCP 是一种面向连接的、可靠的、字节流服务, UDP 无连接、不可靠的数据报服务。 1. 连接方面: TCP 面...

2017-05-12 12:05:10 3856 1

原创 【C++后台开发面试】STL相关

此部分较为精简,只供面试前联想记忆使用,需要先熟读相关的内容知识才能发挥其作用。推荐书籍《STL源码剖析》(侯捷)。 六大组件及其关系 空间配置器、容器、迭代器、算法、仿函数、适配器 内存管理:内存配置和对象构造/析构分开。 使用双层级配置器:第一级直接 malloc,free;第二级内...

2017-05-12 11:34:39 4653 0

原创 【C++后台开发面试】Linux系统相关

以下复习资料仅供参考,并非面试真题。 用过的 linux 指令 netstat : 显示网络状态 (-a 所有选项,-t 仅显示 tcp,-u 仅显示 udp,-r 路由表) tcpdump : 截获当前所有通过本机网卡的数据包。 -i 指定网卡 tcpdump tcp port 23...

2017-05-12 11:23:14 6293 0

原创 【C++后台开发面试】复习内容整理汇总

前言自从结束实习回到学校之后,一直在忙着毕业设计,旅游,放松,完完全全把技术成长搁下了,多久没有看书,写代码,写博客了。最近等待答辩,毕业旅游安排在答辩结束之后,所以剩下的10多天,总得找些事情做,所以还是老老实实拿起技术这把利器吧。最近听到很多师弟师妹拿到腾讯,阿里,网易游戏等互联网名企的实习o...

2017-05-12 11:20:39 4661 0

转载 【Heydrones】飞手百科第二篇:最实用的无人机操控要点

飞手百科——知识是最好的保险。 本文目录 1,首次飞行必看重点 2,炸机原因TOP8分析 3,安全返航 4,飞行模式详解 -------- (一)首次飞行必看重点 这不是我乱说,很多人都是在前三次飞行中炸机的。 ...

2017-04-03 13:27:01 3963 0

转载 【Heydrones】飞手百科第一篇:一定要看的无人机原理总结

飞手百科——知识是最好的保险。 本文目录 1,无人机的飞行原理 2,无人机的几大系统 3,无人机的外观介绍 4,无人机的专业术语 -------- (一)无人机的飞行原理 旋翼和轮子一样,是一项神奇的发明。 ...

2017-04-03 13:24:28 7484 0

原创 第一个Node.js应用

安装直接从 github clone nvm 到本地, 这里假设大家都使用 ~/git 目录存放 git 项目:$ cd ~/git $ git clone https://github.com/creationix/nvm.git配置终端启动时自动执行 source ~/git/nvm/nvm....

2017-02-01 11:20:05 501 0

原创 Node.js入门知识

最近要开始准备毕业设计了,但是还没有很明确的实践方案,所以还是先读一读别人的项目代码。这里选择了项目亿书的代码来阅读,该项目有一本书介绍,所以可以试着读一下(http://bitcoin-on-nodejs.ebookchain.org)。由于项目是node.js写的,所以需要先了解下其语法知识。...

2017-02-01 11:03:44 490 0

原创 迷笛:追寻自由,做一个理想家

转眼2017年终归来了。跨年夜,与一群陌生的热爱音乐的人一起度过。并非一个乐迷,参加迷笛音乐节仅仅是想着跟不同的人接触,在一个圈子里待久了,思想容易麻木,忘却了思考。之前觉得听歌听哭的人太过于多愁善感,这几天自己在现场,却也竟然受到感染,好几次热泪盈眶。看着台上卖力、享受地表演着,台下欢乐、疯狂地...

2017-01-02 17:35:48 582 1

转载 扛住100亿次请求——如何做一个“有把握”的春晚红包系统?

最近接手一个电视节目晚会的活动需求,跟以往做的有很大区别,因为活动时间短,请求峰值高,而且现场活动的风险非常大。 对我来说也算是一次很好的锻炼机会吧,虽然风险也很大。 刚好看到微信团队推送的这篇文章,看了还是挺有收获的,这里转载一下,以后再回过头来细细品味,也分享给有需要的伙伴看一看学...

2016-12-05 23:12:20 2393 0

原创 2016.11.29 有阻

前言最近一个月真真切切感觉到忙碌起来的时候,仍然坚持去做一些事情是何等困难,比如已经很久没有去梳理知识,写写博客了,怕是自己也渐渐地失去思考的能力。正如一位同学跑步打卡所说: 风雨有阻,节假日有阻,心情不好有阻,心情太好有阻,不在学校有阻,空气质量差于等于轻度污染有阻……想想也真是如此,万事有阻...

2016-11-29 23:38:20 624 0

转载 Merkle Tree学习

区块链相关知识,原文转自 http://www.cnblogs.com/fengzhiwu/p/5524324.html /*最近在看Ethereum,其中一个重要的概念是Merkle Tree,以前从来没有听说过,所以查了些资料,学习了Merkle Tree的知识,因为接触时间...

2016-11-28 23:22:30 3958 0

转载 区块链技术,比特币技术的汇总笔记

区块链: 所谓区块链技术,也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。最早是比特币的基础技术,目前世界各地均在研究,可广泛应用于金融等各领域。 比特币: 概念最初由中本聪在2009年提出,根据中本聪的思路设计发...

2016-11-27 16:15:39 2758 2

原创 【利器】使用rsync进行主机间数据同步

前言 首先,还是先提一下我使用数据同步的一个背景: 公司的电脑是windows 7系统,一般程序开发在本地机器进行,代码开发完之后,需要同步到远程linux编译机上编译。 之前使用eclipse时的同步方案:通过samba将linux主机的项目目录映射到windows主机的一个系统盘J上,然...

2016-11-06 11:20:17 3278 0

原创 【利器】在Windows上使用Babun进行linux开发工作

前言我是一名linux后台开发工程师,按理来说,在linux下进行开发工作再正常不过了。然而,公司的电脑都是统一windows系统,因此十分尴尬。不少同事都是使用windows下的编辑器进行开发,开发完之后将代码同步到linux编译机上编译。在刚来的时候,我也听从同事的建议,使用eclipse进行...

2016-11-05 14:51:33 3903 0

原创 2016.10.17 杂思

杂思

2016-10-17 23:49:33 729 0

原创 vim常用按键整理

前面一篇文章中我们说明了插件的安装和基本的使用:http://blog.csdn.net/jiange_zh/article/details/52572406内容比较杂,本篇将针对我个人的使用做一些整理,方便查阅。一、移动1.按屏幕移动Ctrl + f // 向下移动一...

2016-09-25 11:32:33 533 0

原创 【Linux内核设计与实现】进程调度

调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间。在一组处于可运行状态的进程中选择一个来执行,是调度程序所需完成的基本工作。1.多任务多任务系统分为两类:非抢占式多任务(cooperative multitasking)和抢占式多任务(preemptive multitasking)。...

2016-09-23 13:17:16 902 0

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