自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

花莫弦的博客

脚下的路是走着的路

  • 博客(91)
  • 资源 (6)
  • 收藏
  • 关注

转载 写给我们这些浮躁的程序员

本篇文章为转载,至于是谁写的,我也无从考察,但感觉有些感触,希望和大家分享一下,就如同看过的《从你的全世界路过》那本书中写道的一样,每个人有所感触并不是因为别人,只是因为你从中看到了自己。共勉。    我们是一群和平年代充满浮躁与抱怨的程序员,于是有了下面这篇文章,写给我们这些刚入行浮躁的程序员,如何成长,以下是列出了一些成长的心得,我们不必每条都去实践,但是优秀的程序员成长过程中总会

2015-06-26 08:56:33 533

原创 设计原则和设计模式

一、设计原则简介1、开放封闭原则用抽象构建框架,用实现扩展细节。不以改动原有类的方式来实现新需求,而是应该以继承或组合的方式来扩展类的功能的方式来实现。2、单一职责原则一个类只允许有一个职责,即只有一个导致该类变更的原因。3、依赖倒置原则依赖抽象而不是依赖实现。抽象不应该依赖细节,细节应该依赖抽象。高层模块不能依赖低层模块,二者都应该依赖抽象,面向接口编程。4、接口分离原则客户端不应该依赖它不需要实现的接口。不对外暴露无用的接口,不建立庞大臃肿...

2020-11-11 17:51:24 462

原创 浅谈服务迁云的理解

一、迁云现状1、什么是云 我们一直在讨论服务上云,那么云到底是什么呢? 云是一种服务,可以像使用水、电、煤那样,按需使用、灵活付费,使用者只需关注服务本身。云计算的资源是动态扩展且虚拟化的,通过互联网提供,终端用户不需要了解云中基础设施的细节,不必具有专业的云技术知识,也无须直接进行控制,只关注自身真正需要什么样的资源以及如何通过网络来获得相应的服务即可。2、云服务的现状云服务我们通常从三个方面来进行认识:1)云服务模式基础架构即服务(Iaas):通过虚拟化或动态化将I...

2020-11-09 14:51:46 784 1

翻译 《c++性能优化指南》

这是一篇关于C++性能优化指南的学习笔记,主要是通过阅读学习Kurt Guntheroth著的C++性能优化指南。 这是一本知识量和信息量很大的一本书书,书里详细介绍了影响C++程序性能的原因,也给出了很多提高性能的优化策略。书中不仅讲解了软件和系统方面的相关内容,还涉及了计算机的硬件组成的基础知识,使读者可以全面的了解计算机和程序设计。一、C++代码优化策略总结1、用好的编译器并用好编译器(支持C++11的编译器,IntelC++(速度最快)、GNU的C++编译器GCC/G++(非常符合标准),Vi

2020-08-04 12:24:42 1301

原创 读书笔记《算法图解》

算法图解,通过名字就可以了解到,这是一本通过图解的方式来讲解算法的书籍。 首先需要明确的是,本书适用于对数据结构和算法感兴趣的初学者,如果想要深入研究某一算法,还需专门去看一下针对该算法的专业书籍或详细讲解。 本书主要内容为: 1)通用数据结构图文详解,看完就可以上手进行程序编写; 2)动态规划、图、k最近邻算法等的原理介绍,没有算法实现,先要深入了...

2019-11-23 23:00:56 372

原创 windows 手动安装 mysql5.7

1.mysql下载地址 官网:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 官网我下载的是: 2.mysql解压 可以把解压的内容随便放到一个目录,例如下面目录: 此时加压后的文件中没有data目录和ini文件,my.ini文件是自己新建的,my.ini配置如下:...

2019-11-04 16:48:42 635

转载 《重构,改善既有代码的设计》读书笔记

图片引用地址https://www.cnblogs.com/angeldevil/p/3601730.html

2019-05-15 21:05:30 109

原创 阅读博客记录

https://www.cnblogs.com/ysherlock/https://angeldevil.me

2019-05-14 20:19:41 165

原创 python matplotlib 显示中文方法

想要使用 python matplotlib 绘制图像,假如设置中文图例和标题显示为乱码时,请按照下述方法解决: 1、执行命令: git clone https://github.com/tracyone/program_font && cd program_font && ./install.sh 2、删除 matplotli...

2019-03-27 15:00:19 354

原创 protocol buffer 使用

1. protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用xml进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制...

2018-11-08 19:30:13 467

原创 doxygen 和 graphviz 的使用

1.Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C、C++、Java、Objective-C和IDL语言,部分支持PHP、C#。注释的语法与Qt-Doc、KDoc和JavaDoc兼容。Doxygen可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。2.Graphviz是一个图形可视化软件。Doxygen使用Gra...

