自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 微服务与领域驱动的关系

微服务与领域驱动的简要关系:逻辑上看是划分领域。实现上看是确定上下文边界,边界内部可以有很高的耦合度,在边界之外不能有太多的交互。边界与边界之间,不同的上下文之间,会有一个映射。因为不同的领域拥有不同的名字,所以之间需要有一个映射。有了映射关系之后,再通过该映射关系,去确定微服务的边界。并不是说一个领域一个微服务,如果一个领域一个微服务的话,会落入服务太细的怪圈中。...

2021-04-29 22:07:31 343

原创 vmware 桥接模式下无法上网的终极解决方法

1、关闭防火墙关闭物理主机和虚拟机的防火墙再重试;systemctl stop firewalld # 临时关闭防火墙 systemctl disable firewalld # 禁止开机启动2、查看桥接模式下的物理网卡是否对应正确3、查看物理主机的网络属性,关键看 以下两点:1. VMware Bridge Protocol是否选择2.连接时使用的网卡是否跟虚拟机桥接模式下桥接到的网卡一致3.如果有DNE LightWeight Filter,则 取消选择..

2021-04-29 17:48:43 38403 18

原创 Property ‘getUserProfile‘ does not exist on type ‘Wx‘ 问题解决

1、在开发微信小程序,执行命令npm run tsc抛出以下错误:2、进入wx中的源码,发现无getUserProfile方法,初步怀疑版本较低的问题。3、查看package.json文件,miniprogram-api-typings配置项的版本号为"^2.8.3-1"4 、通过链接https://github.com/wechat-miniprogram/api-typings/tags查看api-typings的版本发布情况,已经达到3.X了进一步确认是.

2021-04-26 23:06:04 1232 1

原创 TypeScript应用 极速上手(18)

