读书笔记来自:Two Scoops of Django: Best Practices for Django 1.11 。此书评价颇高,国内也没见引进,我直接阅读原版了,然后把看到的要点用笔记形式记录下来,分享给大家。

Django是用Python编写的全栈Web开发框架,成熟可靠,目前国内外公司使用的相当多。此书总结的最佳实践,其实很多也适用于其它语言框架。毕竟框架要解决的问题,是有很大的共通性的。框架的产生,主要就是解决共有问题的重复劳动,简化开发工作。现在Web开发越来越复杂,面对大量的各式需求:用户浏览、内容管理、提供Api等等,还要考虑安全、性能、扩展等要求。不用框架作为基石,直接代码裸写应用,几乎是不可想像的事情,方方面面都很难达标。

Django的文档出了名的好,非常的详细,但那更像是手册。这本书不是手册,也不是入门书,目标用户是有Django使用经验的读者。它总结出的Web开发最佳实践,大家在使用其它Web框架开发的时候,也可以借鉴采用。

核心理念

  • Keep It Simple, Stupid

大名鼎鼎的KISS原则,不多解释了。

  • Fat Models, Utility Modules, Thin Views, Stupid Templates

“胖”模型,工具化模块,“瘦”视图,“傻”模版。后面陆续解释这几个理念。

  • Start With Django by Default

在穷尽使用Django自带的功能之前,谨慎使用替换核心Django功能的组件。

  • Be Familiar with Django’s Design Philosophies

熟悉Django的设计哲学。每个框架产生的历史和关注点是不同的,设计理念也是不一样的。所以了解设计哲学,有助于理解设计,领会用法。

  • The Twelve-Factor App

一种SaaS开发的方法论。主要方法论是:

  • 使用标准化流程自动配置,从而使新的开发者花费最少的学习成本加入这个项目。
  • 和操作系统之间尽可能的划清界限,在各个系统中提供最大的可移植性
  • 适合部署在现代的云计算平台,从而在服务器和系统管理方面节省资源。
  • 将开发环境和生产环境的差异降至最低,并使用持续交付实施敏捷开发。
  • 可以在工具、架构和开发流程不发生明显变化的前提下实现扩展

12-factors
I. 基准代码
一份基准代码,多份部署
II. 依赖
显式声明依赖关系
III. 配置
在环境中存储配置
IV. 后端服务
把后端服务当作附加资源
V. 构建,发布,运行
严格分离构建和运行
VI. 进程
以一个或多个无状态进程运行应用
VII. 端口绑定
通过端口绑定提供服务
VIII. 并发
通过进程模型进行扩展
IX. 易处理
快速启动和优雅终止可最大化健壮性
X. 开发环境与线上环境等价
尽可能的保持开发,预发布,线上环境相同
XI. 日志
把日志当作事件流
XII. 管理进程
后台管理任务当作一次性进程运行

地址:https://12factor.net/zh_cn

Two Scoops of Django - Django最佳实践指南02 - 代码风格
数学史 - 人类心智的荣耀之路