https://mp.weixin.qq.com/s/WAa4ezth4CGwyjJD7FcP6w
软件开发原则
- 剔除无效状态
 - 数据一致性让系统更简单
 - 数据设计先行
 - 杀鸡不要用牛刀
 - 避免为了局部简单性而增加全局复杂性
 - 识别内在的复杂性
 - 使用的技术越少,系统就越简单
 - 集中精力学习概念,而不是技术
 - 代码一致性很重要
 - 分享原则很重要
 
架构设计原则
- N+1设计:保证每个组件都应该做到没有单点故障
 - 回滚设计:确保系统可以向前兼容,在出现故障的时候能够快速下线
 - 禁用设计:在设计阶段就要考虑监控手段
 - 多活数据中心设计:若系统要极高的可用性,应考虑在多地实施数据中心进行多活,至少在一个机房断点的情况下系统依旧可用
 - 采用成熟的技术
 - 架构应能水平扩展:才能有效避免瓶颈问题
 - 非核心则购买
 - 使用商业硬件
 - 快速迭代
 - 无状态设计