mizzsugar’s blog

日々感じていることや学んだことを書きます。エンジニアリング以外にも書くかもしれません。

「実践Django」を読んで

f:id:mizzsugar:20210807123628p:plain このたび、「実践Django」を著者の芝田さんからいただきました! ありがとうございます🙏🙏🙏 DjangoでWEBアプリケーションを作りたい方に強くおすすめしたいです! どんな人におすすめか、本書のおすすめポイントを紹介したいと思います。


目次

  • この本を読む上での前提知識
  • オススメの読者
  • オススメポイント

この本を読む上での前提知識

Pythonの基本的な文法とWEBアプリケーションを開発する上での基本的な知識を知っている必要があります。WEBアプリケーションの知識をもっと具体的に言えば、HTTPリクエスト/レスポンス、HTML、データベースでしょうか。 そういった基本的な知識の説明を省略しているため、WEBアプリケーションの開発自体が初めての方はDjango GirlsDjango公式チュートリアルから始めて、なんとなく理解してそれらの内容をカスタマイズしようとした時点で本書を読むのが良いかもしれません。

オススメの読者

前提知識を踏まえて、下記のような方がおすすめだと思います。

  • 他の言語・WEBフレームワークでWEBアプリケーションの開発経験があって、Djangoは初めての方
  • 久々にDjangoを書く方。Djangoは2.0で使うのやめちゃった、みたいな
  • Django公式チュートリアルの内容は理解できるが、そのカスタマイズや複雑な要件を実現しようとすると詰まってしまう方

オススメポイント

WEB開発の経験がある人でも満足感のある写経

第一章がDjango製WEBアプリケーションの写経なのですが、この章の写経はただの写経ではありません。一般的に、Djangoを始めるときにはDjango GirlsやDjango公式チュートリアルの写経で始まると思います。 これらの写経は、他の言語・WEBフレームワークでWEBアプリケーションの開発経験がある方にとって、踏み込んだ説明がなくて物足りないかもしれません。また、初学者向けが混乱しないように説明を省いている箇所にモヤっとするかもしません。 本書の写経には、そんな物足りなさやモヤっとポイントを充足する説明があります。

例えば、DjangoのモデルAPIにはobjectsがあります。初めてDjangoを書く時に「objectsってなんだよ」って思うかもしれません。でも初学者向けのチュートリアルではその説明をあまり見かけません。。しかし、本書の写経の章の中のコラムは、objectsについて突っ込んでくれています。 他にもそういったモヤっとポイントを解消する内容が詰まっており、他の言語・WEBフレームワークでWEBアプリケーションの開発経験がある方には本書の写経をおすすめしたくなりました!

Djangoの複雑な仕組みを図式化してくれている

Djangoがどのような流れで処理をしているのか簡潔な図にされていて、とても価値の高い資料だと思いました…! 特に認証・認可の章は、実務でDjangoを触り始めた頃の自分に教えたいくらいです! 個人開発では公式チュートリアルの知識で認証・認可の機能を作れましたが実務での認証・認可の機能の要件は複雑でカスタマイズを避けられません。 仕組みを理解していれば「こういう仕組みだからここをこう変えれば実現出来るはず」と筋道を立てて実装出来るはずですが、 わからないので動かしながら「こう書けばこうなるのでこういう仕組みのはず」と手探りでしかも答え合わせもないので不安でした。

↑のような悩みを抱えている方には、すぐに本書を手にとっていただきたいです…! 自信を持ってDjangoでの認証・認可を実装する近道だと思います。 本書では、図で仕組みを解説してくれている他に、複数の実装方針とそれらのデメリメを提示してくれていて実践的でした。

Djangoの枠を越えて、WEB開発に必要な普遍的な知識の説明もある

特に、モデルの章のSQLに関する説明が充実していました。どんなSQLが実行されるかを知らなくてもDjangoでは意図したクエリを書けてしまいますが、実践を踏まえてSQLを確認する方法や効率的なクエリを書くための考え方に触れています。EXPLAINによる解析も取り扱っていたり、インデックスの仕組みが図式を踏まえて説明されているのも、Djangoの本なのにこんなにSQLについて書いてくれるのかと驚きました。Djangoだけでなく、他のWEBフレームワークや言語でのWEBアプリケーション開発に使える知識です。この章はWEBアプリケーションを開発する方どなたにとっても価値のある章だと思います。

また、これはWEBに限った話ではないですが、テストの章も特に実践的だと思いました。 より効率的なテストを書くためにモックオブジェクトの使いどころや使いみちも書かれています。 テストに関するテクニックだけでなく、「どこまでテストするか」「何をテストするか」を考えながら解説してくれています。 これらはテストを書く時に未だに悩むので、著者の芝田さんの考えに触れながら読めて大変有り難かったです。


というわけで、この夏は「実践Django」でDjangoスキルアップをしてみてはいかがでしょうか?🙌