2018-11-07 20:50:24 1049

转载 linux 下 vim 配置

1.本示例是在ubuntu下进行vim的安装2.进行vim安装:sudo apt-get install vim3.进行自动补全和插件管理器vundle安装git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle执行 vim ,进入界面执行:BundleInstall,进行基础插件安装,包括自动补全4...

2018-11-06 20:15:36 187

原创 高并发模型

一、基础知识1.pc、ios、android、移动web,通常通过负载均衡服务器(nginx)进行任务分发,经过多web服务器,多业务服务器 ,到数据库或分布式文件系统等;2.高并发服务器模型:多进程并发模型,多线程并发模型,多路io复用模型(select并发模型、poll并发模型、epoll并发模型);3.单核电脑是通过分时复用技术,利用cpu快速切换时间片来达到人感觉上的多进程同时运行;4.T...

2018-06-19 12:07:29 1891

原创 Qt实现艺术字效果

    Qt实现艺术字效果,通常有三种方式,一种是通过绘制机制,另外一种是使用样式表,最后一种是通过图片代替,本次介绍使用绘制来实现艺术字效果。    代码如下(分两种实现):    第一种: QPainter painter(this); QPen pen; pen.setWidth(2); pen.setColor(Qt::red)...

2018-06-03 20:23:41 5983

原创 设计模式——观察者模式

一、定义观察者模式是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。主要解决的问题是,在一个一对多的依赖关系中,当"一"变化的时候,依赖这个"一"的多也能够同步发生改变。1.优点1)观察者和被观察者是抽象耦合的;2)建立一套触发机制。

2017-12-06 21:23:32 230

原创 C++必知必会——读书笔记(3)

二十二、Template Method模式1. 定义一个操作中的算法骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤;2. 这是一种中级控制机制,通常使用基类的共有非虚函数,调用保护的虚函数,派生类可以重新实现基类的虚函数,达到依照框架重新制定执行方式的目的。二十三、名字空间1. 使用名字空间防止命名冲突;

2017-12-04 22:18:59 236

原创 设计模式——工厂模式

一、简单工厂模式简单工厂模式是工厂模式中最简单的一种,他可以用比较简单的方式隐藏创建对象的细节,一般只需要告诉工厂类所需要的类型,工厂类就会返回需要的产品类,但客户端看到的只是产品的抽象对象,无需关心到底是返回了哪个子类。客户端唯一需要知道的具体子类就是工厂子类。除了这点,基本是达到了依赖倒转原则的要求。所以简单工厂模式一般应该于程序中大部分地方都只使用其中一种产品。1、优点1)隐藏了

2017-12-04 22:15:40 223

原创 C++必知必会——读书笔记(2)

十、常量成员函数的含义1. 若想要修改常量成员,需要添加关键字mutable。十一、编译器会在类中放东西1. 在不是确切了解编译器的情况下,不要去管编译器如何处理你的代码,因为那毫无意义。十二、赋值和初始化并不相同1. 永远都不应该对一个未初始化的存储区执行用户自定义赋值操作。十三、复制操作1. 复制构造函数是去完成对未初始化的存储区的初始化,而赋值操作符则是处理一个已

2017-11-27 19:27:19 214

原创 linux下Qt访问sqlserver数据库

下载地址:http://pan.baidu.com/s/1i44vxbf1.安装unixODBC1.tar-xzvfunixODBC-2.3.2.tar.gz2.cdunixODBC-2.3.23../configure--prefix=/usr/local/unixODBC4.make && make install2.安装...

2017-11-21 17:31:18 4462 14

原创 C++必知必会——读书笔记(1)

一、抽象数据类型1.可以使用类这一概念进行理解;2.需要一个能够明确表示定义的名称;3.explicit : C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。1 是个构造器 

2017-11-14 21:37:33 253

原创 你应该知道 装备克制!学会通过出装针对对面!

1、梦魇之牙、裁决之刃:克制程咬金、芈月、曹操、蔡文姬、东皇太一、橘右京等     回复流英雄极其恶心,只要你没有一套秒掉他,他会磨到你怀疑人生。所以对面有这类英雄,必出重伤!而且,制裁之刃远远比饮血剑新性价比高,用15%的吸血换个更有用的重伤,多么的换算呢?出了重伤你就会发现好打得多。 2、末世、破甲弓:克制坦克和高防战士    看对面阵容,如果对面有坦克或者半肉战士,那么末世是很多

2017-11-13 22:27:41 485

原创 MVC、MVP和MVVM

