技术阅读周刊第第6️⃣期

2023-11-20 15:30:51 浏览数 (3)

技术阅读周刊,每周更新。

5 Skills the Best Engineers I Know Have in Common

URL: https://www.developing.dev/p/5-skills-all-10x-engineers-have?utm_source=post-email-title&publication_id=1340878&post_id=138715343&utm_campaign=email-post-title&isFreemail=true&r=4buvd&utm_medium=email

作者讲述了他身边最好的工程师都具备的五个通用技能

image.png

  • 技术的深度与广度
    • 对于最好的工程师来说,深度和广度他们都会掌握
    • 要保持好奇心,好奇心是学习任何新东西的原始动力
    • 和身边厉害的工程师一起工作,会快速从他们身上学到东西
  • 不用权威去影响他人
    • 我理解的是不是依靠资历、经验来向他人输出观点;而是就事论事,利用知识、技能来输出。
    • 锻炼写作和口语
    • 学会销售
  • 提升他人
    • 分享知识,写 WIKI、做分享
    • 团队协作:codereview、团队讨论等
    • 构建工具,解决大家遇到的一些共性问题。
  • 要有主人公意识
    • 这些工程师都有主人公意识。
    • 像老板一样思考问题

Explaining 9 Types of API Testing

URL: https://blog.bytebytego.com/p/ep83-explaining-9-types-of-api-testing?ref=dailydev

介绍了九种常见的 API 测试方法

  • 冒烟测试:简单的验证 API 是否可以正常工作
  • 功能测试:根据需求进行测试,有预期结果进行比较
  • 集成测试:结合多个 API 完成集成测试,更完善的功能测试
  • 回归测试:确保新增功能没有影响到原有的 API
  • 负载测试:模拟不同的负载进行测试,测出系统可支持的最大容量
  • 压力测试:模拟高负载场景,在这种压力情况下观察 API 行为
  • 安全测试:模拟外部安全测试
  • UI测试:配合 UI 交互进行功能测试
  • 模糊测试:对 API 进行无效输入,尝试让 API 崩溃

实际情况可能并不会分的这么细,往往会将一些步骤合并在一起。

Prometheus 14 点实践经验分享

URL: https://mp.weixin.qq.com/s/z2IVP26swYaTeiPTeOMoQw

这是一篇 17 年的 Prometheus 使用分享,但放到现在一点也不过时。

  • 使用 USE 理论来判断资源是否健康
    • Utilization 利用率
    • Saturation 饱和率
    • Errors 错误
  • 使用 RED 理论
    • Request rate 请求速率
    • Error rate 错误速率
    • Duration 持续时间
  • 指标命名需要有规范
    • 通常使用框架生成的都没啥问题
    • 可以参考 Prometheus 的官方实践 https://prometheus.io/docs/practices/naming/
  • 注意指标基数
    • 避免基数爆炸的,比如不能使用 user_id, trace_id 等作为指标的 label
  • 统计失败 总量而不要统计失败 成功量
  • 告警症状而非原因
  • 告警规则需要配置持续时间,避免无效告警
  • 查询时候通常先求 rate() 再求 sum()

程序员可能必读书单推荐(一) - 面向信仰编程

URL: https://draveness.me//books-1

draveness 大佬推荐的都是一些偏低层的,静得下心的可以看看,我觉得我是看不下来的。

  • SICP 《计算机程序的构造和解释》
  • CTMCP 《计算机程序设计的概念、技术和模型》
  • DDIA 《设计数据密集型应用》

TOP 20 Go最佳实践

URL: https://colobu.com/2023/11/17/golang-quick-reference-top-20-best-coding-practices/

都是一些基本套路,各种语言的使用者都推荐掌握

  • 适当使用缩进,推荐统一使用 gofmt
  • 变量和函数名具有意义
  • 限制行长度,IDE 通常都会有提示
  • 使用常量代替魔法值
  • 显示处理错误
  • 避免使用全局变量
  • 使用结构体处理复杂逻辑,更易维护
  • 使用 goroutines 处理并发
  • 使用 Recover 处理 panic
  • 避免使用 Init 函数,更容易维护
  • 使用 Defer 清理资源
  • 使用复合字面值而非构造函数
  • 使用显示返回值而非具名返回值,也是代码更易读
  • 避免变量屏蔽,易读性
  • 使用接口抽象

文章链接:

  • https://www.developing.dev/p/5-skills-all-10x-engineers-have?utm_source=post-email-title&publication_id=1340878&post_id=138715343&utm_campaign=email-post-title&isFreemail=true&r=4buvd&utm_medium=email
  • https://blog.bytebytego.com/p/ep83-explaining-9-types-of-api-testing?ref=dailydev
  • https://mp.weixin.qq.com/s/z2IVP26swYaTeiPTeOMoQw
  • https://draveness.me//books-1
  • https://colobu.com/2023/11/17/golang-quick-reference-top-20-best-coding-practices/

1 人点赞