Practical Django 2 and Channels 2

 28th April 2021 at 11:37pm
NamePractical Django 2 and Channels 2: Building Projects and Applications with Real-Time Capabilities
AuthorFederico Marani
EditionN/A
Release DateDecember 2018
ISBN-13978-1484240984
Medium网站
Rating4

点评

这本书类似国内的项目实战书,有很多代码,可以照着实践。

优点:

  • 对 Django 机制的讲解不错
  • 按书中代码敲,可以实际地做成这个项目
  • 有测试相关的内容,提倡了比较好的软件工程实践
  • 对整个 Django 生态,比如测试、部署、开发工具、第三方库等,做了非常详细的介绍

缺点:

  • 前端和客户端的章节我觉得意义不大。是本 Django 书就主力写 Django 内容就好了,其他领域的知识也很难在这么短的篇幅中写好
  • 代码有些业务逻辑没有考虑清楚,似乎是为了写书而做的偏玩具性质的项目,比如:
    • 处理用户登录后合并购物车的逻辑,没有考虑未登录前的购物车和登录态的购物车中有同样的商品
    • 如果用户未登录时没有添加商品到购物车,但是登录态还存在购物车,那么代码逻辑中不会把登录态的购物车拿出来
  • 一些代码实现上的下瑕疵:
    • 存在一些打错的地方
    • 一些需要配置的变量没有被提及
    • 一些 JS 逻辑不佳

笔记

第一章到第四章大多数是讲 Django 自身的机制,纪录在 Django 节点中。

第五章 Adding CSS/JavaScript to Our Django Project 大多数是前端的内容,没有细看。重点的内容大约是:

  • 前端的端到端测试,可以用 selenium 配合 Django test
  • 可以使用 django-webpack-loader 来让 Django 配合 webpack。配置成本看似挺高

我个人更倾向于前后端分离,后端出 API,前端负责 SPA 和 Server-side rendering 的方案(比如 Next.js 和 Gatsby)。用 Django 配合 MVVM JS 框架应该不是个好选择。

第六章写了一些好的第三方工具、库,比较有价值,纪录在 Django: Third Party Library

第七章是讲深入定制 admin 界面,把 admin 界面做成内部 dashboard,兴趣不大跳过了。

第八章讲 Django Channles,我没细看,这比较局限在网页端实时通讯,应用场景可能不多,学习成本又看似挺高,跳过。

第九章讲如何用 React Native 写一个客户端应用。没有细看,大部分篇幅是代码,我觉得也可能没法写得深入。跳过。

第十章比较实际,写了部署所需要关心的点:

  • JS/CSS Minify,使用 webpack
  • Serving Static Assets
  • Environment-Specific Variables
  • Deploying on Dokku / Heroku,偏流程型,没细看
  • SSL, WebSockets, and HTTP/2:描述了 Django 需要配合做什么相应的配置
  • Setting Frontend Variables:有一些各页面都通用的模板 context variable,比如 copyright 上的年份,Google Analysis 的 tracker ID 等,可以利用 Django 的 context processor 使得每次模板渲染时都有这些变量可用
  • Customizing Error Pages:404 / 500 页面编写
  • Error Reporting:Django 内建了出错发邮件等机制;如果需要更高级能力,用 Sentry