一、MVC    MVC模式的软件可以分成三个部分。    1.视图(View):用户界面;    2.控制器(Controller):业务逻辑;    3.模型(Model):数据保存。    各部分之间的通信方式如下:    1. View 传送指令到 Controller;    2. Controller 完成业务逻辑后,要求 Model 改变状态;

2017-05-02 11:21:24 342

原创 Effective学习笔记1

本文内容一部分是自己理解,一部分是《Effective C++》中节选内容,若想阅读详细实例和分析,请阅读《Effective C++》。    注:其中标题和总结部分引用原文内容。1、视C++为一个语言联邦    1)多重范性编程语言:面向过程、面向对象、函数编程、泛型编程、元编程;    2)主要分为四部分次语言:C、Object-Oriented C++、Template C

2016-08-17 23:15:03 466

原创 VS编译Qt源码

Qt常用的编译方式有两种,一种是使用mingw编译器,另外一种是使用vs编译器进行编译,本文主要介绍使用vs编译器进行编译。1、编译选项    以下编译选项为常用编译选项,可添加在编译命令中,都是可选:    1)-prefix  :指定安装目录默认在;    2)-hostprefix [dir] :指定可扩展的工具库安装路径,默认当前目录;    3) -prefi

2016-08-16 22:57:31 7608 4

原创 DOS基础命令

1、ping      它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作。先

2016-08-15 22:28:05 277

原创 VS+Qt开发环境搭建

Qt 除了使用QCreator进行开发,还可以使用例如VS和eclipse等IDE进行集成开发,下面就介绍一下使用VS + Qt的开发方式。    注:Qt4 只能和VS2010以下进行集成,Qt5至少vs2010以上是没有问题的,以下并没有测试过,如果想要用例如VS2013和Qt4进行集成开发,只能够重新编译Qt4,并且单独使用designer进行UI界面的开法。 1、安装准备 

2016-08-14 22:56:22 996

原创 STL常用容器对比

STL的常用容器大致有以下8个:1.vector    vector是一种动态数组,在内存中具有连续的存储空间,支持快速随机访问。由于具有连续的存储空间,所以在插入和删除操作方面,效率比较慢。vector有多个构造函数,默认的构造函数是构造一个初始长度为0的内存空间,且分配的内存空间是以2的倍数动态增长的,在push_back的过程中,若发现分配的内存空间不足,则重新分配一段连续的内存空间

2016-08-13 22:50:34 3077

原创 互联网商务模式

一、O2O    O2O即Online To Offline,是指将线下的商务机会与互联网结合,让互联网成为线下交易的平台,这个概念最早来源于美国。O2O的概念非常广泛,既可涉及到线上,又可涉及到线下,可以通称为O2O。主流商业管理课程均对O2O这种新型的商业模式有所介绍及关注。2013年O2O进入高速发展阶段,开始了本地化及移动设备的整合和完善,于是O2O商业模式横空出世,成为O2O模式

2016-08-12 17:41:18 1143

原创 Qt样式表QSS基本使用

Qt具有一种名为样式表的文件qss,主要结构与css相似,用于将界面与样式风格相互分离,形成同web相同的可以随意换肤的效果。一、QSS语法    和css 一样,他也有由一个选择器和具体的样式描述组成,选择器指定了是对象,样式描述指定了具体的样式风格。如:    QPushButton { color: red }指QPushButton对象的前景色为红色。    选择器主要包括

2016-08-11 23:21:53 2700

原创 PPT滚动条文本框

在使用PowerPoint制作幻灯片时,会遇到这样的问题:一个图文并茂的幻灯片,左面是图,右面是说明文字,文字内容过多,不能全部展示;又如,产品 演示,分成若干页,上翻下翻十分不便,放在一页又受版面限制,容纳不下……其实可以用“控件工具箱”来解决,具体实现如下:    1.新建一个幻灯片,选择所需版面。    2.打开“控件箱工具箱”  点击[视图]→[工具栏]→[控件工具箱],或在任意工

2016-08-10 22:06:59 2019 1

原创 使用windeployqt.exe进行依赖查找打包

Qt 官方开发环境使用的动态链接库方式,在发布生成的可执行程序时,需要复制可执行程序的依赖库,如果自己去复制依赖库,可能会遗漏,导致可执行程序在别的电脑里无法正常运行,因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe,用以进行依赖库的查找,已经可执行程序的打包。执行方式是在Qt for Desktop 中执行windeployqt.exe命令进行打包。集成开发环境

2016-08-09 22:56:53 3956 1

原创 数据库开发基础

