这些我觉得很容易过滤掉吧,选crate还是有基本的要求的,
这些一看就是新手试水写的,我直接就排除掉了。
我用的crate里都是很多版本号0.x(x<5)的这种crate,质量都是相当不错。他们只有一个问题,就是api不稳定,可能几个小版本后会有比较大的变化,也可能几个月后另起炉灶重新搞了。
但我可以感受到这代码背后的作者是在用最大努力去做好事情的诚意。
很多时候,尤其对于快速迭代中的代码,我不要求有多么详细具体的文档,也不要求完全不能用unsafe,panic。我不会用大型软件工程的标准去要求这些,我的标准更多的是看但是否具备好的平衡感,不是在某些方面做得有多极致。比如我就特别讨厌很多java代码的风格,过度抽象,过度测试,把简单的事情复杂化,这些行为也会被我归为低水平的。
rust的好处我觉得有两点,一点是它设计成尽量让不同人的写出一样的代码,逼着大家往最佳工程实践上走;第二点是你可以按你的想法搞,但如果你必须考虑完善,但凡没搞好就会写出很丑的代码。并且这种丑是很直观的,一个没学过rust的人都能一眼看出代码有多丑。
所谓的rust里面没有低水平的代码,不是指不存在这样的代码,而是指在rust的世界里这种代码无法生存下去。因为很容易被看出来,也很难被使用,很难继续演进。其它语言里一个早期的低水平实现因为机缘巧合用的人多了改不掉了,缝缝补补用个十几年这种现象很常见,但在rust里面我现在还没有看到类似的现象。
【 在 milksea 的大作中提到: 】
: 很不幸还是能见到低水平的rust代码…
: 有些小领域发布出来的crate,基本没维护没文档,不按规定错误处理,随意panic,无意义地到处打tracelog,随便把unsafe包成safe,缺少合理抽象等等。就是非专业c/c++背景的人临时转用rust做的,把原本质量就不好的c++代码翻译一下那种。
: 语言机制能帮助人,但拦不住人作…
--
修改:lvsoft FROM 39.144.44.*
FROM 101.229.189.*