前言
Django作为一个庞大的、自带电池的、整体Web开发解决方案框架,源代码多、子系统多、工具多。要将如此多的内容集成到一起,必然需要一个指导性的设计理念和哲学思维。这样才不至于显得东拼西凑、杂乱无章、接口混乱,而是整体一致、思路清晰、逻辑合理。既方便了源码开发,也方便了应用开发。
下面就介绍一下Django的设计理念和哲学思维,这其中有一些是Django源代码中正在遵循的,一些是使用者开发项目过程中需要遵循的:
系统性原则
松耦合
Django 追求各子系统(层)的低耦合和高内聚。各层之间保持代码独立、功能独立、尽量没有交联。
例如,模板层不需要知道用户的 Web 请求具体情况,模型层不需要了解模板层是如何展示数据的,视图层也不关心程序员所使用的模板系统到底是哪种和怎么使用的。通俗地说,模型层只关心数据的CRUD,视图层只负责业务逻辑的实现,模板层只管前端页面的渲染和展示。这三个核心层之间只有数据的传递,没有代码的交互,各自相对独立。
更少的代码
Django 建议每个APP的代码应该尽可能地精简,应该充分利用 Python 的动态能力,比如自省机制(introspection)。
快速开发
Django诞生于一个新闻编辑社,其应用环境要求快速开发和迅速迭代,所以在设计之初就追求以更快的速度实现需求的处理,你只需要编写一些新代码,或者修改一些局部代码就可以实现新的站点。
不要重复地造轮子 (DRY)
除非有特殊需求,所有官方或者生态圈内已经提供的库、工具、插件和功能,请直接拿来使用,不要自己开发。
明确优于隐式
这条原则的根本意思是:不要玩花招、炫技巧,尽可能用更普通、更明确、更直观的语法,不要使用那些晦涩难懂的语法。将你的代码写得更啰嗦、更直白、更清晰,多两行不怕,多点注释更好。
一致性
框架应在所有层级上保持一致。一致性适用于从低级(Python