一、编程简介QtSql模块提供了与平台以及数据库种类无关的访问SQL数据库的接口,这个接口由利用Qt的模型视图结构将数据库与用户界面集成的一套类来支持。QSqlDatabase代表数据库的关联。Qt使用驱动程序同各种数据库的接口进行通信。Qt4.8.6主要包括以下一些驱动程序:QDB2 QIBASE QMYSQL QOCI QODBC QPSQLQSQLITE QSQLITE2 QTD

2016-08-06 23:18:15 1660

原创 VS调试查看Qt内置类型

利用VS调试Qt程序,通常情况下无法查看QString等Qt内置类型的值,只能够利用QDebug进行输出显示,但是这样引起的问题就是每次调试的时候都需要重新编译,当然这是不包括自己编写库的情况,下面来介绍另外一种方式可以让利用VS在调试Qt程序的时候直接像查看C++内置类型(例如int)一样进行查看值。    1.打开VS的安装目录,找到Common7\Packages\Debugger下面的

2016-07-19 09:21:43 3858 3

原创 windows系统启动过程

1、当你按下开机键时,最早是由主板BIOS 芯片中的BIOS 程序来执行硬件检测任务的,如果检查过程中发现关键硬件的故障,就会发出特定的响声通知用户,并停止启动。而BIOS 程序是哪里来的呢?这是在主板出厂时固化在芯片中的一段程序。    2、当硬件没有问题时,BIOS 程序就会读入硬盘的主引导记录,将下面的任务交给主引导记录代码去完成。而主引导记录又是哪里来的呢?这是在安装操作系统时对磁盘进

2016-06-23 22:40:16 590

原创 设计模式——单例模式

一、单例模式的定义    单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。 二、单例模式的使用场景1、日志系统;2、windows的任务管理器;3、网站的计数器;

2016-06-21 23:06:45 289

翻译 Qt属性系统

(本篇文章为Qt官网英文文章,此为翻译整理所作)The Property System    Qt提供了一套和其他通用编译器提供商所提供的属性系统类似的属性系统 ,然而,作为一个独立于编译器和平台的库,Qt不能依赖像__property或者[property]那样的非标准编译器特征。Qt的解决方案是在支持任意标准平台上的C++编译器的基础上进行工作。它基于元对象系统,元对象系统也通

2016-06-16 22:12:44 1175

原创 Qt事件系统

The Event System一、事件    不同于广义上的事件,在程序中事件通常指由于某些动作而产生的响应的消息。    Qt常见的事件类型包括鼠标事件、键盘事件、拖放事件、滚轮事件、绘屏事件、定时事件、焦点事件、移动事件、尺寸该表事件、窗口隐藏显示事件等。    本质上Qt就是利用QApplication进行事件的分发,而利用QObject进行事件的接收和处理的。

2016-06-14 23:16:50 1893

原创 C++常用类型转换

C++大体上有两种风格的类型转换,显式类型转换和隐式类型转换,而显式类型转换又分为两种,一种C风格的强制类型转换,另外一种使用类型转换运算符进行类型转换。 一、隐式类型转换    隐式类型转换通常出现在以下几种情况:    1.在不同类型的运算操作中    int intNum = 1;    double douNum = 1.1;    double addSum =

2016-06-13 21:47:15 422

原创 学习Python(1) —— Python运行环境安装

一、安装python    1.https://www.python.org/getit/ 下载python3进行安装部署,步骤包括选定模块(默认全部选中),选择安装路径,其他的下一步,安装完成。 二、eclipse && python环境搭建    1.http://www.oracle.com/technetwork/java/javase/downloads/index.ht

2016-06-12 23:16:10 347

原创 Qt项目管理

一、qmake的介绍    qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具。    手写Makefile是比较困难并且容易出错的,尤其是需要给不同的平台和编译器组合写几个Makefile。使用qmake,开发者创建一个简单的“项目”文件并且运行qmake生成适当的Makefile。qmake会注意所有的编译器和平台的依赖性,可以把开发者解放出来只

2016-05-18 10:53:05 828

浅谈服务迁云的理解xmind

文档中描述了目前云服务的现状,根据现状进行了服务迁云的优劣、影响以及原因的分析,最后给出了参考的实施步骤

2020-11-09

正则表达式参考手册

正则表达式是非常通用的技术,学好受益无穷

2015-08-02

javascript参考手册

用于javascript开发必备手册,男女老少皆宜

2015-07-30

html常用文档

用于html的编写,其中包括属性和各种常用的html标签

2015-07-04

CSS样式参考手册

主要用于支持样式表的编程技术,如Qt的开发,HTML5的开发,现在的版本主要以CSS3为主流。

2015-07-02

OrCAD图文教程

OrCAD 基础教程,一步一步的操作方法

2014-09-23

空空如也

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

TA关注的人

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