参考
https://code2life.top/blog/0072-k8s-in-30-min
https://github.com/abiosoft/colima
https://github.com/dylanaraps/neofetch/wiki/Installation
https://www.redhat.com/zh/topics/containers/what-is-podman
how to limit goroutines use semaphore
https://bostonc.dev/blog/go-semaphore
https://gist.github.com/jboursiquot/ef53edb815fe18c8160dbe8504dd9d60
1 | var ( |
https://medium.com/deep-golang/5-go-concurrency-patterns-i-wish-id-picked-up-sooner-b1b7dae6d71e
https://medium.com/@ahamrouni/mastering-concurrency-in-go-from-goroutines-to-semaphores-123fdd150213
https://github.com/eranyanay/1m-go-websockets
https://www.bomberbot.com/golang/scaling-to-a-million-websockets-with-go/
https://awesome-go.com/goroutines/
https://ofeng.org/posts/goroutine-pool/
mkcert 可以方便的为你本地开的发域名配置 SSL
https://github.com/FiloSottile/mkcert
Preact 在 DOM 之上提供了最薄的虚拟 DOM 抽象,在提供稳定的平台特性和注册事件处理程序的同时还确保与其他库无缝兼容。
Preact 无需转译即可在浏览器中直接使用。
developer-roadmap 包含了成为一名开发者的学习路线图,涵盖前端和后端的各种语言
里面紫色标识的是优先或者必须考虑学习的。
https://github.com/kamranahmedse/developer-roadmap
astro 可以生成内容驱动的网站,是建立 blog 的好选择
The web framework for content-driven websites
https://astro.build/
mermaid.js 可以让你写代码一样生成流程图,时序图,类图,ER 图等。
只需要简单的描述,可以结合 AI 大模型为你生成 mermaid 语法。
https://mermaid.js.org/
Deno 是一个 javascript 运行时,类似于 V8。可以让你轻松的书写现代 JavaScript 语法。
自带支持 TypeScript
汇集了 github 出色的项目
https://github.com/sindresorhus/awesome
design resources for developers 汇集了开发者用到的设计资源
https://github.com/bradtraversy/design-resources-for-developers
一些公共的 API
https://github.com/public-apis/public-apis
hacker 资源
https://github.com/vitalysim/Awesome-Hacking-Resources
Instructables 是一个专门提供用户创建和上传的 DIY 项目教程的网站
https://www.instructables.com/20-Awesome-Projects/
https://github.com/gothinkster/realworld
https://github.com/donnemartin/system-design-primer
fastify 是基于 node.js 的高效 web 框架
https://github.com/fastify/fastify
https://fastify.dev/
计算机可视化
https://github.com/roboflow/supervision
https://github.com/topics/backend
Temporal 是一个新兴的分布式的工作流引擎,可用于解决跨服务、跨时间周期的复杂业务流程等。
https://temporal.io/
https://code2life.top/blog/0070-temporal-notes
Terraform 是一款由 HashiCorp 公司开发的开源基础设施即代码(Infrastructure as Code,简称 IaC)工具。
包含基础设施自动化部署, 云服务资源管理,基础设施状态管理,版本控制集成,多环境一致性保障
neofetch 是一个漂亮的打印系统信息的命令行工具
https://github.com/dylanaraps/neofetch
这人的 Shell 玩的飞起!!!
https://github.com/dylanaraps
https://github.com/thewh1teagle/lingo
https://huggingface.co/docs/transformers/main/en/model_doc/m2m_100#overview
https://dev.to/olucasandrade/10-awesome-github-repositories-that-everyone-should-know-2pcp
https://awesome-cp-projects.github.io/
https://github.com/zhashkevych/awesome-backend
https://github.com/shahednasser/awesome-resources
https://github.com/fastify/fastify
https://roadmap.sh/backend/project-ideas
https://dev.to/durgesh4993/10-github-repos-to-improve-as-a-backend-engineer-4lmi
https://www.boot.dev/tracks/backend
https://blog.boot.dev/backend/best-backend-projects/
https://github.com/Tencent/APIJSON
https://github.com/ashishps1/awesome-system-design-resources
我写什么呢,前辈们都写的那么好
https://geektutu.com/post/hpg-struct-alignment.html
https://eddycjy.gitbook.io/golang/di-1-ke-za-tan/go-memory-align
https://golang.dbwu.tech/performance/memory_alignment/
https://ueokande.github.io/go-slice-tricks/
https://tehub.com/a/c2XXL0xk0Q
https://yunsonbai.top/2023/03/07/go-memalign-struct/
https://gfw.go101.org/article/memory-layout.html
new一般只用来分配内存空间,并且设置类型的默认值,比如int设置为0,bool设置为false
比如 ptr := new(int)
为int类型分配内存空间,并且初始化为0,返回指向变量的指针。
make可用来数据的初始化,
比如初始化一个长度为3,capacity为6的slice,那么就应该用make
s: = make([]int, 3, 6)
https://www.codingexplorations.com/blog/understanding-the-difference-make-vs-new-in-go
1 | #显示系统信息 |
https://www.cyberciti.biz/faq/unix-linux-check-if-port-is-in-use-command/
https://www.tecmint.com/free-online-linux-learning-guide-for-beginners/
https://www.linuxtrainingacademy.com/linux-commands-cheat-sheet/
先看[]byte的数据结构
1 | type slice struct { |
string的数据结构
1 | type string struct { |
String不可变,[]byte可变
String默认是UTF-8编码, []byte没有
由于String类型是不可变的,如果经常需要拼接字符等,可以使用strings.Builder
方法
[]byte适合二进制传输,尤其适合文件,网络传输,因为网络就是按字节传输的
[]byte转换string
1 | data := []byte{72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33} |
[]rune是int32类型,默认占四个字节,即使是ASCII字符一样,所以比string和[]byte占用的内存空间更大。
Use strings for simplicity and Unicode support,
bytes for mutability and versatility,
and runes for character-level operations.
https://en.wikipedia.org/wiki/UTF-8
https://medium.com/@tyler_brewer2/bits-bytes-and-byte-slices-in-go-8a99012dcc8f
https://syslog.ravelin.com/byte-vs-string-in-go-d645b67ca7ff
https://blog.logrocket.com/gin-binding-in-go-a-tutorial-with-examples/
https://blog.logrocket.com/6-top-go-web-frameworks/
https://daily.dev/blog/top-8-go-web-frameworks-compared-2024
https://github.com/valyala/fasthttp
1 | go mod edit -go=1.21.3 |
未来认证方式,无密码登录
Passkeys are like passwords but better. They’re better because they aren’t created insecurely by humans and because they use public key cryptography to create much more secure experiences.