(赠书)推荐一本django书籍:Django企业开发实战

今天向所有 django 学习者推荐一本值得一读的书:《Django 企业开发实战》。

说来很惭愧,作者胡阳在新书上市时的第一时间就给我快递了一本。我还清楚记得当时是情人节前一天,收到快递后的我迫不及待地撕开了包装读起来,花了近一周的时间将书中的内容完整地学了一遍,酣畅淋漓之感让我欲罢不能。

其实当时就想写这篇推荐博文的,好的东西应该让更多的人知道,无论它是收费的还是免费的。然而那时一是忙于工作和自己的一些 side project,二是有点沉迷于 xx 游戏无法自拔,所以始终没有拿起笔的动力,结果一搁浅就搁了快半年。猛然想起还欠胡阳大大一篇读后感,赶快趁着书中内容还新鲜,给大家推荐一波。

首先介绍一下这本书的作者胡阳。我想对于国内的 django 开发的初学者,或多或少地应该都有一点了解。他是 the5fire的技术博客 的博主,博客里分享了很多关于 Python、django 开发的技术类文章,也正是因为这样,我在当年初学 django,满世界找 django 有关的教程和参考资料时了解到了他。通过他的过往博文了解到了他的一些经历:一开始在一家小公司,后台通过不断地自我学习和提升,进入搜狐从事 Python,特别是 django 和 tornado 方面的开发工作,近两年又转战到了知乎。他的博客会经常发布这方面的优秀文章,于是我就一直默默地关注着。

初学 django 的开发者应该都有这样一个感受,比起满天飞的 PHP 和 Java Web 开发书籍、入门教程和文档,django 这方面的内容实在是少的可怜,为数不多的流传下来的经典,譬如《The Django Book》等免费的开源书籍,要么内容偏于理论,要么就是内容严重过时,完全跟不上 django 的更新步伐,而且大部分书籍语言都是英语,中文版翻译又质量堪忧,大大增加了国内初学者的学习难度。

胡阳大大在博客中虽然会经常分享 django 开发类的文章,但一般主题都比较独立,不具备系统性,虽然对熟悉 django 的人能带来很大帮助和收获,但对于初学者却意义不大。针对 django 在国内学习资源匮乏的现象,我当时在对 django 有一定程度的了解后,自己还写过一套入门级的 Django博客教程

但那个时候其实自己也是个新手,虽然对 django 框架的特性和开发流程比较熟悉了,但因为源码深入的不够,所以写出来的东西,很多知识点讲的总是没有那么透。而且自己是半路出家,Web 开发纯粹是业余兴趣,没有进入像搜狐、知乎这样的互联网企业锻炼过,写出来的应用很少考虑性能,更别说从系统设计、编码开发、功能测试、性能调优、上线发布、运维监控、运行维护这一整套流程,写出来的东西自然也只能当个玩具。

所以当我看到 《Django 企业开发实战》时我就兴奋了,胡阳大大终于出了一套成体系的 django 开发书籍,书中的内容,既包含了 django 开发的基础,又包含了上面我提到的 django 应用从设计到发布整个生命周期里的一些东西,可以说胡阳大大将他这几年的工作经验,尽可能地沉淀在了这本书中。即使是对于我这样一个对 django 开发已经有了一定经验的人,从书中还是能学到很多的东西。尤其是上线前的准备和线上问题排查这几个部分,更是让我获益匪浅,让我一个从未在互联网公司锻炼过的人,通过书本习得了很多互联网公司应用开发、发布和维护的经验。比如说如何使用工具对应用的性能进行调优、配置缓存以优化应用性能、压力测试、自动化部署等等。

这几年的业余软件开发经历让我有一个感悟:人们在反反复复的解决前人的前人已经解决过了无数遍的工程问题,但如果他们没有把这个经验和解决方案告诉你,你可能永远也不知道如何解决这个问题。所以,一定要站在巨人的肩膀上,如果你不是在研究宇宙起源这类问题,工程上尽可能地学习他人的经验,肯定是事半功倍的。

学习 django,自然也是要站在他人的肩膀上,把他人的经验学过来,到你自己的项目上实践,这些他人的经验就变成了你的经验。让你能够更加高效地工作,更加游刃有余地工作,更加优雅地解决问题。所以,再次向大家推荐这本《Django 企业开发实战》。

当然,由于书中的内容比较丰富,因此对于过于基础的东西不会讲的太细,所以如果你是一个完全的新手的话,看起来还是有点费劲的,不过相信我,随着你对 django 不断深入的了解,你会不断从这本书中学到新的东西,发现新的价值。

最后再对追梦人物的博客读者说一句,Django博客教程写了也快2年了,初版教程完成时还是基于 django 那时候最新发布的版本 1.10。根据不完全统计,至少有上千人通过我的这套教程入门了 django 开发。《Django 企业开发实战》中的内容对我启发很大,近期我已经在更新我的《Django博客教程》,随着对 django 更加深入的了解,教程的内容将更加充实,在仍然注重基础,讲解细致的同时,还会加入很多新的东西,比如:

  • 升级到最新发布的 django 2.2
  • 基于 Pipenv 的工作流
  • 全新的部署上线方案,基于 Nginx、Gunicorn、Supervisor/Docker
  • 完善的单元测试

更新进度已过一半,直接在我的个人博客教程专栏的 HelloDjango - Django博客教程(第二版)就可以阅读,代码提交在 GitHub 仓库 HelloDjango-blog-tutorial,敬请关注!

感谢大家胡阳和对我的支持,为了表示谢意,我将通过博客留言抽奖的形式送出 5 本胡阳大大的《Django 企业开发实战》。在本篇博客下留言谈谈你是如何接触到 django 的即可参与抽奖(最多 5 个,只针对有效楼层)送出胡阳大大的新书,抽奖的 Python 代码如下,抽奖结果也会在公众号和我的个人博客公布,届时请联系我领取奖励(包邮(✧◡✧))。

有效期截止至 2019年9月31日。

import random

# 留言会做去重处理,重复留言不会增加中奖概率,恶意刷屏将取消抽奖资格。
# 楼层数定义为去掉单人发布的多条留言(除第一条)后形成的评论列表的顺位数字(从 1 算起)。

# 首先去重,得到有效楼层数 n
for i in range(5):
    x = random.randint(1, n)
    print("恭喜第 {} 楼层的留言者获得《Django 企业开发实战》一书!".format(x)

-- EOF --