自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 Test_select

【代码】Test_select。

2023-10-11 16:39:38 58

原创 微积分学习笔记(2):用Go语言画函数图像

直接使用三角函sinsinsin:绘图过程1 创建一个绘图2 生成一些函数的点3 将这些点连成线条4 将绘图保存到图片5 绘图效果

2023-09-25 09:49:18 313

原创 微积分学习笔记(1):函数基础

yfxy = f(x)yfx其中x∈Dx \in Dx∈D,对于每一个xxx,都有唯一的yyy与之对应,x1x2x_1、x_2x1​x2​的函数值可以相同,但同一个xxx,不能有多个yyy。

2023-08-02 09:08:23 221

原创 【DDD读书笔记】Specification模式:将隐式概念显性化

在一个大型系统内,如果仅仅使用一个方法(IsOverDue)来表达规则,那么这个规则将会很快被淹没在复杂的对象中,特别是在新增了宽限期这个规则后, 而如果这个规则还是频繁变化的,那就更加需要进行一层抽象与建模。为此,领域驱动设计提出了Specification模式,它用来将隐式概念显性化。

2023-07-17 09:12:50 237

原创 Go语言的rune类型

定义// rune is an alias for int32 and is equivalent to int32 in all ways. It is// used, by convention, to distinguish character values from integer values.type rune = int32rune是int32的别名类型,用于存储Unicode编码的单个字符,字符串需要用[]rune表示。rune字面量常规可显示字符字符必须是Unicode编码

2020-11-24 09:57:01 844

原创 《大象:Thinking in UML》读书笔记(3)UML核心元素之参与者(Actor)

1 UML版型UML版型(stereotype),也被称为类型、构造型。是对UML元素基础定义的扩展,在同一个元素的基础定义上赋予特别的含义,是的这个元素适用于特定的场合。例如用例有“业务用例”、“业务用例实现”等版型,类有“接口”、“边界类”、“实体类”、“控制类”等版型。除了UML已经定义的版型,为了在某种场合下让元素表达某种特定的含义,版型也是可以自己定义的。如包元素有“子系统”、“组织结构”、“模块”等默认版型,在具体项目中,也可以自己另外定义“文档”、“开发小组”等版型,以表达业务含义。2 参

2020-07-06 17:33:35 718

原创 《大象:Thinking in UML》读书笔记(2)建模基础

目录1 建模2 用例驱动3 抽象层次4 视图5 对象分析方法1 建模建模(Modeling),是指通过对客观事物建立一种抽象的方法用以表征事物并获得对事物本身的理解,同时把这种理解概念化,将这些逻辑概念组织起来,构成一种对所观察对象的内部结构和工作原理的表达。建模涉及两个基本问题:怎么建即方法论。UML采用面向对象的方法建模。模是什么问题领域 = ∑1n\sum_{1}^n∑1n​抽象角度抽象角度 = 问题领域边界之外的参与者的业务目标 = 业务用例业务用例 = ∑1n\sum_{1}^n

2020-07-06 14:33:26 286

原创 《大象:Thinking in UML》读书笔记(1)为什么需要UML

