自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我一点也不皮的博客

想到什么写什么

  • 博客(19)
  • 资源 (1)
  • 收藏
  • 关注

原创 从零开始构建gRPC的Go服务

k3u1fbpfcp/aabfecec8d634ff4ac7470747aef53c3~tplv-k3u1fbpfcp-watermark.image?)Protocol Buffers and gRPC是用于定义通过网络有效通信的微服务的流行技术。许多公司在Go中构建gRPC微服务,发布了他们开发的框架,本文将从gRPC入门开始,一步一步构建一个gRPC服务。...

2022-07-11 23:49:14 2654

原创 在netlify上部署golang web应用

Netlify是一个专门托管静态文件的云。这使得它非常适合托管开发人员博客、宣传册网站,甚至只是一个个人简历。它甚至内置了对Hugo的支持。但是Netlify也有各种动态托管解决方案,他们的functions服务是托管Go Web应用程序的一种非常简单的方法,而且通常是免费的。

2022-08-22 22:43:56 478

原创 Go的数据结构与实现【Set】

是值的集合,可以迭代这些值、添加新值、删除值并清除集合、获取集合大小并检查集合是否包含值,集合中的一个值只存储一次,不能重复。本文代码地址为go-stl这是集合的一个简单实现,还不是并发安全的,为了简单和容易理解而没有引入锁资源。单元测试这是上面代码的单元测试,它详细解释了如何使用它,以及任何操作的预期结果:并发安全第一个版本不是并发安全的,因为一个可能将一个值添加到集合中,而另一个正在获取集合列表或大小。以下代码在数据结构中添加了一个,使其并发安全,实现非常简单,只需要在每个方法中添加和。上面的测

2022-06-10 15:43:38 387

原创 DNS基础知识以及golang实现的简单DNS服务器

