权衡替换 Django 核心组件

尽量不要替换 Django 核心组件,除非你了解:

  • 可能无法使用一些或全部的第三方应用包
  • 不能使用 Django admin 应用
  • 你已花费大量时间使用核心组件来创建你的应用,但是发现这些核心组件是主要问题所有
  • 你已对代码进行了分析,找出了主要的问题所在
  • 你已尝试了其它所有的可能方案,包括缓存等
  • 你的项目是一个实时的,有大量用户的网站。即不是在没有根据的情况下进行预优化
  • 你已评估了 SOA 模式,发现不适合
  • 你了解 Django 升级后,代码的相应修改会很难

非关系型数据库和关系型数据库

使用关系型数据库来持久化数据的项目也会使用一些非关系型数据库,如使用 Memcached 来缓存,或使用 Redis 实现队列。但是用非关系型数据库完全取代关系型数据库需要考虑清楚。

不是所有的非关系型数据库都兼容 ACID

ACID 含义:

Atomicity 原子性指一个事务要么全部成功要么全部失败。
Consistency 一致性指所有事务会使数据保存在一个有效状态。
Isolation 独立性指并行处理的数据不会在事务间有关联或发生冲突。
Durability 持续性指一旦事务提交,它的结果即便在数据库服务器关闭后还会保存完好。

没有这些特性,数据都有破坏的可能。

不要使用非关系型数据库处理关系型任务

不随大流,要自己做研究评估

参考文献: Two Scoops of Django: Best Practices for Django 1.8

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • --- layout: post title: "如果有人问你关系型数据库的原理,叫他看这篇文章(转)" date...
    蓝坠星阅读 824评论 0 3
  • 天没黑却像黑了 五点一过就得打开灯 也许再迟些也不要紧 但总是觉得看不清了 心情紧张可也还好 近期不会因此而忧虑 ...
    木子匀阅读 254评论 0 2
  • 这是来哈尔滨的第一天,哈尔滨的景点集中在松花江的两边,一边是松花江斯大林公园、防洪纪念塔、中央大街、老道外、圣·索...
    美味美喵阅读 395评论 0 1
  • 漂泊的心,迷途的人 向放飞的了的孔明灯, 慢慢的失去了光亮! 漂也匆匆, 去也茫茫, 不知飘到何方,去到何处。 风...
    忧蓝雪阅读 141评论 0 1
  • 两个朋友在沙漠中旅行,旅途中,为一点小事吵了起来,一个还打了另一个一记耳光。被打的觉得伤心,一言不发,在沙地...
    水到渠成_141c阅读 398评论 0 0