目录1 面向过程2 面向对象1 面向过程面向过程方法认为我们的世界是由一个个相互关联的小系统组成的。每个小系统都有明确的开始和结束,开始和结束之间有着严谨的因果关系。只要我们将这个小系统中的每个步骤和影响因素都分析出来,就能完全定义这个系统的行为。如上图的传统商务流程:消费者提交购买请求后,销售部将数据传递给财务、生产线,并产生订单;财务处理完成后更新订单状态;生产线根据订单要求生产产品,并传递给物流;物流送货完成,并更新订单状态之后,整个商务流程就结束了。这个图被称为DFD(Data

2020-07-06 11:36:44 275

原创 使用链表实现队列(Golang)

package queuetype Queue struct { head *QueueNode tail *QueueNode}type QueueNode struct { data interface{} next *QueueNode}func NewQueue() (q *Queue) { head := QueueNode{} return &Queue{&head, &head}}func (q *Queue) Push(data ..

2020-05-25 00:39:20 444

原创 堆算法

1 基本概念1.1 定义堆是一种树状数据结构,它满足如下性质:堆序性:任一节点值均小于(或大于)它的所有后代节点值,最小值节点(或最大值节点)在堆的根上。结构性:堆总是一棵完全树,即除了最底层,其他层的节点都被元素填满,且最底层尽可能地从左到右填入。 1 11 ...

2020-04-12 20:19:42 1918

原创 《Go程序设计语言》Exercise 11.1

1 题目Exercise 11.1 Write tests for the charcount program in Section 4.32 实现2.1 改造源代码原代码是一个main包,改造成函数:// Copyright © 2016 Alan A. A. Donovan & Brian W. Kernighan.// License: https://creativec...

2020-03-26 09:41:06 236

原创 Go例程与操作系统线程的区别

Item线程Go例程栈大小固定大小,一般为2MB变长大小,初始大小一般为2KB,运行时视需要扩展,最大可达1GB调度器内核调度器scheduler,每隔一段时间会有一个硬件定时器超时,导致scheduler被调用,scheduler会中断当前线程,并保存线程上下文,切换到另外的线程执行,每次调度都涉及用户态/内核态的切换Go语言自带的调度器,采用m:n调度,即将...

2020-03-04 09:20:49 266

原创 GOMAXPROCS含义与用法

1 含义Go调度器(scheduler)用来决定Go例程最多可以在多少个线程上执行,在m:n调度机制里面,GOMAXPROCS就是那个n。2 默认值操作系统CPU数3 哪些任务不需要占用线程sleeping的Go例程由于通信阻塞的Go例程4 哪些任务需要占用线程阻塞在I/O或其他系统调用的Go例程调用非Go函数的例程,如CGO一般的活跃Go例程其中,前两种任务虽然占用...

2020-03-04 08:30:46 3428

原创 Python正则表达式

1 正则表达式的使用步骤Import the regex module with import re.Create a Regex object with the re.compile() function. (Remember to use a raw string.)Pass the string you want to search into the Regex object’s s...

2020-01-20 10:32:41 388

原创 使用Local协议搭建本地Git服务器

Git管理员在服务器侧创建项目仓库,如项目名称为sample,则在任意目录(如/f/git_server)下执行:git init --bare sample.gitbare参数的意思是创建裸仓库,即服务器侧仅用来管理项目,不生成工作区(working directory)。命令执行后会在当前目录下创建sample.git目录,这就是sample项目的远程仓库。[外链图片转存失败,源站可...

2020-01-14 12:50:44 389

原创 使用Golang发送邮件

背景CloudUSN/UNC版本共源,需要对共源隔离文件进行看护,在出现异常时给代码提交人自动发送邮件。golang包gomail实现func SendHuaweiMail(from string, to []string, cc map[string]string, subject string, body string, attaches []string) error { m :...

2020-01-14 12:49:37 601

原创 Python Tips

1 builtin functions1.1 range的三种形式range(5) # 0 1 2 3 4range(1, 6) # 1 2 3 4 5range(5, 0, -1) # 5 4 3 2 12 作用域There are four rules to tell whether a variable is in a local scope ...

2020-01-14 12:47:22 213

原创 我的书单

目录语言类Linux算法类重构与设计模式编程修养工具类语言类语言中文书名英文书名作者CC程序设计语言The C Programming LanguageBrian W. Kernighan / Dennis M. RitchieGoGo程序设计语言(Go语言圣经)The Go Programming LanguageAlan A. A. Donovan...

2020-01-14 11:38:17 147

原创 leetcode 23 合并K个排序链表(Merge k Sorted Lists)

题目描述Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.Example:Input:[ 1->4->5, 1->3->4, 2->6]Output: 1->1->2->3->...

2019-10-01 15:13:04 95

原创 leetcode 19 删除链表尾部第N个元素(Remove Nth Node From End of List)

题目描述Given a linked list, remove the n-th node from the end of list and return its head.Example:Given linked list: 1->2->3->4->5, and n = 2.After removing the second node from the end,...

2019-09-28 16:23:22 162

原创 leetcode 17 电话号码的字母组合(Letter Combinations of a Phone Number)

题目Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent.A mapping of digit to letters (just like on the telephone buttons) is g...

2019-09-27 10:01:06 107

原创 Go例程与无缓冲channel

基本语法如下语句创建一个新的go例程,该例程的执行入口为routine1,该语句执行后立即返回:func routine1() {}go routine1()channel是go例程之间通信的方式之一,定义一个channel的语法如下,其中的chantype可以是基本数据类型(如本例的int),或自定义类型:type chantype intc := make(chan chanty...

2019-03-24 12:33:34 289

原创 读书笔记:《让云落地:云计算服务模式(SaaS、PaaS和IaaS)设计决策》

读书笔记:《让云落地:云计算服务模式(SaaS、PaaS和IaaS)设计决策》读书笔记:《让云落地:云计算服务模式(SaaS、PaaS和IaaS)设计决策》读书笔记:《让云落地:云计算服务模式(SaaS、PaaS和IaaS)设计决策》读书笔记:《让云落地:云计算服务模式(SaaS、PaaS和IaaS)设计决策》读书笔记:《让云落地:云计算服务模式(SaaS、PaaS和IaaS)设计决策》...

2018-11-24 09:29:17 2994 2

原创 Golang设计模式-行为型-观察者模式

引例某城市气象站需要你开发一个应用,该应用需要完成如下功能:保存气象站提供的温度、湿度、PM2.5等气象数据,并提供更新接口,以便气象站在气象数据有更新时调用;提供三种气象看板:当前天气看板负责显示实时温度和湿度;统计看板负责显示最近10天的平均温度和湿度,空气质量看板负责显示PM2.5的值;在气象数据有变化时及时通知到三种看板,以便看板能够及时更新。最直观的实现type Weat...

2018-11-17 17:02:33 511 1

原创 python列表(list)、元祖(tuple)、集合(set),和字典(dictionary)的比较

数据类型 列表(list) 元祖(tuple) 集合(set) 字典(dictionary) 定义 a_list = [1, True, ‘aa’] a_tuple = (1, True, ‘aa’) a_set = {1, True, ‘aa’} a_dict = {‘name’: ‘pirlo’, ‘age’: 21} 有序 有序...

2018-07-01 16:47:16 971

原创 Golang命令行参数解析:flag包的用法及源码解析

1 命令行参数的定义命令行参数用于向应用程序传递一些定制参数,使得程序的功能更加丰富和多样化。命令行标志是一类特殊的命令行参数,通常以减号(-)或双减号(–)连接标志名称,非bool类型的标志后面还会有取值。以git log命令为例,例如我们要观察最近的10条commit记录,且要显示每条记录修改的文件信息:git log --stat -n 10其中的--stat和-n 10就是

2018-01-20 17:06:03 7596

原创 Golang单元测试与覆盖率

1 概述C/C++和Java(以及大多数的主流编程语言)都有自己成熟的单元测试框架,前者如Check,后者如JUnit,但这些编程框架本质上仍是第三方产品,为了执行单元测试,我们不得不从头开始搭建测试工程,并且需要依赖于第三方工具才能生成单元测试的覆盖率。相比之下,Go语言官方则提供了语言级的单元测试支持,即testing包,而且仅通过go工具本身就可以方便地生成覆盖率数据,也就是说,单元

2017-12-27 23:22:06 11930

原创 基于Docker和Golang搭建Web服务器

1 场景描述基于centos7的docker镜像搭建golang开发环境在docker容器内,使用golang实现一个Web服务器启动docker容器,并在容器内启动Web服务器我购买了一个最低配的阿里云ECS服务器,并安装好了git和docker,然后在本地实现应用场景,并将源码上传到github,然后再到ECS服务器下载代码,生成镜像,并启动容器,场景图示如下: 2 你可能会问为什么

2017-11-03 22:38:51 3180

原创 Golang设计模式-创建型-抽象工厂

1 引例接上文Golang设计模式-创建型-工厂方法 ,有一天,李雷听说韩梅梅不但喜欢吃汉堡,还喜欢吃鸡翅,怎么办呢?让工厂的Create方法既生产汉堡,又生产鸡翅吗?小皮说:不好不好,这违反了“单一职责”原则,生产汉堡与生产鸡翅耦合在一起,任何一种方法发生变更都会毫无必要地影响另外一种产品的生产,有没有更好的办法呢?当然有,且听小皮道来…2 抽象工厂2.1 定义抽象工厂在工厂方法的基础上引入了“产

2017-09-02 22:23:35 489

原创 Golang设计模式-创建型-工厂方法

1 引例仍然是汉堡的故事,在Golang设计模式-创建型-简单工厂 一文中,我们提到简单工厂的缺点之一是当产品种类较多时,工厂逻辑会变得非常复杂。哪里复杂,我们就分解哪里,这是分治法最朴素的思想,既然工厂逻辑复杂,那我们就把它分解一下吧。2 工厂方法2.1 定义工厂方法通过定义一个工厂基类和产品基类,并派生相应的工厂和产品子类的方式,实现由具体工厂生产具体产品的目标。2.2 工厂方法三要素工厂系列的

2017-08-30 21:52:14 1510

原创 Golang设计模式-创建型-简单工厂

1 引例李雷喜欢上了韩梅梅,他知道韩梅梅喜欢吃汉堡,于是就想买汉堡给她吃,但李雷不确定韩梅梅喜欢的是肯德基的汉堡还是麦当劳的汉堡,怎样帮助他呢? 最直观和最简单的实现就是if+else: if prefer == "KFC" { CreateKfcHamburger()} else if prefer == "McDonalds" { CreateMcdonaldsHambur

2017-08-20 23:16:08 488

原创 Golang的面向对象

如你所知,封装、继承、多态和抽象是面向对象编程的4个基本特征,本文描述Golang语言是如何实现这些特征的。1 Golang的面向对象类型Golang实现面向对象的两个关键类型是struct和interface,其中struct类似C++的普通类类型,interface则对应抽象类类型。与C++采用public/protected/private指示成员和方法的可见性不同,Golang采用大小写标识

2017-08-19 10:28:26 9151 6

空空如也

空空如也

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

TA关注的人

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