Liangjf

The darkest hour is that before the dawn.

设计模式

设计模式之策略模式

设计模式之策略模式 1.意图 根据GOF的定义:定义一系列的算法或操作,并把它们一个个封装起来,并且使它们可以互换替换。以达到算法与业务独立开发的目的。 简单的说就是针对某个业务需求,抽象出解决问题的算法的一个个方法,然后实现封装不同的特定的算法(通过集成抽象类或接口),在客户端需要使用这个算法的时候开业方便的替换就OK了,做到算法操作与业务逻辑解耦,降低了维护成本和易拓展。 2.动...

设计模式

设计模式之模板方法

设计模式之模板方法 1.意图 根据GOF中的定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中实现。模板方法使得子类可以不改变一个算法的结构就可重定义算法的某些特定步骤。 很明显,模板方法就是抽象出某个问题的解决算法,封装算法框架,开放一些特定步骤让子类继承抽象类后重新定义,从而实现改变这个解决算法。这在实际中是实用很广的算法。 2.动机 这样做有很大的好处,最重要的一点我认...

设计模式

设计模式——面向对象设计原则

设计模式——面向对象设计原则 1.什么是面向对象设计 世界是具体的,认知是抽象的。像自然界中的生物、植物、动物一个个名词,就是对一系列具体个体抽象出来的称谓,而鱼、老虎、树等就是一个个实在的具体。哦,也许你会说,树也是对一系列具体个体的抽象出来的称谓,对也不对,对是因为树确实是一系列具体个体的抽象称谓,不对是因为照这个逻辑下去,就会陷入死循环,直到小到细胞,原子,夸克,但是你能保证夸克就...

linux cpp连接并查询mysql

linux C API连接并查询mysql5.7.9

linux C API连接并查询mysql5.7.9 开发环境: ubuntu16.04 mysql5.7.9 原生C API VIM 配置远程连接 配置mysql允许远程连接的方法默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf文件。 一、修改/etc/mysql/my.conf 找到bind-addres...

Mysql

ubuntu16.04 安装 mysql-level

ubuntu16.04 安装 mysql-level 1.下载 mysql-level(直接去官网下载rpm包,我的mysql-server是5.7.9。你下载自己对应的就可以了) 下载连接 2.rpm(centos)是红帽的包,需要Alien转换包格式为deb(ubuntu包格式)。 sudo apt-get install alien sudo alien mysql-co...

Protobuf

Protobuf底层二进制存储

参考官网, 序列化原理 Protobuf底层二进制存储 message Test1 { optional int32 a = 1; } 并设置为a=150,序列化到一个文件中,查看文件,得到下面的二进制: 08 96 01 从底层存储的二进制值看出,Protobuf为什么这么快,节省内存了吧。 有以上的结果是因为 varints 这个特殊的东东。它可以让已个int数据类型的...

Protobuf

阅读 Protobuf 官网的一些笔记

阅读 Protobuf 官网的一些笔记 Protobuf API(The Protocol Buffer API) 每个字段都会有基本的 set_ get_ 方法 string类型的字段可以使用 mutable_ 方法来直接获得字符串的指针。 如果是optional 修饰的类型, 在没有对string类型赋值时也可以使用这个方法 mutable_方法,因为会帮我们自动初始化...

Protocol

Protocol Buffers介绍及例子

Protocol Buffers介绍及例子 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。 protobuf协议是以一个 .proto 后缀的文件为...

Mysql

ubuntu16.04 能启动mysql服务

ubuntu16.04 能启动mysql服务 ubuntu16.04 后, 貌似mysqld在/etc/init.d下,直接执行会报mysqld不在服务中,因此开启mysql服务失败。 所以执行以下命令不能启动mysql服务: /etc/init.d/mysqld start 第一个念头就是把mysql加入系统服务中呗。 但是,一段捣鼓之后发现。。。 ubuntu16.04后, s...

《MySQL技术内幕:SQL编程》

《MySQL技术内幕:SQL编程》读书笔记

《[MySQL技术内幕:SQL编程》读书笔记 2019年3月31日23:12:11 严禁转载!!! <MySQL技术内幕:SQL编程>这本书是我比较喜欢的一位国内作者姜承尧, 早年在学mysql时就听过姜老师的开源mysql网络视频教程, 记得在视频时总是姜老师姜老师的自称, 感到十分的亲切. 这本书主要是讲mysql在应用编程时如何正确并且更高效的根据业务场景编写相应的...