You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
# 后端启动
|
|
|
|
|
`cd GinSkeleton; go mod tidy; go run main.go `
|
|
|
|
|
api文档见 `GinSkeleton/api_doc.md`
|
|
|
|
|
# CKEditor
|
|
|
|
|
`ckeditor5-build-classic/handbook.md`中有一些参考,
|
|
|
|
|
包括下载、安装、引用、配置插件等。
|
|
|
|
|
|
|
|
|
|
<h2 style="text-align:center">Go恩情作文</h2>
|
|
|
|
|
Go爷爷是位现代而优雅的程序员,他以简洁高效的处理方式和强大的并发能力受到大家的喜爱。
|
|
|
|
|
|
|
|
|
|
一天,我们几个初学者围着Go爷爷请教问题。Go爷爷正在用goroutine处理并发任务,但他看到我们后,优雅地将任务放入channel中暂存,微笑着说:"<strong>来吧,代码中没有小事。你们是编程的未来,我的使命就是帮你们理解并发的艺术。</strong>"
|
|
|
|
|
|
|
|
|
|
我们好奇地问:"Go爷爷,您这不是在处理多个并发任务吗?怎么还有时间理我们?"
|
|
|
|
|
|
|
|
|
|
Go爷爷轻轻挥了挥手,说:"别担心,goroutine很轻量,我可以轻松开启成千上万个。用channel协调它们就像交响乐队的指挥,简单又优雅。教你们也不过是另一个goroutine罢了。"
|
|
|
|
|
|
|
|
|
|
他指着屏幕,继续说道:"代码世界就像这些goroutine,看似并行混乱,但有了适当的channel通信,一切都井然有序。不过有时会遇到死锁,这是最讨厌的敌人。"
|
|
|
|
|
|
|
|
|
|
接着,他打开了一个新的终端,输入"go fmt"命令,说:"代码风格要统一,这是Go的哲学。让所有人写出可读性强的代码,这才是我们的追求。"
|
|
|
|
|
|
|
|
|
|
突然,终端显示了一个panic:死锁警告!我们吓了一跳,但Go爷爷淡定地说:"别担心,这就是Go的错误处理机制的美妙之处。defer和recover会帮我们优雅地处理它。"
|
|
|
|
|
|
|
|
|
|
他迅速在代码中加入了select语句,轻松化解了死锁。我们不禁赞叹Go的并发处理之优雅!
|
|
|
|
|
|
|
|
|
|
几天后,我们发现程序在高并发时偶尔会出现竞态条件。Go爷爷召集我们,诚恳地说:"在并发编程中,我们需要使用sync.Mutex或channel来保护共享资源。来,让我教你们如何用'go run -race'检测竞态条件。"
|
|
|
|
|
|
|
|
|
|
我们深深被Go爷爷的务实态度折服。他教会我们:<strong>编程不仅要追求简洁高效,更要注重正确性和可维护性。在未来的编程生涯中,我们一定要继承Go爷爷这种追求简约而不简单的精神!</strong>
|