1、自定义泛型class MyArray<T>{ data:T[] = [] add(t:T){ this.data.push(t) } print(){ console.log(this.data) } //MyArray<number>.map<string>(f: (v: number) => string): string[] //定义一个泛型方法 //U:未知

2021-04-26 17:19:06 60

原创 TypeScript应用 极速上手(17)

1、接口所涉及的角色(1)定义者(2)实现者(3)使用者2、接口的隐式实现(推荐使用)定义者=使用者方便解耦3、接口的显示实现定义者=实现者4、示例//service.ts//定义接口interface Service { login(): void getName(): string getProduct(): string startTravel(): void}//接口实现class RPCService imple

2021-04-26 16:02:21 94

原创 TypeScript应用 极速上手(16)

1、类注意:普通的JOSN对象中也可以有getter和setter方法class Employee { //默认为public // name:string // salary:number //可选参数不用初始化 private allocatedBonus?:number //增加public,相当于定义了两个字段 constructor(public name:string,public salary:number){} //ge.

2021-04-26 14:51:58 115

原创 TypeScript应用 极速上手(15)

1、可选参数串联与非空断言(1)可选参数串联(?),只要有一个值是undefined则结果就为undefined(2)非空断言(!):如果字段不存在,则会抛出ERRinterface Employee { name?:{ first?:string last:string } salary:number bonus?:number}function hasBadName(e:Employee){ // return..

2021-04-26 12:53:28 250

原创 TypeScript应用 极速上手(14)

1、接口的基本定义本质就是简单的描述一个类型,不一定需要实现,实现时只需要符合接口的定义即可2、主要语法,接口主要包括:(1)字段(2)方法对象作为函数的参数时 考虑用类来实现接口(3)可选字段及方法(?) (4) 只读字段3、示例interface Employee { readonly name :string salary:number bonus?:number updatetBonus(p:number): void //一般用.

2021-04-25 17:47:21 61

原创 TypeScript应用 极速上手(13)

1、async-await语法糖(1)await须在一个async函数中使用,异步等待 (2) await关键字返回的是Promise(3)通过try-catch捕捉错误2、示例(1)分步计算function add (a:number,b:number):Promise<number> { return new Promise((resolve,reject) => { if (b === 23){ rejec..

2021-04-25 15:57:13 110

原创 TypeScript应用 极速上手(12)

1、同时等待多个Promise//(2+3)*(4+5)//要求:同时执行(2+3)和(4+5),等结果都到了之后,再执行乘法Promise.all([add(2,3),add(4,5)]).then(res => { //利用元组 const [a,b] = res console.log('result',a,b) return mul(a,b)}).then(res => { console.log('final result',res)

2021-04-25 14:07:03 406

原创 TypeScript应用 极速上手(11)

1、Promise示例(1)同步调用//同步调用 function add(a:number,b:number):number { return a + b } console.log(add(2,3))(2)模拟回调函数调用如果add操作是一个网络请求,在服务器上进行计算,再把结果进行返回,前端单线程的话前端界面不能等待,用户操作就会卡住因此采用回调函数的机制,把结果放在回调函数里面,回调函数不需要返回值function add(a:number,b:numb

2021-04-25 11:23:34 372

原创 TypeScript应用 极速上手(10)

1、前端异步运行机制

2021-04-23 16:50:21 66

原创 解决‘protoc-gen-grpc-gateway‘ 不是内部或外部命令的问题

1、问题背景操作系统:win10GO版本:go.1.15.5GO mod相关配置为:因为被墙的原因,无法直接执行命令go install github.com/grpc-ecosystem/grpc-gateway/tree/v1.16.0/protoc-gen-grpc-gateway 因此,只能先执行命令:go get github.com/grpc-ecosystem/grpc-gateway/tree/v1.16.0/protoc-gen-grpc-gatewa

2021-04-22 22:59:02 2558

原创 TypeScript应用 极速上手(9)

1、部分应用函数场景:第三方函数有两个参数,但是实际情况我们只有一个参数,参数数量不匹配,此种情况,可以利用闭包,先写一个单参数的函数,把函数的整个内容,放到原函数里面,做成闭包,达到利用一个参数就可以调用原来两个参数的函数,达到部分利用函数。2、示例function isGoodNumber(goodFactor:number,v:number){ return v % goodFactor === 0}function fiterArray(a:number[],f:(v:n

2021-04-22 21:25:28 89

原创 TypeScript应用 极速上手(8)

1、函数式编程减少函数的副作用定义一个函数,既可以通过不同的方式打印日志,也可以对数组进行排序。并没有副作用。//函数式编程:减少函数的副作用。//定义一个函数,既可以通过不同的方式打印日志,也可以对数组进行排序。并没有副作用。function loggerComparer( logger:(a:number,b:number) => void, comp:(a:number,b:number)=> number){ //返回一个函数 retu

2021-04-22 18:29:08 87

原创 TypeScript应用 极速上手(7)

1、函数作为“一等公民”主要体现在:变量类型可以是函数 值(literal)可以是函数 对象字段可以是函数 函数的参数可以是函数 函数的返回值可以是函数2、实例let a = [3,5,8,9,7,6,12,35,18,78,11]// 变量类型可以是函数 = literal 是函数// let compareNumber = function(a:number,b:number){// return a-b// }//推荐使用箭头函数(lambda表达

2021-04-22 13:39:14 71

原创 TypeScript应用 极速上手(6)

1、为对象定义方法function registerEmployee(p:any){ return p}const emp1 = registerEmployee({ name:'james', salary:10000, bonus:undefined as (number | undefined), performance:4.5, //对象方法,当然this也有嵌套函数调用的深坑 updateBonus(){ if(!

2021-04-21 17:01:49 83

原创 TypeScript应用 极速上手(5)

1、函数的定义及重载//函数重载(不建议)//仅仅声明一下函数,但是最终要提供一个函数实现function add(a:number,b:number):numberfunction add(a:number,b:number,...e:number[]):numberfunction add( a:number, b:number, c?:number, //c为可选参数 d:number=0, //参数d的默认值为0 ...e:number[] /

2021-04-21 16:24:39 86

原创 TypeScript应用 极速上手(4)

1、对象类型2、示例const emp1 = { name : { first : '四', last : '张' }, gender : 'male' as 'male' | 'femal'| 'other' | 'unknown', //指定初始值为male salary:8000, bouns:undefined as (number | undefined), performance:3.5, b

2021-04-21 15:06:44 82

原创 TypeScript应用 极速上手(3)

1、数组字面量定义let a = ['a','b','c'] //string[]let b = ['a','b','c',4,5] //(string | number)[]console.log("a:",a) //"a:", ["a", "b", "c"]console.log("b",b) // "b", ["a", "b", "c", 4, 5] 2. 指定类型定义//指定类型let c:number[] = [4,5]//通过泛型指定let d: Arra..

2021-04-21 14:45:05 998

原创 TypeScript应用 极速上手(2)

1、基本数据类型数据类型包括:1.number2.boolean3.string4.literal类型5.类型的并集6.any类型7.undefined类型2、关键知识点1.类型的并集function f(s:200 | 400 | 500 | '200' | '400' | '500'){ //union of types string | number let status : string | number = s}2.undefi

2021-04-20 14:48:50 71

原创 TypeScript应用 极速上手(1)

1、安装nodejs(1)下载地址:https://nodejs.org/en/download/,选择相应服务器版本下载、安装。以下相关目录如果没有则需要手动新建。(2)设置PATH环境变量,以win10为例:新建系统变量NODE_PATH:(3)更改全局依赖包下载路径:在命令行窗口中,执行以下语句:npm config set prefix "D:\Program Files\nodejs\node_global"npm config set cache "D

2021-04-20 14:38:01 207

原创 gRPC 的入门实例

1、前提已安装好golang,并开启go mod,同时设置golang的国内镜像2、安装protoc 3.13.0下载链接:https://github.com/protocolbuffers/protobuf/releases/tag/v3.13.0下载相应平台安装包3、为protoc安装go语言插件,安装grpc-gateway V1版本在命令行中,执行以下命令:go install github.com/grpc-ecosystem/grpc-gateway/tree

2021-04-19 23:36:51 201

原创 针对Windows环境 protoc-gen-go 不是内部或外部命令的解决方案

问题:解决方式:运行命令 go env查看GOPATH路径设置环境变量,把GOPATH\bin设置到PATH环境变量中:测试:运行命令:protoc -I=. --go_out=paths=source_relative:gen/go trip.proto

2021-04-18 15:33:34 4448

原创 Git 指定版本克隆

git clone -b v0.20.0 --depth=1 https://github.com/uber/cadence.git-b 后面写上指定 版本标签 , 即 tag, 比如 v0.20.0--depth 表示克隆深度, 1 表示只克隆最新的版本. 如果项目迭代的版本很多, 克隆会很慢

2021-04-18 12:19:00 1408

原创 visual studio code golang代码无法自动补全提示设置

1、设置“useCodeSnippetsOnFunctionSuggest”,【User】和【Workspace】选项都要设置2、设置“Use Language Server”,【User】和【Workspace】选项都要设置

2021-04-18 11:50:05 2092

原创 一张图搞定RPC框架核心原理

2021-04-13 17:37:43 192

原创 《GO语言圣经》读书笔记 第二章 习题解答

练习 2.1: 向tempconv包添加类型、常量和函数用来处理Kelvin绝对温度的转换,Kelvin 绝对零度是−273.15°C,Kelvin绝对温度1K和摄氏度1°C的单位间隔是一样的package tempconvimport "fmt"type Celsius float64type Fahrenheit float64type Kelvin float64const ( AbsoluteZeroC Celsius = -273.15 FreezingC

2021-04-11 23:51:34 286

原创 《GO语言圣经》读书笔记 第二章 程序结构

1.命名规则一个名字必须以一个字母(unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线。大写字母和小写字母是不同的。Go语言中关键字25个,关键字不能用于自定义名字,只能在特定的语法结构中使用。break default func interface select case defer go map structchan else goto package switch

2021-04-09 15:45:35 111

原创 《GO语言圣经》读书笔记 第一章 习题解答

练习 1.1 : 修改echo程序,使其能够打印os.Args[0],即被执行命令本身的名字。package mainimport ( "fmt" "strings" "os")func main() { fmt.Println(strings.Join(os.Args[:]," "))}练习 1.2: 修改echo程序,使其打印每个参数的索引和值,每个一行。package mainimport ( "os" "fmt")

2021-04-09 15:35:46 548 1

原创 《GO语言圣经》读书笔记 第一章 入门

简洁的设计需要在工作开始的时候舍弃不必要的想法,并在软件的生命周期内严格区别好的改变和坏的改变; 一个好的改变可以在不破坏原有完整概念的前提下保持自适应,正如Fred Brooks所说的“概念完整性”。而一个坏的改变则不能达到这个效果,他们仅仅是通过肤浅的和简单的妥协来破坏原有设计的一致性。只有通过简洁的设计,才能让一个系统保持稳定、安全和持续的优化。 Go语言的面向对象机制跟一般语言不同,它没有类层次结构,甚至可以说没有类。 仅仅通过组合(而不是继承)简单的对象来构建复杂的对象。方法不仅可..

2021-04-08 23:24:08 111

Spring2.0宝典源码

Spring2.0宝典源代码,李刚著。分章节代码,注释详细,代码经过优化。

2012-02-13

空空如也

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

TA关注的人

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