摘要:
LibEvent 能记录内部的错误和警告日志,如果编译进日志支持功能,也会记录调试信息.默认情况下这些消息都是输出 到 stderr,你也可以通过提供自己的日志函数的方法来覆盖这种行为. 为了覆盖 LibEvent 的日志行为,你需要自己编写满足 event_log_cb 格式的函数,然后将函数作为参数传入 event_set_log_callback().无论什么时候只要 LibE... 阅读全文
摘要:
sudo apt-get install zlib1g-dev下载:libzip-1.0.1.tar.gztar zxcv libzip-1.0.1.tar.gzcd libzip-1.0.1./configure; make; make install下载:curl -O http://www.zlib.net/zlib-1.2.11.tar.gztar zxcv zlib-1.2.11.... 阅读全文
摘要:
1.0 安装gitlab docker pull gitlab/gitlab-ce:latest # docker命令安装 docker run -d --name gitlab -p 8443:443 -p 8989:80 -p 8022:22 -v /var/docker/gitlab/conf 阅读全文
摘要:
定义一个操作中的固定的算法骨架,而将一些步骤延迟到子类中。把固定的实现写在基类中,变化的部分定为纯虚函数,由子类实现。 场景:1、在软件构建过程中,对于某一项,它常常有稳定的整体操作结构。但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架和应用之间的关系)而无法和合任务的整体结构同时实现。 阅读全文
摘要:
动机 在软件系统中,经常面临着"某些复结构复杂得对象"得创建工作, 由于需求得变化,这些对象经常面临着急剧得变化, 但是他们却拥有比较稳定一致得接口。 如何应对这种变化?如何向"客户程序(使用这些对象得程序)" 隔离出"这些易变对象",从而使得"依赖这些易变对象得客户程序" 不随着需求改变而改变 常 阅读全文
摘要:
适配器模式属于结构型的设计模式 [类的适配器] [对象适配器] , 它是结构型设计模式之首(用的最多的结构型设计模式)。 适配器设计模式也并不复杂,适配器它是主要作用是将一个类的接口转换成客户希望的另外一个接口这样使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 优点 1.屏蔽了具体的实现方式,实现了依赖倒转。 2.可以把不统一的接口封装起来,使之成为统一的接口。 3.把... 阅读全文
摘要:
动机: 1、在软件构建中,某些对象使用的算法可能多样性,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂; 而且有时候支持不使用的算法也是一个性能负担。 2、如何在运行时根据需要透明地更改对象的算法? 将算法与对象本身解耦,从而避免上述问题? 定义一系列算法,把他们一个个封装起来,并且 阅读全文
摘要:
在软件系统中,经常面临着"一些列相互依赖的对象"的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。 如何应对这种变化?如何绕过常规的对象创建方法(NEW),提供一种"封装机制"来避免客户程序和这种"多系列具体对象创建工作"的紧耦合? 1、如果没有应对"多系列对象构建"的需求变化,则没 阅读全文
摘要:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。 Factory Method使得一个类的实例化延迟(目的:解耦,手段:虚函数)到子类 "对象创建"模式 通过"对象创建"模式绕开New,来没避免对象创建过程中所导致的 紧耦合(依赖具体类),从而支持对象创建的稳定。 他是接口抽象之后的第一步工作 阅读全文
摘要:
网络运维工具 1.0 ifconfig 用于显示或配置网络设备的命令 关闭、打开网卡 启用网卡 ifconfig eth0 up 禁用网卡 ifconfig eth0 down 修改ip、子网掩码 ifconfig eth0 10.82.16.195 ifconfig eth0 10.82.16.1 阅读全文