🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
- 大Kb和小kb有啥区别?: https://zhidao.baidu.com/question/344188038.html - Golang 默认所有任务都运行在一个 cpu 核里,如果要在 goroutine 中使用多核,可以使用 runtime.GOMAXPROCS 函数修改,当参数小于 1 时使用默认值(Go1.8后不用自己设置) - 没事不要用这个东西-> 设置核数 ![img](https://box.kancloud.cn/a06f64667d15ee987f5a0711785e4785_666x477.jpg) - print是一个阻塞调用,只有阻塞才能引发协程调度 - 又因为你设置了单线程,所以单线程上,阻塞了才会执行到<-ch,不阻塞就会一直死循环下去 ------ - 用 go build -race 做竞态的检测 - 你那个如果是多个服务的,就要考虑用分布式锁,如果是单服务的,直接加锁或者用chan - slice的值:包括一个指针指向底层数组的某处,一个整数表示长度,一个整数表示容量。这三个都是“可变”的,在扩容的时候会发生变化,所以两个 slice 值就分道扬镳了。 - map的值:只包括一个指针,指向一个 hmap 数据块,所以 map 的值本身是“不可变”的。发生扩容的时候只是 hmap 那个数据块在变,所以两个 map 值看到的总是一样的。 - 引用类型:特指slice、map、channel这三种预定义类型 - 建议不要创建一个无法停止和控制数量的协程 - 生成唯一Id : snow-flake - 【string 底层就是一个byte的slice】,只能说类似,并不完全是。(可以取区间, 但不能修改指定索引) ------ - JS的防抖,节流,柯里化和反柯里化(Q:网络抖动问题) : https://www.cnblogs.com/suihang/p/10087946.html 2016全球最强数据库大盘点 : https://yq.aliyun.com/articles/68548 - MySQL 和 PostgreSQL : https://juejin.im/entry/5b14f3476fb9a01e49293bb1 - Go中国 下周三 : https://mp.weixin.qq.com/s/BbZcp5OJSQHNi6nlnu3_eA - 程序员英语单词 : https://www.kancloud.cn/haixu926611/study-english/112096 - CSRF的防御实例(PHP): http://www.moonsec.com/post-627.html - syncthing : https://github.com/syncthing/syncthing 开源的文件同步系统,它使用了其独有的对等自由块交换协议,速度很快,据说可以替换BitTorrent Sync。 - 博客 : https://www.502435.com/archives/279/ - 运行后会生成 文件: ./root/.config/syncthing/config.xml - MySQL一主多从 https://my.oschina.net/u/2399373/blog/2878650 - PHP + Vue : https://blog.csdn.net/qq_41246454/article/details/79863675 - XSHELL下直接下载文件到本地(Windows) : https://www.cnblogs.com/davytitan/p/3966606.html ------ 浅表复制和深表复制(浅表复制:指向同一个地址, 深表复制:复制值到新地址) ------ ## TODO : golang 热更新 (热更新是指生产环境) Golang 题目 : https://www.jianshu.com/p/90b5be35ad3b Go 是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。 了不让该代码包的使用者产生困惑,我们总是应该让声明的包名与其... 没错,通过这种类型推断,你可以体验到动态类型编程语言所带来的一部分优势,即程序灵活性的明显提升。但在那些编程语言中,这种提升可以说是用程序的可维护性和运行效率换来的 也正因为如此,Go 语言的切片类型属于引用类型,同属引用类型的还有字典类型、通道类型、函数类型等;而 Go 语言的数组类型则属于值类型,同属值类型的有基础数据类型以及结构体类型。 关键在于它的“延迟初始化”机制。 延迟初始化:你可以理解为把初始化操作延后,仅在实际需要的时候才进行。延迟初始化的优点在于“延后”,它可以分散初始化操作带来的计算量和存储空间消耗。 环形链表 -> 最后一个块的指针指向第一个块 (链表的变种) 链表适合频繁增加或删除元素场景 通过sleep函数执行sql注入攻击 : https://blog.csdn.net/hurricane_0x01/article/details/49329139 Golang微服务部署在kubernetes go的指针和runtime包有待了解 go调度器处理死循环 : https://gocn.vip/question/2116 我们可以为 Go程序编写三类测试,即:功能测试(test)、基准测试(benchmark,也称性能测试),以及示例测试(example)。 数据库中间键 通过对互斥锁的合理使用,我们可以使一个 goroutine 在执行临界区中的代码时,不被其他的 goroutine 打扰。不过,虽然不会被打扰,但是它仍然可能会被中断(interruption)。 对于一个未包含任何元素值的通道来说,它的关闭会使任何针对它的接收操作立即结束 ## IPC(Inter-Process Communication)进程间通信,提供了各种进程间通信的方法。在Linux C编程中有几种方法 (1) 半双工Unix管道   (2) FIFOs(命名管道)   (3) 消息队列   (4) 信号量   (5) 共享内存   (6) 网络Socket 这些方法主要包括:系统信号(signal)、管道(pipe)、套接字 (socket)、文件锁(file lock)、消息队列(message queue)、信号灯(semaphore,有的地方也称之为信号量)等。现存的主流操作系统大都对 IPC 提供了强有力的支持,尤其是 socket。 BattleServer mmorpg gate 内网穿透 redis连接池 - supervisor 管理多实例不方便, 要改名称 - 我是分配置的,你把这些实例放到不同的目录下,修改每个配置文件的端口不就可以啦 ------ 游戏架构 - 有两种架构,一种是同客户端只和网关通信,网关负责消息分发给服务器,再回传给客户端 - 另一种,就是客户端直接和服务器连,这里网关功能就很薄弱,可以有网关也可以没有 ------ - Json比较xml优势 : http://www.cnblogs.com/wenzhengs/p/8052001.html - map : https://github.com/maq128/gosnake ------ - https://github.com/pingcap/tidb golang 打造的很牛逼的数据库 - https://github.com/lni/dragonboat golang 打造的比etcd快100倍的raft分布式一致性库 ------ > ### 实现接口的方法名区分大小写吗? - 区分大写外部可以访问, 小写仅供内部访问