《使用 Gin 框架构建分布式应用》阅读笔记:p88-p100
《用 Gin 框架构建分布式应用》学习第 6 天,p88-p100 总结,总计 13 页。
一、技术总结
1.MongoDB CRUD 操作
(1)InsertOne(), InsertMany()
(2)Find()
(3)UpdateOne, UpdateMany()
(4)DeleteOne(), DeleteMany()
2.MongoDB primitive
p96,recipe.ID = primitive.NewObjectID() 中的 primitive 在 mongo-go-drive v2.0.0 版中已经移除了。
二、英语总结
1.spaghetti code
第一次看到,记一下。spaghetti: u.pasta made in the form of long, thin strings 意大利面条), 长这样:
深夜见不得这些,越看越饿。言归正传,spaghetti code 就是“面条代码”,具体参考维基百科:https://en.wikipedia.org/wiki/Spaghetti_code,了解下概念即可。
三、其它
聊一聊阅读技术书籍经常遇到的一个问题。
1.旧代码无法使用怎么办?
这里以 mongo-go-driver 的 primitive 为例。作者在写该书的时候,使用的是 v1.4.5。而现在,mongo-go-driver 的最新版本是 v2.0.0,为了与时俱进,我们最好是使用 v2.0.0 版本。那么问题来了,在 v2.0.0 中 primitive 无法使用怎么办?下面实际个人的一些处理:
(1)使用搜索引擎查找原因,了解一些用法在实际项目中的使用情况。
这里吐槽一下 ChatGPT,ChatGPT 给出了貌似可行,实际也是无法运行的代码:package main
很遗憾,通过搜索引擎也没有看到其它人遇到这个问题,从这个结果来看,那么这种用法很可能在实际业务中根本没有人使用。这是我们要特别关注的地方,很多作者写书,因为作者未在实际项目中使用过,写出了一些 demo 项目,但这些代码在实际项目中往往无法使用,堪称“烂代码”。
(2)使用其它方式暂时替代,确保代码能运行。
假设确实没有找到原因,或者因为代码版本的问题无法使用,那么此时可使用其它方式进行替代,因为我们先要掌握整体情况。以 primitive 为例,
(3)暂时先跳过,提升阅读进度。
如果没有替代方法,那么就先跳过,不可花过多时间在上面,因为有时候读着读着,你会发现这并不是最终的做法,但作者为了演示某个操作,讲解某个知识点,而使用了它。虽然个人很不喜欢作者这种做法,但从阅读过的书来看,很多时候确实会存在这种情况。
四、参考资料
1. 编程
(1) Mohamed Labouardy,《Building Distributed Applications in Gin》:https://book.douban.com/subject/35610349
2. 英语
(1) Etymology Dictionary:https://www.etymonline.com
(2) Cambridge Dictionary:https://dictionary.cambridge.org
欢迎搜索及关注:编程人(a_codists)
评论