- 博客(35)
- 资源 (1)
- 收藏
- 关注
原创 golang gin/net/http demos
1."net/http"包可以用来做什么?可以通过url接口进行参数、文件的传递,并获取响应response。方法包括:GET、PUT、DELETE、POST等。举个例子:在浏览器中输入:http://localhost:8080/start_test?projectid=QQ%E9%A3%9E%E8%BD%A6&zoneid=0,则将参数projectid=QQ%E9%A3%9E%E8%BD%A6和zoneid=0传递给服务器,服务器会返回一个响应,在浏览器页面显示。这是采用在浏览器中输入
2021-07-05 15:29:29 253
原创 ES学习demo大全
为了便于以后使用ES方便,自己整理了ES使用的demo,如下:package mainimport ( "context" "encoding/json" "fmt" "log" "os" "reflect" "time" "github.com/olivere/elastic/v7")// 索引mapping定义,这里仿微博消息结构定义const mapping = `{ "mappings": { "properties": { "user":
2021-06-28 15:07:25 794
原创 elasticsearch使用过程中的坑
在使用es的过程中遇到了很多坑,导致花费了很多精力。为了避免后面犯同样的错误,将这些坑记录在这。1.搜索结果最大返回值默认为10000问题解决这个问题的步骤应当是:设置max_result_window的值按照上图的提示改写代码2.search.max_buckets值1000限制问题解决:如果增加这个值之后仍然报这个问题,则继续调大,若调整到100000000还是不行,则可能是别的问题引起的。3.插入数据后,立马进行查询,查询不到问题插入数据后,立马进行查询,可能会遇到查询不到
2021-06-28 15:01:56 362
原创 go语言学习--RabbitMQ学习(routing交换器绑定队列)
交换器需要和队列绑定才能使用绑定队列需要一个额外的参数routing key,routing key决定了消息由交换器插入哪一个队列。err = ch.QueueBind( q.Name, // queue name "", // routing key "logs", // exchange false, nil)err = ch.QueueBind( q.Name, // queue name "black", // routing key "l
2021-05-17 19:52:37 321
原创 go语言学习--RabbitMQ学习(Publish/Subscribe交换器的用法)
fanout交换器的使用fanout交换器将接收到的消息发送到所有队列中。package mainimport ( "log" "os" "strings" "github.com/streadway/amqp")func failOnError(err error, msg string) { if err != nil { log.Fatalf("%s: %s", msg,
2021-05-17 17:31:43 297
原创 go语言学习--RabbitMQ学习(work queues)
一.消息丢失可能的原因及其解决方法1.worker未完成工作便崩溃、关闭、断连了问题来源: 工作任务消息发送给工人(worker),但是工人(worker)尚未完成全部工作任务,便死掉了。该工人接收到的,尚未完成的和尚未进行的工作任务消息,将全部丢失。解决方法: 使用RabbitMQ的消息确认机制。将auto-ack参数设置为false msgs, err := ch.Consume( q.Name, // queue
2021-05-17 16:36:11 338
原创 go语言学习--RabbitMQ学习(概论及hellowold实例)
一.什么是RabbitMQ?RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。二.RabbitMQ可以用来干什么?用于程序之间进行通信,可以是一个程序,也可以是多个程序。通信过程为,生产者程序将消息发送给消息队列(RabbitMQ的服务端),消费者可以从消息队列获取消息。三.RabbitMQ原理是什么?生产者:产生消息,并将消息发送给消息队列。消费者:从消息队列中获取消息。交换器:我们不是把消息直接发送到队列里面的,而是先发送到了交换器,交换器再
2021-05-17 14:53:29 322
原创 go语言学习--day4interface
package mainimport( "fmt")//接口是一种类型,规定了该类型有哪些方法//可以使用接口实现多态//例1/*type cat struct{}func (c cat) speak() { fmt.Println("喵喵喵~")}type dog struct{}func (d dog) speak() { fmt.Println("汪汪汪~")}type pig struct{}func (p pig) speak() { fmt.Pr
2021-05-14 16:15:58 117
原创 go语言学习--day3方法
package mainimport( "fmt")//在一个函数前面加一个变量作为接收器,即为一个方法//例如:type person struct{ name string age int sex string}func (wlm person ) PrintMsg() { fmt.Println(wlm.name) fmt.Println(wlm.age) fmt.Println(wlm.sex)}func (wlm *person ) PrintMsgPtr(
2021-05-13 20:59:45 132
原创 go语言学习--day3(函数)
package mainimport ( "fmt")func main() { //函数 fmt.Println("函数学习") //函数格式 /* func 函数名(参数列表)(返回值列表){ 函数体 } */ //递归 number := 1 numbers := Recurrent(number) fmt.Println(numbers) //多返回值 a,b,c:=FunTest() fmt.Println(a) fmt.Println(b)
2021-05-13 18:54:10 136
原创 go语言学习--day2
package mainimport( "fmt" "strings" "strconv" "encoding/json")//结构体type Employee struct{ Name string Ages int ID int}func main() {//基础数据类型和复合数据类型//1.基础数据类型var my_int int = 10;fmt.Printf("%08b\n",my_int)var my_float float32 = 1.1101fmt.
2021-05-13 15:35:05 127
原创 go语言学习--day2-1
go语言数据类型有四种:基础类型、复合类型、引用类型、接口类型基础类型–数字、字符串、布尔型复合类型–数组、结构体引用类型–指针、切片、字典、函数、通道,都是对程序中一个变量或者状态的间接引用接口类型–抽象的类型go语言只有强制类型转换T()3.基础数据类型3.1整型:整型:int int8 int16 int32 int64无符号整型:uint uint8 uint16 uint32 uint64无符号整型:uintptr,用于存放指针,底层编程时使用3.2浮点型:float32
2021-05-12 11:32:16 128
原创 虚拟磁盘实践小结
虚拟磁盘实践小结用四周时间完成了虚拟磁盘项目,项目过程中遇到许多困难,也学到许多东西。现总结如下:1.软件开发流程软件开发流程为:需求分析->详细设计->代码编码调试->测试和修改。需求分析:基于鲁棒图和用例图,对需求进行分析,确定软件功能。这一步非常重要,决定了后续详细设计,并绝对软件最终实现。因此,需求分析需要细致,需要绘制出尽可能详尽的用例图和鲁棒图。详细设计:基于类图进行软件详细设计,确定需要的类、类的职责、类之间的关系以及设计原理,需要和需求分析相对应,确保包含所有
2021-05-11 17:20:05 431
原创 go语言学习--day1
1.go可以用来做什么?go可以用来开发类似控制台程序"os"、进行图片处理"image"、文件操作"bufio"、网络编程"net/http"、并发编程go(语言天生支持并发)2.go的程序结构?命名规范:字母下划线;区分大小写;推荐驼峰法;命名尽量简短;声明:变量的声明var;常量的声明const;函数的声明func;类型的声明type;包的声明package;变量:零值初始化机制,变量声明出来之后,若未初始化,则会自动进行初始化;简短变量声明:=,只能用在函数中;go
2021-05-10 15:20:44 145
原创 设计模式--里氏转换
里氏转换:is a的关系,即一个子类就是一个父类。例如:动物父类和狗子类,一只狗是一个动物。为了满足里氏转换,子类需要有父类的接口。比如:动物有接口”吃“,狗也必须有接口”吃“,这样使用动物指针指向狗类对象时,调用吃接口,才能狗让狗吃,而不是动物吃。动物和狗都是依赖与吃这个接口的。...
2021-04-29 15:18:15 116
原创 设计模式--开闭原则
开闭原则:对扩展开放,最修改封闭。即,软件实体(类、模块、函数等)应当是可以扩展的,但是不可以修改。个人理解1.对软件实体做更改会影响程序的现有功能,可能会导致意想不到的问题,因此进行程序测试时,又需要重复进行一些本来可以避免的测试用例。2.采用复合开闭原则的设计模式,可以使代码结构清晰,维护和修改代价小。3.比如:使用工厂模式代替简单工厂模式,进行某一功能修改或扩展时,只需要修改相应的工厂类和产品类即可,不会对其他功能模块产生影响,也只需要对修改的功能做测试即可。简单工厂模式工厂模式如
2021-04-29 14:46:09 143
原创 设计模式--单一职责原则的个人理解
单一职责:一个类只能有一个职责,这个职责应当是明确的,完整的。就是说,一个类只能干一件事,并且具备干这件事所需要的所有方法。1.一个好的例子class CmdFactory {private: std::string mCmdString; CmdSplit* mCmdSplit; CmdTypeAnalyze* mCmdTypeAnalyze; CmdParaAnalyze* mCmdParaAnalyze; CmdPathAnalyze* mCmdPathAnalyze;public
2021-04-29 12:04:01 176
原创 设计模式--简单工厂
简单工厂:定义产品基类和产品子类,并定义一个用于生产产品对象的工厂。避免需要增加新产品时,客户端代码的修改。如果有新产品,需要增加新产品子类,并修改工厂中生产产品的方法即可。缺点是,不满足开闭原则,增加新产品需要修改工厂类。...
2021-04-29 11:41:31 109
原创 设计模式--策略模式
策略模式:定义算法基类和算法子类,算法类之间可以相互替换。可以根据需求变化增删修改算法类。而算法类的修改,不会影响使用算法的客户端。策略模式可以减少if else的使用。
2021-04-29 11:28:15 121
原创 Effective C++理解--确保每一个构造函数都将每一个成员初始化
**问题:**创建一个对象,而对象中的某些属性没有被初始化。在使用该类的这些属性时,会导致错误。**解决:**确保每一个构造函数都将每一个成员初始化。初始化和赋值的区别是什么?1.对于基本数据类型,差别不大。例如:int a = 12;a = 13;2.对于自定义类初始化类对象,通过初始化列表实现。初始化的过程为,分配内存空间,在内存空间中填充数据。赋值类对象,通过传参数到构造函数中,并在构造函数中对类属性进行赋值。赋值的过程为,用构造函数,在进入函数体之后,进行的是对己构造好的类对象赋值
2021-04-28 17:08:10 126
原创 如何管理自己写的代码-SVN的使用
参考博客:https://www.cnblogs.com/yehuisir/p/10599042.html步骤如下:在本地搭建服务器–安装VisualSVN–添加仓库–将本地文件添加到仓库在本地安装SVN–安装SVN–安装TortoiseSVN
2021-04-28 15:09:22 188
原创 内存泄漏检查
一VS2019诊断工具辅助检查通过截取快照,可以观察堆栈增长和消减情况。二、代码中插入代码#ifdef _DEBUG#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)#else#define DEBUG_CLIENTBLOCK#endif#ifdef _DEBUG#define _CRTDBG_MAP_ALLOC#include <stdlib.h>#include <crtdbg.
2021-04-27 20:21:31 148
原创 c++控制台程序中如何实现清屏操作
#include <iostream>#include <string>using namespace std;int mian(){ cout<<"请输入cls命令"<<endl; string cls ; getline(cin,cls,'\n'); if (string("cls")==cls) { system("cls"); } else { cout<<"cls error"<<endl;
2021-04-13 10:55:05 2875
原创 笔记:c++获取当前时间
c++获取当前时间的方法#include<iostream>#include <ctime>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime ( &rawtime ); cout<<"Current local ti
2021-04-12 15:58:17 130
原创 C#实现--超市管理系统
侵删~非原创,自己码的。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace SupermarketManagermentSystem{ class Supermarket { //为超市创建仓库对象 CangKu ck = new CangKu();
2020-06-21 21:21:44 3506 1
原创 残版飞行棋
残版飞行棋数据存储方式没想清楚,导致功能实现不全。该程序仅实现掷骰子看谁先累计到mapSize。问题:程序设计全靠大脑,缺乏规范化的流程,导致数据存储出现问题。解决:可再设置一个数组用于存储原始地图,为节省空间也可设置临时变量对特殊字符’+'和‘-’进行存储。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;//由于
2020-06-17 20:53:00 230
原创 面向对象编程练习(自己敲的代码,参考黑马c++课程)
#include <iostream>#include <vector>#include"speech_manage_sys.h"#include <algorithm>int main(){ while (1) { //菜单选择框架 speech_manage_sys sms; sms.showmaue(); int select; cout << "请输入您的选择" << endl; cin >>
2020-06-11 21:15:00 256
原创 职工信息管理系统(面向对象设计实例)
文件存储,交互界面,数组存储。部分功能未实现。#include<iostream>#include"workermanager.h"#include"employee.h"#include "worker.h"#include "manager.h"#include "boss.h"#include <string>using namespace std;int main(){ WorkerManager wm; int choice; while(1)/
2020-06-05 18:06:42 731
原创 c++链表实现通讯录管理系统
c++实现通讯录管理系统用于实现通讯录的管理,通过链表实现。联系人修改函数省略未写。addressbook.cpp#include <iostream>#include <string.h>#include "subfunction.h"using namespace std;//显示菜单//***************//*** 1.添加 ***//*** 2.显示 ***//*** 3.删除 ***//*** 4.查找 ***//***
2020-06-01 18:55:56 1694
原创 面试题:指针使用过程中应该注意的问题
指针在使用过程中应该注意的问题有哪些?该如何避免?1. 未初始化的指针2. 数组指针越界3. 野指针野指针产生的原因:未初始化、数组指针越界、释放内存后没把指针指向NULL。解决方法:定义的时候就初始化;严格限定变量范围,防止数组指针越界;内存释放后将指针指向空。ps:还有一些问题如:指向不同类型的数据,此处不作总结。...
2019-09-26 10:56:02 555
原创 快速排序实现
快速排序原理:递归调用#include "stdio.h"void quick_sort(int a[], int start, int end);#define LEN 5void main(){ int k; int a[LEN] ; printf("请输入%d个数字:\n", LEN); for (k = 1; k < LEN; k++) { scanf_s...
2019-09-25 22:40:45 135
原创 华为嵌入式笔试题
华为嵌入式软件开发笔试题:在一字符串中使用****隐藏敏感字符?#include “stdio.h”int main(){int i=0, j=0,YS_LEN,MG_LEN,k=0,L=0,M=0,BZ;char a[1000];char b[1000];//*****************************************输入printf(“请输入:”);s...
2019-09-25 22:12:14 972
原创 MDK5编译错误——error:L6002U
很多人首次安装了MDK5,使用工程实例进行软件安装测试时都会遇到这个错误:error:L6002U:could not open file .\bulabulabula.我们习惯用中文进行用户的命名,比如博主之前的用户名为“习之”。而MDK5只能识别纯英文路径,如果是带有中文的路径,就会出现上述错误。遇到这个问题,博主也非常心累。网上看了各种解决方法,都不能解决问题。甚至把电脑搞崩溃了,其他人也...
2018-11-15 20:33:10 4937
原创 Ubuntu中GCC和G++安装流程
unbuntu中GCC和G++安装流程前提:Ubuntu进入root用户模式(设置root的方法)Ubuntu可上网流程:进入root用户模式输入sudo -s 回车即可设置网络连接点击虚拟机——设置——选择NET模式(也有其他网络连接的方式,此处仅介绍NET模式)打开此电脑——管理或者我的电脑(win7等)分别点开VMware Authorization Serv...
2018-11-08 18:54:47 528
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人