跳转到主要内容

如何编写稳健的代码?

阅读需 1 分钟Tian PanTian Pan

他喜欢它

  1. 同理心 / 视角转换是最重要的。

    1. 意识到代码首先是为人类阅读而编写的,然后才是为机器执行。
    2. 软件是如此“柔软”,有很多方法可以实现同一目标。关键在于做出适当的权衡,以满足需求。
    3. 发明与简化:Apple Pay RFID 与 微信扫码二维码。
  2. 选择可持续的架构,以减少每个功能的人力资源成本。

  1. 采用模式和最佳实践。

  2. 避免反模式

    • 缺少错误处理
    • 回调地狱 = 意大利面条代码 + 不可预测的错误处理
    • 过长的继承链
    • 循环依赖
    • 过于复杂的代码
      • 嵌套的三元操作
      • 注释掉未使用的代码
    • 缺少国际化,特别是 RTL 问题
    • 不要重复自己
      • 简单的复制粘贴
      • 不合理的注释
  3. 有效的重构

    • 语义版本
    • 永远不要对非主要版本引入破坏性更改
      • 两腿变更

保持联系,关注我获取更多内容

阅读需 3 分钟

一亿美元的遥测错误:OpenAI 的故障教会我们系统设计的知识

OpenAI 最近的故障揭示了现代系统设计的重要见解,突显了保障措施如何无意中成为风险。了解这一亿美元的遥测错误的教训,以及它们如何适用于你自己的技术基础设施。

OpenAI
system design
阅读需 4 分钟

快速介绍 Optimism 架构

什么是 Optimism?它的架构是什么样的?它的构建组件是什么,它们之间如何相互作用?

system design
阅读需 7 分钟

如何设计区块链服务端的架构?

分布式的区块链记账和智能合约系统。要求节点之间不大信任,但是却激励他们互相合作:交易不可逆,不依赖可信的第三方,保护隐私,透露最少信息,一笔钱不能花两次。假设性能不是问题,暂不考虑如何优化性能。

system design
阅读需 9 分钟

设计以人为本的国际化(i18n) 工程方案

硅谷公司的产品大多面向全球市场,而国际化正是跨国公司征战全球市场的战略要地。我们这次设计的 i18n 工程方案主要是解决网站和移动 App 开发过程中的三大问题:1. 语言、2. 时间与时区、3. 数字与货币。如同一切软件系统的开发一样,国际化这件事情没有银弹,好的作品都是靠基本功一点一滴磨出来的。

system design
阅读需 3 分钟

设计负载均衡器

互联网服务往往要处理来自全世界的流量,但是,一个服务器只能够同时服务有限数量的请求。因此,通常我们会有一个服务器集群来共同处理这些流量。那么问题来了,怎样才能够让这些流量均匀地分布到不同的服务器上呢?

system design