- 博客(22)
- 收藏
- 关注
原创 学校学生心理测评系统
这款系统,是和北大合作开发,并真实用于线上测评场景,该项目有完整后台,以及学生管理等模块。请联系我们 silver_spider@163.com项目从心理测评任务作答到结果查看这一实际场景出发,根据不同类型试题之间的作答操作差异展开功能设计,如:单选类试题作答、多选类试题作答、开放题类试题作答等。同时针对整个作答流程设计了一整套的功能模块,如:查看历史任务结果、查看当前任务结果等。技术栈方面,项目整体采用搭建,路由采用的Hash模式开发。项目兼容移动端展示和操作。
2023-03-11 10:25:49
725
1
原创 Golang 版轻量类 GraphQL 组件
Golang 版轻量 GraphQL为什么使用GraphQL?在实际工作中往往会有这种情景出现:比如说我需要展示一个游戏名的列表,可接口却会把游戏的详细玩法,更新时间,创建者等各种各样的 (无用的) 信息都一同返回。特别是业务类微服务直接交互使用更为方便。为什么选择 amoeba非常轻量、简单、性能好。无需冗余大量配置,无复杂规则,但满足业务需求。原理对接口输入输出的 JSON 依赖规则,进行,该规则利用了JSON Schema特性。规则可以依赖各种配置。本机转发,原接口保持不变,无需修改代码
2020-10-13 14:48:46
486
原创 Golang 规则引擎
Golang 规则引擎,适用于大多数需要逻辑表达式场景,简小有效。支持类型: int string支持操作符: > < >= <= && ||支持两个内嵌函数: in_array(1, []int{1,2,3,4}), ver_compare(x, “>”, “10.1.1”)使用简单:engine, err := NewEngine(v.expr)if err != nil {t.Error(err)}result, err := engin
2020-06-09 11:44:02
2338
原创 Git 操作
回滚 Mergegit revert cae5381 -m 1https://juejin.im/post/5acf4db8f265da239148822d撤销提交git reset --soft HEAD^https://www.cnblogs.com/lfxiao/p/9378763.html
2019-07-19 16:12:43
126
原创 SHELL便利贴
将schedule.txt每行后面插入计划时间,本计划是每周执行四行知识点:shell 数字对比需要用[ -eq ] 且注意[]和左右数字一定要有空格${x} 来进行划定范围,不要使用()declare -i 来显性声明类型while read line 也可以使用awk来替代(()) 来进行计算。输出转义字符原意时,要用 echo -e#/bin/bashdeclare -...
2019-05-05 09:41:39
707
翻译 Golang 内存泄漏场景
虽然Golang 的runtime 会回收内存,但是本文列举的场景仍然会造成内存泄漏。substrings 使用不当造成内存泄漏TODO 此处需要了解下golang 的底层 memory block 分配知识var s0 string // 包级别变量// A demo purpose function.func f(s1 string) { s0 = s1[:50] //s0 和...
2019-05-01 23:41:27
5826
原创 golang channel 要点
本文的代码基于 golang 1.8.3channel 的日常生活为了把channel解释的更易懂,我们虚拟一个家庭,家里有爸爸、妈妈和三个孩子,他们喜欢吃苹果,也喜欢睡觉。爸爸削苹果给孩子们吃:同步模型:爸爸削完,双手被占着,什么也干不了,只能停下来什么等孩子把苹果拿走,他一停下来,就是去睡觉了。异步模型:爸爸削完苹果,放盘子里,然后去干其他工作了,孩子从盘子里拿着吃。但是如果盘子被放...
2019-03-26 15:45:22
352
原创 算法之哨兵和表驱动
看到他人有如下代码片段,可以使用哨兵和表驱动进行优化 uint32_t PbInt64Size(int64_t value) { if ((value & (0xffffffffffffffffL << 7)) == 0) { return 1; } else if ((value & (0xfffffff...
2019-02-25 14:20:42
333
翻译 Pointer 和 Non-Poiner 方法 区别
在Go里,receiver是定义在某个结构体上的,定义后,可以像方法一样调用它。例如,下面代码中的 func(d Dog)package mainimport &amp;quot;fmt&amp;quot;type Dog struct {}func (d Dog) Say() { fmt.Println(&amp;quot;Woof!&amp;quot;)}func main() { d := &
2019-01-26 21:49:15
1020
1
翻译 Golang Receiver 和 函数参数的区别
我们来比较下面两种方式https://grisha.org/blog/2016/09/22/golang-receiver-vs-function/func (d *duck) quack() { // receiver // do something}func quack(d *duck) { // funciton argument // do something...
2019-01-25 08:50:31
2290
翻译 Golang 接口 & 指针
如 http.Handler 接口,有个困惑,为什么 第一个参数是value类型,第二个参数是指针类型呢?type Handler interface { ServeHTTP(ResponseWriter, *Request)}Go里一切传递,都是传值,即便是指针。其实指针是一种特殊的类型包含了地址的值。更进一步的发现,ResponseWriter 是接口类型。type...
2019-01-24 00:19:20
3005
1
原创 Golang map 顺序问题?
举例 map 如下,由于golang map内部存储机制是以key为hash的结构来实现,所以顺序是混乱的。fruits := map[string] int { "oranges": 100, "apples": 200, "banans": 300,}如果希望是有顺序的,可以把 key 转移至 slice,将slice 进行排序,然后输出:// Put th...
2019-01-22 22:57:06
5267
2
原创 如何使用Go实现一个Stack和Queue?
可以使用 slice 实现如下:type Stack [] intfunc (s Stack) Empty() bool{return len(s) == 0}func (s *Stack) Push(v int) { *s = append(*s, v)}func (s *Stack)Pop() int { v := (*s)[len(*s) - 1] *s = (*s)[:...
2019-01-21 23:27:02
298
原创 Golang 代码找错
下面的代码是哪里有问题?type Orange struct { Quantity int}func (o *Orange) Increase(n int) { o.Quantity += n}func (o *Orange) Decrease(n int) { o.Quantity -= n}func (o *Orange) String() string { ret...
2019-01-20 23:25:01
182
原创 如何对比两个structs,或者两个interfaces?
我们可以使用 == 对比结构体,但是一定要确保结构体里没有包含slices,maps,或者functions,这些情况下是不会被比较的。type Foo struct { A int B string C interface{}}a := Foo{A: 1, B: "one", C: "two"}b := Foo{A: 1, B: "one", C: "t...
2019-01-19 09:24:06
947
原创 如何复制slice,map,interface
在Golang 里,可以使用内嵌的copy函数:a := []int{1,2}b := []int{3,4}check := acopy(a, b)fmt.println(a, b, check)// Output: [3 4] [3 4] [3 4]下面的例子,和上面的例子刚好可以作为一个对比。其中等号并不复制切片的内容,只是复制了切片的引用。a := [] int{1, 2}...
2019-01-18 08:36:53
510
原创 Golang 值交换
Golang 有内嵌的值交换操作两个值可以方便的如下交换:a, b = b, a三个值同样可以如下交换a, b, c = b, c, aGolang 里两个值交换的操作是依赖于等号表达式的副作用,原理是将要被赋值的值,会被存储在临时变量里,所以下例子赋值顺序对结果是无影响的,其结果仍然是 a = 2, b = 1。 a := 1; b := 2; a, b, a = b, a, b...
2019-01-17 08:52:36
3070
1
原创 Golang空结构体struct{}用途,你知晓么?
golang 空结构体 struct{} 可以用来节省内存a := struct{}{}println(unsafe.Sizeof(a))// Output: 0理由如下:如果使用的是map,而且map又很长,通常会节省不少资源空struct{}也在向别人表明,这里并不需要一个值本例说明在map里节省资源的用途:set := make(map[string]struct{})...
2019-01-16 09:08:34
15735
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人