摘要:
在浏览器上开发GO和Vue!(基于code-server) 曾几何时,开发者们都被安装编程环境苦恼,尽管现在很多语言的开发环境已经不难装了,但是如果我们能有一个运行在云端的编译器,那么我们就可以随时随地通过浏览器编写、编译我们的代码啦!! 先看我们最终效果: 完美运行Go程序!下面开始整个环境搭建。 阅读全文
摘要:
用户程序通过内存分配器(Allocator)在堆上申请内存,而垃圾收集器(Collector)负责回收堆上的内存空间,内存分配器和垃圾收集器共同管理程序中的堆内存空间。 基本概念 垃圾分类 语义垃圾:也就是内存泄漏,指的是从语法上可达的对象,也就是被其他对象引用的,但是从语义上来讲是垃圾。这类垃圾, 阅读全文
摘要:
现在无论是客户端、服务端或web开发都会涉及到多线程的概念。那么大家也知道,线程是操作系统能够进行运算调度的最小单位,同一个进程中的多个线程都共享这个进程的全部系统资源。 线程 三个基本概念 内核线程:在内核空间实现的线程,由内核管理 用户线程:在用户空间实现的线程,不归内核管理,由用户态完成管理 阅读全文
摘要:
控制反转和依赖注入的概念在网络上有大量的解释,很多都非常的详细,但对我来说过多的解释,容易把我绕来绕去,昨天听大佬的课,突然清晰地顿悟了。希望通过简单的描述,记录我的理解。 控制反转(IOC): 下面通过两张简单的图,了解一下控制反转的思想,我们假设自己现在想吃回锅肉! 首先,我们可以自己炒一道符合 阅读全文
摘要:
Docker指令记录 对docker指令及踩坑记录,不包含具体原理及过程。参照https://www.cnblogs.com/clsn/p/8410309.html#auto-id-17有详细教程。 一、Docker基础指令 1.镜像 1.1 搜索dockerhub官方镜像 docker searc 阅读全文
摘要:
项目地址:https://github.com/Codexiaoyi/linweb 这是一个系列文章: 不太一样的Go Web框架—总览 不太一样的Go Web框架—编程范式 前言 上文说过,linweb不追求性能,相比而言注重编程范式。本人也是dotneter,个人觉得.net那种注解定义路由的方 阅读全文
摘要:
地址:https://github.com/Codexiaoyi/linweb 这是一个系列文章: 不太一样的Go Web框架—总览 不太一样的Go Web框架—编程范式 初衷 大概在半年前,在学习了Golang一段时间后,想着提升一下自己。恰巧看到了极客兔兔的 七天用Go从零实现系列 的Web框架 阅读全文
摘要:
什么是事务?事务是并发控制的基本单位。事务是一个操作序列,这些操作要么都执行,要么都不执行。每个事务执行结束都应该保证数据的一致性。 事务的四大特性 原子性 原子性指整个数据库的事务是一个不可分割的工作单位,要么都执行成功,要么都不执行。事务中若有一个操作执行失败,需要将事务中的所有操作恢复到执行事 阅读全文
摘要:
今天golang终于发布了1.18版本,这个版本最大的一个改变就是加入了泛型。虽然没有在beta版本的时候尝试泛型,但是由于在其他语言的泛型经验,入手泛型不是件难事~ 官方示例 Tutorial: Getting started with generics - The Go Programming 阅读全文
摘要:
主要针对字节跳动的netpoll网络库进行总结。netpoll网络库相比于go本身的net标准库更适合高并发场景。 基础知识 netpoll与go.net库一样使用epoll这种IO多路复用机制处理网络请求。 基本理解 我们知道linux万物皆文件,每个文件有个文件标识符fd,我们可以想象linux 阅读全文
摘要:
一、channel channel分为有buffer的和没有buffer的。 没有buffer的可以当成有buffer但是buffersize为0的情况。 buffer数据结构: type hchan struct { qcount uint // 当前chan中有多少数据 dataqsiz uin 阅读全文
摘要:
在Go语言领域遨游了几个月后,发现自己对Go语言相关的工程目录结构有些不了解,按照原来的习惯在Go工程中建立的目录结构显得比较奇怪,好的目录结构绝对是可以加强工程效率的,所以接下来会参考煎鱼、毛大等大佬项目的结构做分析并且改造一个我的半成品项目。 每个项目的目录结构并不是有规定模板的,也有很多优秀的 阅读全文