DNS基础DNS(Domain Name System)是域名系统的缩写,因此DNS的关键在于对请求的域名给予相应的IP地址解析响应。域名是由一串用点分割的字符组成的Internet上计算机(组)的名称。域名的主要作用是便于记忆一组服务器的地址,并提供字符映射到IP的对应关系。DNS的查询过程想要理解DNS,首先就需要熟悉DNS的查询过程。DNS的查询按一定顺序进行,那就是host文件->DNS缓存->DNS服务器。当DNS接收到域名解析请求时,会首先去检查本机的host文件(一般Li

2022-02-24 12:00:50 2972

原创 flask打造的简雅风格todo应用

本文我们将构建一个增删改查的Todo应用,该web app基于Python3.7开发,用到了Flask和SqlAlchemy两个三方库。Flask是Python的一个流行简单的web框架,SqlAlchemy提供了更简洁的操作数据库方式。至于前端加入一些CSS样式,以便美观。准备环境首先,我们使用pip来安装所需要的依赖,命令如下:pip install Flask Flask-SQLAlchemy然后在根目录创建一个template文件夹,Flask框架会自动识别该文件夹下的HTML文件,我们可

2021-07-14 22:25:41 206

原创 Java设计模式之装饰器模式

装饰器模式装饰器模式动态地将附加职责附加到对象。装饰器为子类提供了灵活替代方案,以扩展功能。图示每个组件可以单独使用,也可以由装饰器包装每个装饰器都有一个实例变量,该变量保存对其装饰的组件的引用ConcreteComponent是我们将要动态装饰的对象优缺点优点装饰器模式可用于在运行时扩展(装饰)某个对象的功能。装饰器模式是子类的替代方法。子类化会在编译时添加行为,并且更改会影响原始类的所有实例;装饰可以在运行时为单个对象提供新的行为。装饰器提供按需付费的方式来添加功能。可以

2021-05-22 21:50:46 333

原创 Java设计模式之代理模式

代理模式老板不干活,小弟跑断腿,这就是一种代理模式特性代理设计模式提供了一种创建代表另一个类功能的类的方法。代理可以连接任何东西。网络连接,内存中的大对象,文件或其他昂贵或无法复制的资源。代理就像一个包装对象,客户端正在调用该包装对象以访问幕后的真实服务对象。代理最常用于对象的延迟加载的实现中。…解释现实世界中的例子可以是支票,也可以使用信用卡代替我们银行账户中的内容。它可以代替现金,并在需要时提供一种获取现金的方法。而这正是代理模式的作用:“控制和管理对其所保护对象的访问”。与

2021-05-22 20:15:35 114

原创 Java设计模式之建造者模式

建造者模式建造者模式允许使用正确的操作顺序来创建一个复杂的对象。构造过程由一个主管对象负责,该对象仅需要知道要创建的对象类型。图解建造者模式中包含以下重要部分:Product:定义了由简单对象逐步构建复杂对象的类Builder:抽象类/接口,定义了产生复杂的Product对象所需执行的所有步骤ConcreteBuilder:提供了用于构建Product对象的实际代码的Builder类Director:监督按顺序执行步骤以构建Product对象的类入门再来看一个入门实例,还是以生产

2021-05-22 17:06:20 176

翻译 Golang实现RESTful API

原文地址:Creating a RESTful API With GolangWeb应用中,可能需要多个REST API来动态渲染页面内容,完成更新或删除数据库中数据的功能。本文将构建一个成熟的REST API,实现『GET』,『POST』,『DELETE』和『PUT』方法,完成CRUD操作。为了保持简单,这里不与数据库进行交互。运行环境Go 1.11+目标了解如何在Go中创建自己的RESTful API,处理相关方面的问题。知道如何在项目中创建可以处理POST,GET,PUT和DELE.

2021-05-12 15:21:48 1698

原创 go实现的TCP版本的聊天室

源代码chat.gopackage mainimport ( "bufio" "fmt" "log" "net" "strings")const ( NickName int = iota JoinRoom ListRooms SendMessage QuitChat)const ( NickNameCommand = "#nick" JoinRoomCommand = "#join" ListRoomsCommand = "#rooms" Se

2021-05-10 17:29:15 157

原创 纯css实现太极图

纯css实现太极图动画概览步骤划分区域绘制样式动画源码概览这是最终的效果如何通过纯粹的css样式去实现这一动画呢?让我们一步一步来完成。步骤划分区域我们先需要在html中绘制一个静止的太极图,这就需要将太极图划分成不同的区域,然后为每个区域添加相应的样式。我们可以按照下图的方式来划分太极图区域:其中,每个不同的区域以不同的颜色填充,这样一来可以看出,我们将太极图划分为了六个区域,为了方便区分,我们为每个区域添加独特的class名称,分别为:taichi–left、taichi–right

2021-04-04 16:49:39 1356

原创 Java设计模式之工厂模式

工厂模式工厂模式是一种创建型的设计模式,它提供一个接口,让子类决定要实例化哪种对象,就如同名字所言,像一个加工厂,告诉它要什么就给你什么。特性使用工厂方法来处理创建对象的问题,而无需指定必须创建的对象的确切类通过调用工厂方法而不是通过构造函数来创建对象没有将创建逻辑暴露给客户端工厂模式是Java中最常用的设计模式之一实现在接口内定义一个工厂方法让子类实现上述工厂方法并确定要创建的对象在Java中,虽然构造函数无法实现多态,但通过允许子类创建对象,实例化过程就有了多态行为,因此

2021-02-06 20:30:31 194

原创 Java设计模式之单例模式

单例模式单例模式,顾名思义代表了单独一个实例。一个类只有对象产生,并只提供一个访问对象的方法,典型的单身狗思想。单例的不同情况一个最简单的单例模式样例:public class Singleton { private static Singleton instance; // private constructor // 无法通过new关键字来获取新的实例 private Singleton() {} // 提供一个访问对象的方法

2021-02-03 23:27:14 184

原创 Java设计模式之状态模式

状态模式状态设计模式,一种行为设计模式,允许对象在内部状态发生变化时改变它的行为。特性一种行为设计模式,设计模式四人帮之一允许对象内部状态变化时改变行为和有限状态机概念相似类似于“策略设计模式”,它提供了一种通过调用模式接口中定义的方法来切换策略的方法根据对象的内部状态变化封装了对象的各种行为为对象在运行时更改其行为提供了一种更简洁的方法详细说明上图为状态模式核心流程图,为了实现这一模式,必须要定义一个状态接口State,在这个接口中会定义一系列的动作。举一个具体的例子来说明

2021-02-02 19:34:55 182

原创 网络小说垂直搜索引擎

最近在GitHub上面看见一个有意思的项目owllook,是一个基于其他搜索引擎构建的垂直小说搜索引擎,采用了python的异步爬虫和异步web框架sanic,正好最近在看python的fastapi异步web框架,就在该项目的基础上做了一些改动,简单地实现了项目的功能。实现的效果预览我的项目地址:everbook参考项目地址:owllook...

2020-07-11 11:25:30 1284 1

原创 Fatal: HttpRequestException encountered解决方法以及Windows的git凭证管理器百度云分享

在使用git向GitHub提交代码时候发现,即使配置了ssh key,也会报Fatal: HttpRequestException encountered的错误,并且要求输入账户名和密码网上查了一下发现是Github 禁用了TLS v1.0 and v1.1,必须更新Windows的git凭证管理器才行。更新地址是这里。但是不知道什么原因,下载非常慢,就1M的东西老是网速卡成0,我也是试了试...

2020-02-12 21:26:47 570

原创 N-gram模型的训练以及应用

N-gram模型以及Go应用

2019-08-01 12:20:32 4767 5

翻译 遗传算法及其应用

遗传算法定义:遗传算法(Genetic Algorithm,GA)是计算数学中用于解决最优化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。

2019-06-27 16:49:44 15995 1

原创 Huffman树求权值算法

二叉树的带权路径长度(WPL)是二叉树中所有叶节点的带权路径长度之和。给定一颗二叉树T,采用二叉链表存储。设root为指向T的根结点的指针,设计求T的WPL算法。typedef struct node{ int weight; //结点的非负权值 struct bitptr *left,*right; //结点左右指针}int WPL(bitptr root){ return wp...

2018-12-14 23:44:38 3514 5

个人博客网站django开发

django开发的个人博客网站,基于bootstrap开发,包含博客分类,评论,点赞等功能。

2019-03-25

空空如也

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

TA关注的人

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