分类: 码一片天

40 篇文章

如何写出可维护的代码
在现代软件开发的世界里,可维护性不仅是代码质量的标志,更是项目成功的关键。想象一下,一段精心编写的代码,它能够在不断变化的需求和技术前景中稳如泰山,这不仅减少了维护成本,也极大提高了软件的生命周期。而当代码运行在生产环境中,面临着不断的挑战和意外情况时,可维护性也显得尤为重要。一段易于理解和修改的代码,可以让开发者在面对紧急问题,如性能瓶颈、安全漏…
基于Go的AC自动机
基于Go的AC自动机 用于在文本中查找和提取关键词。它使用高效的算法和数据结构,可以快速匹配大量的关键词,并返回匹配结果。 git地址:https://git.echol.cn/loser/keyword-extraction 可以用于智能客服,例如根据关键词回复指定内容 keywordprocessor.go package extractor …
golang-IO缓冲
package main import ( "fmt" "os" "time" ) var ( text = "recall 74 by radic, recall 0 by milvus_short, recall 0 by milvus_long\n" ) // 带缓存的FileWriter type BufferedFileWriter st…
thumbnail
golang日志切割并压缩
关于日志的一些问题: 单个文件过大会影响写入效率,所以会做拆分,但是到多大拆分? 最多保留几个日志文件?最多保留多少天,要不要做压缩处理? 一般都使用 lumberjack这个库完成上述这些操作 lumberjack //info文件writeSyncer infoFileWriteSyncer := zapcore.AddSync(&lu…
Java数据字典方案
问题分析 在应用项目中,我们总会遇到很多字典项的数据,比如类型、状态等。这些数据一般是有限个可选值,在前端可能作为 Select 控件存在,用于录入、搜索等场景。 这类数据的一般作为配置存在,怎么设计才能让前后端维护方式最低呢? 我们在团队上做了很多讨论,结合过完项目的经验把潜在方案整理如下。 方案枚举 假定我们经过简单的头脑风暴,可以枚举出下面的…
thumbnail
聊聊Git使用中的坏习惯
众所周知啊🤔,很多公司的度量系统可以展示你提交了多少次commit,以及每一次提交包含多少行代码。 搞得部分兄弟一天可劲 add commit push。他那一个变更发上线,你打开Git Log,好家伙那一大串都是他。加加减减缝缝补补,最后一共改了20行代码,硬是刷出了200行的功德。 一串Git commit message如下: AoneBui…
Uber Go规范:编码和命名
Uber 是一家美国硅谷的科技公司,也是 Go 语言的早期 adopter。其开源了很多 golang 项目,诸如被 Gopher 圈熟知的 zap、jaeger 等。2018 年年末 Uber 将内部的 Go 风格规范 开源到 GitHub,经过一年的积累和更新,该规范已经初具规模,并受到广大 Gopher 的关注,本文是对规范的整理 来源:ht…
Go日志库-Zap
相比其他语言,Go 标准库里的 log 模块已经很好用了。但还是缺少一些常用的功能,比如按等级输出。于是又出现了许多第三方库,例如最出名的 logrus,不过已进入维护状态。作者认为 logrus 已经完成了它的使命——推动结构化日志的发展。至于之后的扩展优化,将有更优秀的作品。 这里将记录其中之一—— zap。 zap 是 uber 开源的高性能…
thumbnail
go配置管理-Viper的简单使用
此文章只是对Viper库的简单使用,读取本地配置文件(json,yaml....) 其他使用操作可以观看官方文档 配置类 MySQL import ( "fmt" ) // MySQL配置 type mysqlConfig struct { Host string `mapstructure:"host" yaml:"host"` // 主机 Po…