Name | Practical Django 2 and Channels 2: Building Projects and Applications with Real-Time Capabilities |
---|---|
Author | Federico Marani |
Edition | N/A |
Release Date | December 2018 |
ISBN-13 | 978-1484240984 |
Medium | 网站 |
Rating | 4 |
点评
这本书类似国内的项目实战书,有很多代码,可以照着实践。
优点:
- 对 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