Djangoの学習に役立つ書籍を紹介します。
この記事をお読みの方は普段どのようにDjangoを学習していますでしょうか。最近はDjangoを扱う日本語の書籍もだんだんと増えてきましたから、やはり「Django」の名がつく書籍を使って勉強することが多いでしょうか。
僕も日本語の書籍を読むことが多いのです。初心者としては日本語でうまいこと噛み砕いて説明された内容のほうが理解しやすいですからね。
さて、この記事では僕のような書籍で勉強する方のためにDjangoの学習に役立つ隠れた名著をご紹介します。
『自走プログラマー Pythonの先輩が教えるプロジェクト開発のベストプラクティス120』
この本に気づいていないDjango初心者けっこう多いでしょ
こちらの書籍はメインタイトルにもサブタイトルにも「Django」の文字は入っていないんですよね。
Djangoの学習と並行してPython自体の学習も行っていますので、Djangoはとりあえず置いておいて、Python自体のレベルの底上げに役立つ書籍を探していました。そしてこの本を見つけたのです。
「ベストプラクティス120」ということで、いろいろなテーマが扱われていて読みやすそうですので買ってみることにしました。
そして中身をよくよく読んでみると嬉しい誤算と言うのか、Djangoを題材にしたベストプラクティスがかなり出てくるんですよね。これはほぼDjangoの本なのではないかと錯覚するくらいに。
それもそのはず、著者をよく見てみると、著者のおふたりはDjangoにもご関係のある方々なのですよね。
清原弘貴さんは日本でのDjangoのイベント「Django Congress JP」の運営の方です。
そして清水川貴之さんはそのDjango Congress JPの2021年開催のイベントでLTをしておられる方です。
このおふたりが書かれた本なのですから、Djangoがたくさん出てくるのも納得です。このため、本としてはもっとDjangoを前に押し出してくれたら、もっと早く見つけられてたんじゃないかという気持ちです。なんとかDjangoを勉強したくてDjango本を探している初心者の方々でまだこの本に気づいていない方々はかなり多いのではないかと想像しています。
各章の紹介と感想
本書の目次に従って、各章の内容を簡単にご紹介しながら感想も書きます。
第1章 : コード実装
この章はDjangoはあまり関係なくPythonそのもののコーディングに役立つ内容が書かれています。
Pythonでプログラムを書く上では、引数や戻り値にどんなデータ(型)を使うかという点やどのような構成で作るかという点等色々なことの自由度が高いので、Python初心者にとっては何をどう使ったら良いプログラムができるのかがわからないと思います。この章では関数設計、クラス設計、モジュール設計、ユニットテスト、実装の進め方、レビューについて「こうした方が良い」というベストプラクティスが紹介されています。
僕が本書を買った大きな理由のひとつがこの章です。初心者にとってはこの章はかなり役立つと思います。
全体的にPython自体のベストプラクティスが紹介されていますが、No. 11「コントローラーには処理を書かない」はDjangoのView等に処理を全部書かずに他の関数やクラスに分割することについて紹介されています。初心者はDjangoのViewが太って巨大になってくることはあるあるだと思うので、より良いコーディングのための気づきを得られると思います。
第2章 : モデル設計
この章はダイレクトにDjangoに関わる章です。
データベースに関する知識はデータベースを扱う業界にいないとなかなか触れる機会がなく身につかないと思います。個人的にはSQLの扱いは基本情報技術者試験で学習したくらいで、テーブル設計もDjangoを学習してから初め触れました。このようなレベルの知識ですので、DjangoのModel設計やその扱いに苦労しています。
この章ではDjangoのModelを題材にした説明が豊富で初心者にとって役に立つと思います。
第3章 : エラー設計
この章も僕が本書を買った大きな理由のひとつです。
エラー設計はPython初心者にとって「とりあえず動くものを作る」点にフォーカスしているうちは後回しになりがちなものだと思います。
Pythonの文法を学んでいると「try – except」自体は知ることになると思います。しかし、これをどう使ったら良いプログラムになるのかがわからず悩んでいました。この章ではエラーの取り扱いについてベストプラクティスを学ぶことができます。
また、ロギングについても紹介されています。print文デバッグは手軽なのですが、Djangoを使ってシステムを作っていく上ではprintよりもloggerを活用していく方が良い点について紹介されています。
第4章 : システム設計
この章の内容はDjangoのシステムを作っていく上での知識を得られます。Pythonコードが云々というより、そのPythonを動かす環境、つまりバックエンド側の知識です。
Djangoのシステムを動かすためには、必ずどこかで本番環境についてしっかり学ぶ必要があります。
ローカルのPCでrunserverコマンドで動かす文には意識しないかもしれませんが、ではそのDjangoプロジェクトをサーバーにもっていって動かすにはどうするのか。本番環境で動かすために考えるべきことについて知識を得られます。
第5章 : やることの明確化
この章はこれまでの章とは打って変わって、自分のWEBサービスを作るための企画や計画の段階(つまりPythonコードを書く前の段階)の話題です。
初心者にありがちかもしれませんが、なにより先に漠然としたアイディアに基づいてPythonのコーディングをしてしまうことがあると思います。何をどう作るか考える前に早くキーボードの手を動かしたくなる気持ちも理解できます。電子工作で言えば早くハンダ付けをしたい、みたいな。
でもコーディングをはじめるよりも先に「何をどう作るか」とう点をよく検討するべきだということです。ほとんど設計がされていない段階でPythonコードを書くと後々手戻りが発生することが多々あると思います。では具体的にどんなことを考えて設計をするべきか、ということについて紹介されています。
本書は第1章で具体的にPythonのコーディングについて学ぶ前に、第5章から読み始めてもいいと思います。
まとめ
前述のように表向きはDjangoの名前が全然出ていないのですが、ほとんどDjangoのための本ですよね。
PythonとDjangoのベストプラクティスについて学べるかなりお得な書籍で、隠れた名著だと思います。
コメント